我正在尝试将文件夹中的所有图像缩小到各自大小的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旋转时,他们得到了explanation about it here on Stackoverflow。但我无法说服自己这也许是同一个问题。在
有什么线索吗?我还能做些什么来减小PNG的大小?如果需要的话,质量会有一点损失。在
您使用了
Image.ANTIALIAS
过滤器,它是一种高质量的下采样过滤器。在要减小图像的大小,可以在保存图像时使用}。就像-
optimize=True
和{optimize标志将对图像执行额外的传递,以找到尽可能减小图像大小的方法。在
现在要进一步减小大小,可以在“保存选项”中更改“质量”值。在
我更喜欢使用
optimize
的quality 85,因为质量不会受到太大影响,而且文件大小要小得多。在希望这有帮助!在
为了补充您的答案,这里列出了所有过滤器,以决定质量与执行速度等
http://pillow.readthedocs.io/en/3.4.x/handbook/concepts.html#concept-filters
相关问题 更多 >
编程相关推荐