ohr*_*rom 6 python encoding color-profile python-imaging-library
我坚持解码/解析用PIL提取的ICC配置文件信息.
在包含"Adobe RGB(1998)"配置文件的测试图像下方.
# download the test image:
wget http://i.stack.imgur.com/62AHB.jpg
Run Code Online (Sandbox Code Playgroud)
-
from PIL import Image
path = '62AHB.jpg'
icc = Image.open(path).info.get('icc_profile')
Run Code Online (Sandbox Code Playgroud)
到目前为止一直很好 - 但我找不到处理返回的ICC信息的方法.
上面的例子将返回:
'\x00\x00\x020ADBE\x02\x10\x00\x00mntrRGB XYZ\x07\xcf\x00\x06\x00\x03\x00\x00\x00\x00\x00\x00acspAPPL\x00\x00\x00\x00none\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\xf6\xd6\x00\x01\x00\x00\x00\x00\xd3-ADBE\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ncprt\x00\x00\x00\xfc\x00\x00\x002desc\x00\x00\x010\x00\x00\x00kwtpt\x00\x00\x01\x9c\x00\x00\x00\x14bkpt\x00\x00\x01\xb0\x00\x00\x00\x14rTRC\x00\x00\x01\xc4\x00\x00\x00\x0egTRC\x00\x00\x01\xd4\x00\x00\x00\x0ebTRC\x00\x00\x01\xe4\x00\x00\x00\x0erXYZ\x00\x00\x01\xf4\x00\x00\x00\x14gXYZ\x00\x00\x02\x08\x00\x00\x00\x14bXYZ\x00\x00\x02\x1c\x00\x00\x00\x14text\x00\x00\x00\x00Copyright 1999 Adobe Systems Incorporated\x00\x00\x00desc\x00\x00\x00\x00\x00\x00\x00\x11Adobe RGB (1998)\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00XYZ \x00\x00\x00\x00\x00\x00\xf3Q\x00\x01\x00\x00\x00\x01\x16\xccXYZ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00curv\x00\x00\x00\x00\x00\x00\x00\x01\x023\x00\x00curv\x00\x00\x00\x00\x00\x00\x00\x01\x023\x00\x00curv\x00\x00\x00\x00\x00\x00\x00\x01\x023\x00\x00XYZ \x00\x00\x00\x00\x00\x00\x9c\x18\x00\x00O\xa5\x00\x00\x04\xfcXYZ \x00\x00\x00\x00\x00\x004\x8d\x00\x00\xa0,\x00\x00\x0f\x95XYZ \x00\x00\x00\x00\x00\x00&1\x00\x00\x10/\x00\x00\xbe\x9c'
Run Code Online (Sandbox Code Playgroud)
如何解码这些信息?
数据中似乎有一些键.在这种情况下,我基本上只需要"desc"的值,即 "Adobe RGB(1998)".
有任何想法吗?期待您的投入:)!
如果有人以这种方式搜索有关如何在Python中处理ICC颜色配置文件信息的信息,我也会写这篇文章.Python原始PIL库的Pillow fork包含一个ImageCms模块.不幸的是,配置文件的构造函数需要一个文件名或类似文件的对象,所以我们必须通过它来横向进行io.BytesIO
image = Image.open('/tmp/DQ-Tool_Print_13x18cm.jpg')
icc = image.info.get('icc_profile')
f = io.BytesIO(icc)
prf = PIL.ImageCms.ImageCmsProfile(f)
Run Code Online (Sandbox Code Playgroud)
现在prf包含颜色配置文件实例.看看这里的文档:https://pillow.readthedocs.io/en/4.2.x/reference/ImageCms.html#PIL.ImageCms.CmsProfile
| 归档时间: |
|
| 查看次数: |
3012 次 |
| 最近记录: |