在Python中转换ICC概要文件

2024-06-26 02:50:52 发布

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

我有一堆png图像嵌入icc颜色配置文件。当我加载和显示他们的颜色是错误的,我理解是因为颜色配置信息没有被考虑。所以我要做的是将数据中的像素转换成sRGB,并丢弃图像中的轮廓信息。这样就可以用正确的颜色在屏幕上显示它们。在

我在这里找到了一个脚本:http://hipolabs.com/en/blog/icc-profile-transformation-using-pil/

Python I修改了以下脚本:

from PIL.ImageCms import profileToProfile
from PIL import Image
from sys import argv

ADOBE_RGB_PROFILE = "AdobeRGB1998.icc"
SRGB_PROFILE = "sRGB.icc"

def main(src, dst):
    original_image = Image.open(src)
    if 'icc_profile' in original_image.info:
        print "converting..."
        converted_image = profileToProfile(original_image, ADOBE_RGB_PROFILE, SRGB_PROFILE)
        print "saving file..."
        converted_image.save(dst)
        print "ok."

if __name__ == "__main__":
    main(argv[1], argv[2])

但它不起作用。结果图像保持透明。在

所以我的问题是,如何在Python中转换嵌入颜色配置文件的图像?如果您可以修复我的脚本,或者编写一个新的脚本来完成上面的代码所要做的事情,那就太好了。在


Tags: from图像imageimport脚本信息颜色main