在Python PIL中,如何更改图像的质量?

时间:2010-12-04 10:08:05

标签: python image compression python-imaging-library

我想将图像的质量降低到几千字节。 最好的方法是什么?

谢谢!

4 个答案:

答案 0 :(得分:10)

如果图片格式是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)

您需要阅读的参考资料是:

  • [图像模块] [1],特别是“保存”功能,它允许您传入与每种图像格式相关的选项。
    • 每种图片格式的选项都在不同的页面中,您可以在文档中找到它。

答案 1 :(得分:1)

解决。

我做了......

im.save( blah, quality=5)

答案 2 :(得分:1)

a)更改大小:Image.resize(size, filter) b)将其显式转换为JPEG(如果不是)并设置所需的质量。 c)使用a)和b)的组合

无论你做什么,都需要在尺寸和质量之间进行权衡。

答案 3 :(得分:0)

这对我来说使用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