在PIL中保留ICC颜色配置文件时增加文件大小

时间:2013-09-20 09:48:37

标签: python python-imaging-library color-profile color-management

我正在使用PIL来调整图像大小。为确保调整大小的图像仍具有与原始图像相同的颜色,ICC颜色配置文件将再次添加到输出图像。

代码如下所示:

image = Image.open('input.jpg')
icc_profile = image.info.get('icc_profile')
# resize the image
resized_image.save('output.jpg', format='JPEG', icc_profile=icc_profile)

除了调整大小(较小)图像的文件大小甚至比原始图像大一些外,一切正常。

示例:

  • 原始图片=> 1.2 MB
  • 没有ICC配置文件的大小调整图像=> 485.1 kB
  • 使用ICC配置文件重新调整大小的图像=> 1.8 MB

如果你想检查它们,我已经上传了这些图片:http://www.fileswap.com/dl/ueKjdYLKZS/

有没有人知道为什么文件大小增加那么多以及是否有解决方法?

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

我尝试使用最近邻居(默认)image.resize((800, 533))和抗锯齿image.resize((800, 533), Image.ANTIALIAS)。但是,生成的文件大小为751KB和747KB,包括icc配置文件,远远小于原始图片。

然而,当您以最高质量(较少压缩)保存JPEG时,JPEG文件大小被修改并再次保存后,文件大小可能会变大。或者,在以前保存和压缩它时会添加工件,这会进一步降低压缩效率。