gpt4 book ai didi

python - 缩小 PNG 图像会增加图像大小

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:16:00 25 4
gpt4 key购买 nike

我正在尝试将文件夹中的所有图像缩小到各自大小的 90%。写了这个:

from PIL import Image
import sys, csv, os, traceback

path = "C:\Users\Dell\Desktop\Textures\\"
dirs = os.listdir( path )
scalingFactor = .9

def resize():
for item in dirs:
print 'item', path+item
if os.path.isfile(path+item):
im = Image.open(path+item)
f, e = os.path.splitext(path+item)
imResize = im.resize((int(im.size[0]*scalingFactor),int(im.size[1]*scalingFactor)), Image.ANTIALIAS)
fileName = f.split('\\')[-1]
imResize.save(path + "/Out/" + fileName + ' resized_' + str(scalingFactor) + ".png" , 'PNG')

但是,当我运行它时,图像的大小实际上在增加而不是减少(如我所料)。

例如。原始图像 885x1130 466KB

enter image description here

输出图像 796x1017 1.44 MB!

enter image description here

我之前在旋转 PNG 时有过类似的不直观体验,并得到了 explanation about it here on Stackoverflow。 .但我无法说服自己这可能是同一个问题。

有什么线索吗?我还能做些什么来减小 PNG 的大小?如果需要,质量会有所下降。

最佳答案

您已经使用了 Image.ANTIALIAS 过滤器,这是一种高质量的下采样过滤器。

要减小图像的大小,您可以在保存图像时使用 optimize=Truequality=90。喜欢 -

imResize.save(path + "/Out/" + fileName + ' resized_' + str(scalingFactor) + ".png" ,optimize=True,quality=90)

优化标志将对图像进行额外的传递,以找到尽可能减小其尺寸的方法。

现在要进一步减小尺寸,您可以在保存选项中更改质量值。

我更喜欢使用 optimize 的质量 85,因为质量不会受到太大影响,而且文件大小要小得多。

希望这对您有所帮助!


只是为了补充您的答案,此处列出了所有过滤器,以决定质量与执行速度等。

https://pillow.readthedocs.io/en/stable/handbook/concepts.html#filters

关于python - 缩小 PNG 图像会增加图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41014547/

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