gpt4 book ai didi

python-imaging-library - 为什么 PIL(枕头)Image.save() 会减小文件大小?

转载 作者:行者123 更新时间:2023-12-04 13:00:06 29 4
gpt4 key购买 nike

我正在使用 PIL 来旋转一些图像,我注意到输出文件要小得多,所以我尝试了一个测试:除了保存 exif 信息外,不对文件做任何事情(因为我知道 PIL 图像默认情况下不会保存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=保存中的夸格:

    test.save('my_saved_image_file.jpg',"jpeg",exif=holdexif,quality=95)

这给了我一个几乎和原始文件( 1.73 MB )一样大的文件( 1.83 MB )。但我不知道有什么不同来解释更大的尺寸(我不明白是什么让“质量”更好;图像对我来说是一样的)。我试图了解这两个文件之间到底有什么不同,以便我可以做出决定。也许较小的尺寸对我的目的来说非常合适。

最佳答案

正如 Charanjit 指出的,答案在于压缩量(由 quality 方法的 .save() kwarg 控制)。更多的压缩意味着更小的文件和更低的“质量”。

关于“质量”,这意味着,尽管图像大小和图像分辨率可能相同,但图像中对象边缘的清晰度和颜色差异将通过压缩降低(可能肉眼看不到)。

这里有一个关于 jpeg 压缩的很好的讨论:Understanding JPEG Quality .

还有另一个stackoverflow答案解决了尝试以与原始质量相同的质量保存jpeg文件的问题:https://stackoverflow.com/a/4355281/1639359通过设置 kwarg quality='keep' (而不是 quality=N,其中 N 是 1 到 100% 之间的整数)。

关于python-imaging-library - 为什么 PIL(枕头)Image.save() 会减小文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59483536/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com