Python PIL和PILLOW如何压缩图片?

Nat*_*lux 5 python image image-compression python-imaging-library

我想用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
Run Code Online (Sandbox Code Playgroud)

但这不应该是问题,因为我有相同的问题而不改变数据类型.我的操作系统是Windows7 64BIT,我使用Pillow 2.3.0和Python 3.3.

感谢您的任何帮助.

unu*_*tbu 8

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

newImg.save(path, 'JPEG', dpi=[300,300], quality=90)
Run Code Online (Sandbox Code Playgroud)

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

newImg.save(path, 'PNG', dpi=[300,300])
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的帮助,这肯定是有帮助的.但是我也偶然发现为什么在我放大一点后,无损格式的PNG在我的屏幕上看起来模糊不清.我的屏幕的原始大小是完整的,而我编辑的文件则不是.当我放大时,我得到了这张照片的完美格式,它看起来和另一张一样好.谢谢你的方式,我想现在使用JPEG. (2认同)