我正在使用 Python 工具将图像数据转换为这些颜色格式:
- RGB565
- RGBA5551
- RGBA4444。
实现此目标的最简单方法是什么?
我用过 Python Imaging Library (PIL)频繁地。所以我知道如何加载图像并获取 RGBA8888 格式的每个像素值。从那时起,我知道如何手动编写所有转换代码。
有没有更简单的方法?也许是 PIL 的某种类型的“格式化程序”插件?
PIL 是否已经支持我定位的某些格式?如果不深入研究所有源代码,我永远无法弄清楚 PIL 真正支持哪些格式。
或者是否有比 PIL 更好的库来在 Python 中完成此任务?
如有任何提示,我们将不胜感激。谢谢!
请您参考如下方法:
将某些内容从 8 位更改为 5 位是微不足道的。在 8 位中,该值介于 0 和 255 之间,在 5 位中,该值介于 0 和 31 之间,因此您需要做的就是将该值除以 8。或者在 RGB565 模式下的绿色情况下除以 4。或者在 RGBA4444 模式下为 16,因为它每个 channel 使用 4 位,等等。
编辑:再次阅读您的问题,我认为存在混淆(无论是对我还是对您)。 RGB555 和 RGBA4444 等并不是真正的格式,如 GIF 或 JPG,它们是颜色空间。这种转换是微不足道的(见上文)。稍后要将其保存为哪种文件格式是另一个问题。大多数文件格式对色彩空间的支持有限。例如,我认为 JPEG 总是将它保存在 YCbCr 中(但我可能会弄错),GIF 使用调色板(我认为它总是 RGB888)等。
