【发布时间】:2019-12-26 20:09:59
【问题描述】:
我正在使用 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) 一样大。但我不知道更大尺寸有什么不同(我不明白是什么让“质量”更好;图像对我来说看起来一样)。我试图了解这两个文件之间到底有什么不同,以便我做出决定。也许较小的尺寸对我来说完全没问题。
【问题讨论】:
-
PILs IMAGE 正在进行压缩。你可以在这里查看github.com/python-pillow/Pillow/blob/master/src/PIL/… -
谢谢。压缩是否会导致实际质量损失?在我看来不是。但正如我所提到的,对于质量,我只知道在屏幕上看我眼睛的大小、分辨率和外观。压缩过程中是否丢失了任何东西?如果是这样,那是什么。谢谢。
-
diffchecker.com/image-diff 让我们试试看这里。在
difference标签中, -
我正在阅读代码,试图找出它如何从文件中解码图像并将其作为文件放回。
-
很好,祝你有美好的一天!!