为什么使用PIL调整JPEG图像大小会增加文件大小?

时间:2015-11-24 11:34:52

标签: python image-processing jpeg python-imaging-library wand

我编写了一个Python代码,将图像大小调整为最大1200 x 1200帧,保持纵横比。我遇到这种情况,输入图像(1080 x 1350)为249.8KB,而输出图像(960 x 1200)为317.2KB。尽管optimize = True并且保持了质量,但这种情况正在发生。我的代码如下:

from PIL import Image
from wand.image import Image as Wand

MAX_RES = 1200
photo = Image.open("input.jpg")
breadth,height = photo.size
qual = Wand(filename="input.jpg").compression_quality
if(not((breadth <= MAX_RES) and (height <= MAX_RES))):
    resizeRatio = max (float(breadth)/MAX_RES, float(height)/MAX_RES)
    photo = photo.resize((int(breadth/resizeRatio),int(height/resizeRatio)))
    photo.save("output.jpg",optimization = True,quality=qual) 

使用Image.ANTIALIAS会进一步增加尺寸。

1 个答案:

答案 0 :(得分:0)

有许多因素会影响JPEG压缩:

  1. Cb和Cr组分的二次取样。
  2. 使用量化表(有时会低估到&#34;质量&#34;设置)
  3. 是否使用优化的霍夫曼表。
  4. 您的输入设置很可能与输出设置有很大不同。