如何在一组任意像素值(而不是图像数据结构)上使用ICC配置文件执行颜色转换?
我想将一组像素值从一个配置文件颜色空间转换为另一个,而这些值不存在于图像文件中,例如(例如)RGB / RGBA / CMYK / etc数据结构列表。
我可以使用Python和PIL,但是如果需要的话,我对相关环境中的解决方案很感兴趣。
最新的PIL对LittleCMS提供了非常好的支持 - 但是除了PIL图像(或传统的pyCMS对象)之外,没有任何办法可以处理它。
据我所知,LittleCMS附带的命令行工具ѭ0does做了类似的事情,但我似乎无法找到任何非骨架文档,文档将其称为演示工具。
没有找到相关结果
已邀请:
2 个回复
广躺椽
脚本将
翻译成
。该脚本不会翻译结构声明,但常量足以使用
和
作为动态库进行基本颜色转换。 此示例使用内置配置文件将单一颜色从双精度Lab转换为8位sRGB。使用
代替文件。
爆山
创建1x(N + 2)图像,使用
获取像素设置对象接口,并设置值(0,0 )通过(0,N)到你得到的任何东西。将(0,N + 1)设置为白色,将(0,N + 2)设置为黑色,并使用您喜欢的ICC文件和
对该图像进行变换(或校对变换)。 Blammo:那个PIL对象现在是你的LUT。用
thingy读取值,你就是好的。 真正的书呆子方式:你需要使用Python-colormath - 这对于颜色空间变换很有用,但不能进行分析。 Colormath无法读取ICC配置文件,因此要么a)你要以可靠的方式解析他们疯狂的二进制格式,要么b)只是按字面意思进行数学运算。这个人Bruce Lindbloom拥有excel格式的所有数据,例如,您重新构建LUT所需的所有基质。他非常棒。我仍然试图'只是'将这些数据提供给colormath,所以是的,这让我不那么棒了,因为我仍然试图让这种“书呆子”方式变成类似于生产质量的东西。 你去吧这就是我到目前为止所做的回答独立,突击式ICC LUT变换的问题。呃,伙计们,srsly。