【问题标题】:How does Python PIL and PILLOW compress pictures?Python PIL 和 PILLOW 是如何压缩图片的?
【发布时间】:2014-03-22 02:49:11
【问题描述】:

我想用 Python 3.3 编写一个程序,在该程序中将框架添加到图片中。 我使用 Python 中的 PIL 包来做到这一点。但是我得到的照片不到原照片的三分之一,而且它们失去了相当多的焦点/清晰度/光泽度。 Python 在哪里压缩/更改图片以及如何(如果可能)制服它?

我能想到一些段落,可能是压缩的。

  1. 我用 PIL 加载图像:

    img = Image.open(element)

  2. 我新建了一张图片,是黑色的:

    newImg = Image.new("RGB",(imgWidthNew,imgHightNew),(0,0,0,0))

  3. 我从我的图片中创建了一个像素图并进行了一些更改:

    pixels = newImg.load()

  4. 我把我的图片贴到黑色的中间:

    newImg.paste (Image.open(element), (halfFrameWidth, halfFrameHight, imgWidth+halfFrameWidth, imgHight+halfFrameHight))

  5. 正在保存新图像:

    newImg.save(path,dpi=[300,300])

我主要加载 .jpg 图片,但由于一些问题,我提取了 .bmp 文件。

 path = path[:path.rfind(".")] + fileEnding

但这不应该是问题,因为我在不更改数据类型的情况下也遇到了同样的问题。 我的操作系统是 Windows7 64BIT,我使用 Pillow 2.3.0 和 Python 3.3。

感谢您的帮助。

【问题讨论】:

  • 图片是按照原来的大小粘贴的,还是缩小了?

标签: python image python-imaging-library image-compression


【解决方案1】:

保存为JPEG时,可以设置质量参数来控制压缩量:

newImg.save(path, 'JPEG', dpi=[300,300], quality=90)

或者,以无损格式保存,例如 PNG:

newImg.save(path, 'PNG', dpi=[300,300])

【讨论】:

  • 确保path 扩展名和格式相互匹配,否则你会遇到一些麻烦。
  • 感谢您的帮助,这肯定是有帮助的。但是我也偶然发现了为什么无损格式PNG在我放大一点后在我的屏幕上看起来很模糊。原件大小适合我的屏幕,而我编辑的文件不是。当我放大时,我得到了这张照片的完美格式,它看起来和另一张一样好。谢谢你,我现在想用JPEG。
猜你喜欢
  • 2014-09-07
  • 2018-05-29
  • 2021-10-25
  • 2019-08-06
  • 2018-08-13
  • 2014-09-04
  • 1970-01-01
  • 2017-01-03
  • 2016-05-02
相关资源
最近更新 更多