使用Python格式转换颜色?

2024-05-19 21:38:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python工具将图像数据转换为以下颜色格式:

  • RGB565
  • RGBA5551
  • RGBA4444。在

最简单的方法是什么?在

我经常使用Python Imaging Library (PIL)。所以我知道如何加载图像并获得RGBA8888格式的每个像素值。我知道从那时起如何手动编写所有的转换代码。在

有更简单的方法吗?也许是PIL的“格式化程序”插件?在

PIL是否已经支持我的目标格式?如果不翻遍所有的源代码,我永远无法找出PIL真正支持的格式。在

或者有比PIL更好的库来用Python实现这一点?在

如有任何提示,我们将不胜感激。谢谢!在


Tags: 工具数据方法图像pil颜色格式library
3条回答

还有一个名为Grapefruit的模块,它允许您在相当多的颜色格式之间进行转换。在

Numpy确实很强大,但是要到达那里并返回PIL需要两个内存拷贝。你有没有试过以下的方法?在

im = Image.open('yourimage.png')
im.putdata([yourfunction(r,g,b) for (r,g,b) in im.getdata()])

这是相当快的(特别是当你可以使用一个查找表)。我不熟悉您提到的颜色空间,但据我所知,您知道转换,因此yourfunction(r,g,b)的实现应该是直接的。在

另外,im.convert('RGBA', matrix)可能非常强大,因为它在通过所提供的矩阵应用颜色转换方面非常快。但是我从来没有让它做我想做的事。。。:-/

有一个名为Python Colormath的模块,它提供了许多不同的转换。强烈推荐。在

相关问题 更多 >