我正在使用PIL来旋转一些图片,但我发现输出文件要小得多,所以我进行了一个测试:除了保存exif信息(因为我知道PIL Image默认不保存exif信息)外,什么都不做。下面是我的测试代码:
from PIL import Image
test = Image.open('my_image_file.jpg')
holdexif = test.info["exif"]
test.save('my_saved_image_file.jpg',"jpeg",exif=holdexif)
当我执行上述操作后,
my_saved_image_file.jpg
的大小(441 KB
)比原始文件my_image_file
(1.83 MB
)明显要小。为什么会这样?有什么遗漏吗?当我查看两个文件的各种属性时,它们似乎是相同的。它们都是56英寸x 27英寸,每英寸72像素,都是4032 x 1960像素。我在图像文件方面绝不是专家。基于我检查过的这些事物(大小、分辨率和图像外观),这些文件在我看来是相同的。据我所看/理解的,唯一不同的是磁盘上的文件大小。我应该查看什么?还有什么可能是不同的?
我还尝试了在保存中使用
quality=
kwarg: test.save('my_saved_image_file.jpg',"jpeg",exif=holdexif,quality=95)
这给了我一个文件(
1.73 MB
),几乎与原始文件(1.83 MB
)一样大。但是我不知道有什么不同导致文件更大(而且我不明白什么让“质量”更好;对我来说图像看起来相同)。我想弄清楚这两个文件之间到底有什么不同,以便做出决定。也许对我的目的来说较小的文件大小已经足够了。
PIL
的IMAGE
正在进行压缩。 您可以在此处检查:https://github.com/python-pillow/Pillow/blob/master/src/PIL/Image.py#L60 - Charanjit Singh