我有一堆图像,对许多手工做的是16色8位PNG格式,我需要16位4位格式,它们都具有相同的调色板。使用Java或Python将8位(16调色板)PNG转换为4位(16色调色板)?
我正在淘谷歌的最佳图书馆使用,但我没有找到很多关于这个具体问题,所以我来这里希望一些更有针对性的解决方案。
我想使用基于other answers I have found here的PIL,但没有任何运气。
img = Image.open('DownArrow_focused.png')
img = img.point(lambda i: i * 16, "L")
img.save('DownArrow_focused.png', 'PNG')
但这给了我一个灰度图像,而不是我想要的。
PIL将无法正常工作,尝试PyPNG。 GIMP做到了这一点,但是我有成百上千的这些东西需要批量处理。并获得批量的这些转换,所以这不是一次性的事情。
基于Java的解决方案也是可以接受的,几乎所有可以在Linux/OSX机器上从命令行运行的东西都是可以接受的。
据我所见,PIL没有[4位模式](http://www.pythonware.com/library/pil/handbook/concepts.htm),所以你需要另一种方法。 – Voo
我很好奇你为什么认为你需要这个。它已经有16种颜色,所以在强制PNG压缩之后,它的大小不会有任何不同。 –
@Mark是因为我的硬件只能读取真正的4位PNG,这就是为什么,而且它们的确会变得更小,这在这种情况下与我相关,但这不是我需要这样做的原因的根源。 –