PIL 输出图片大于输入

问题描述

我目前正在编写一个自动脚本,用于使用 PIL (python) 更改文件夹内所有图片的对比度。问题是每张输出图片都比输入图片大...这是我的脚本:

from PIL import Image,ImageEnhance
import piexif

path="C:/User/pictures/"
all_files=["picture1.jpg","picture2.jpg","picture3.jpg"]

for i in range(len(all_files)):

    im_path=all_files[i]
    
    
    im = Image.open(path+im_path)
    
    
    #load exif data
    exif_dict = piexif.load(im.info['exif'])
    exif_bytes = piexif.dump(exif_dict)
    
    dpi = im.info["dpi"]
    
    #image brightness enhancer
    contraster = ImageEnhance.Contrast(im)
    
    im_output = contraster.enhance(factor)
    im_output.save(new_path+im_path,format="JPEG",quality=100,dpi=dpi,exif=exif_bytes,subsampling=0)

例如,我传入的jpg图片是8.08Mo,而我的新图片是15.8Mo,即使我选择了0%的对比度变化...

感谢回答,周末愉快。

解决方法

您已针对库作者的 recommendations 指定了 quality=100

图像质量,范围从 0(最差)到 95(最好)。默认值为 75。应避免使用大于 95 的值; 100 禁用部分 JPEG 压缩算法,并导致大文件几乎没有图像质量增益。