我想将图片的质量降低到几千字节以下。有什么最好的方法吗?
谢谢!
我想将图片的质量降低到几千字节以下。有什么最好的方法吗?
谢谢!
如果图片格式为JPEG,以下是一个例子:
from PIL import Image
im = Image.open("C:\Users\Public\Pictures\Sample Pictures\Jellyfish.jpg")
im.save("C:\Users\Public\Pictures\Sample Pictures\Jellyfish_compressed.jpg", quality=10)
你需要阅读的参考文献包括:
a) 改变大小:Image.resize(size, filter)
b) 明确将其转换为JPEG格式(如果它不是)并设置所需的质量。 c) 使用a)和b)的组合
无论你做什么,都存在尺寸和质量之间的权衡。
已解决。
我做了...
im.save( blah, quality=5)
quality
只适用于 JPEG 格式,对于其他格式则忽略此选项。 - khachik以下是我使用 For 循环来调整图像大小的 PIL 代码,它对我非常有效。变量 PRODUCTS 是一个包含所有产品名称的列表,但你也可以使用 readlines() 每次读取文件中的一行来实现:
def resize_images(self):
products = PRODUCTS
for name in products:
try:
fp = open(filename + name + ".jpg", "rb")
img = Image.open(fp)
img.load()
img.save(filename + name + "_2" + ".jpg", quality=23)
fp.close()
except:
print name
im.save()
,它说:“关键字选项可用于向编写器提供附加指令。如果编写器不识别选项,则会被静默忽略。可用选项稍后在本手册中描述。”然后,如果您查看JPEG附录,它说:“保存方法支持以下选项: quality-图像质量,从1(最差)到95(最佳)的比例尺。默认值为75。应避免使用高于95的值; 100完全禁用JPEG量化阶段”。 - martineaupyexiv2
,在创建新文件后手动复制EXIF。有关更多信息,请参见:https://dev59.com/mmQn5IYBdhLWcg3wLkgd - Asim Ihsan