缩小 PNG 图像会增加图像大小
Scaling down the PNG images is increasing the image size
我正在尝试将一个文件夹中的所有图像缩小到它们各自大小的 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
输出图像 796x1017 1.44 MB!
我之前在旋转 PNG 时有过类似的不直观体验,并得到了 。但我无法说服自己这可能是同一个问题。
有什么线索吗?我还能做些什么来减小 PNG 的大小?如果需要,质量会有所下降。
您使用了 Image.ANTIALIAS
过滤器,这是一种高质量的下采样过滤器。
要减小图像的大小,您可以在保存图像时使用 optimize=True
和 quality=90
。喜欢 -
imResize.save(path + "/Out/" + fileName + ' resized_' + str(scalingFactor) + ".png" ,optimize=True,quality=90)
优化标志将对图像进行额外的传递,以找到尽可能减小其尺寸的方法。
现在要进一步减小尺寸,您可以在保存选项中更改质量值。
我更喜欢质量 85 和 optimize
,因为质量影响不大,而且文件大小小得多。
希望对您有所帮助!
只是为了补充您的答案,此处列出了所有过滤器,以决定质量与执行速度等。
https://pillow.readthedocs.io/en/stable/handbook/concepts.html#filters
我正在尝试将一个文件夹中的所有图像缩小到它们各自大小的 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
输出图像 796x1017 1.44 MB!
我之前在旋转 PNG 时有过类似的不直观体验,并得到了
有什么线索吗?我还能做些什么来减小 PNG 的大小?如果需要,质量会有所下降。
您使用了 Image.ANTIALIAS
过滤器,这是一种高质量的下采样过滤器。
要减小图像的大小,您可以在保存图像时使用 optimize=True
和 quality=90
。喜欢 -
imResize.save(path + "/Out/" + fileName + ' resized_' + str(scalingFactor) + ".png" ,optimize=True,quality=90)
优化标志将对图像进行额外的传递,以找到尽可能减小其尺寸的方法。
现在要进一步减小尺寸,您可以在保存选项中更改质量值。
我更喜欢质量 85 和 optimize
,因为质量影响不大,而且文件大小小得多。
希望对您有所帮助!
只是为了补充您的答案,此处列出了所有过滤器,以决定质量与执行速度等。
https://pillow.readthedocs.io/en/stable/handbook/concepts.html#filters