使用 Pillow 从 CMYK 转换为 RGB 与 Photoshop 不同

Conversion from CMYK to RGB with Pillow is different from that of Photoshop

我需要在 python 中将图像从 CMYK 转换为 RGB。我是这样用 Pillow 的:

img = Image.open('in.jpg')
img = img.convert('RGB')
img.save('out.jpg')

代码有效,但如果我用 Photoshop 转换相同的图像,我会得到不同的结果,如下所示:-

在 photoshop 中完成的唯一操作是将方法从 CMYK 更改为 RGB。 为什么两个 RGB 图像之间存在这种差异?可能是颜色配置文件问题?

已解决

问题是 Pillow 不知道输入的 ICC 配置文件,而 photoshop 有一个默认设置。

Photoshop 用于

CMYK: U.S。网络涂层 (SWOP) v2

RGB: sRGB IEC61966-2.1

所以我是这样解决的:

img = Image.open('in.jpg')
img = ImageCms.profileToProfile(img, 'USWebCoatedSWOP.icc', 'sRGB Color Space Profile.icm', renderingIntent=0, outputMode='RGB')
img.save('out.jpg', quality=100)

在 Windows 上,可以在这些文件夹中找到配置文件(如果已安装):

C:\Windows\System32\spool\drivers\color\USWebCoatedSWOP.icc
C:\Program Files (x86)\Common Files\Adobe\Color\Profiles\Recommended\USWebCoatedSWOP.icc
C:\Program Files (x86)\Adobe\Acrobat DC\Resource\Color\Profiles\Recommended\USWebCoatedSWOP.icc

C:\Windows\System32\spool\drivers\color\sRGB Color Space Profile.icm
C:\Program Files (x86)\Common Files\Adobe\Color\Profiles\Recommended\sRGB Color Space Profile.icm
C:\Program Files (x86)\Adobe\Acrobat DC\Resource\Color\Profiles\Recommended\sRGB Color Space Profile.icm