我想用Python 3.3编写一个程序,其中一个帧被添加到图片中。 我使用Python的PIL包来做到这一点。但是我得到的照片不到原来的三分之一,并且它们散开了相当多的焦点/清晰度/光泽度。 Python在哪里压缩/更改图片以及如何(如果可能)我可以将其压缩?
我可以想到一些段落,可能是压缩的段落。
我用PIL加载图片:
img = Image.open(element)
我创建了一张黑色的新图片:
newImg = Image.new("RGB",(imgWidthNew,imgHightNew),(0,0,0,0))
我从图片中创建了一个像素图并更改了一些:
pixels = newImg.load()
我将照片粘贴到黑色照片的中间:
newImg.paste (Image.open(element), (halfFrameWidth, halfFrameHight, imgWidth+halfFrameWidth, imgHight+halfFrameHight))
新图片已保存:
newImg.save(path,dpi=[300,300])
我主要加载.jpg图片,但由于某些问题,我提取.bmp文件。
path = path[:path.rfind(".")] + fileEnding
但这不应该是问题,因为我在不改变数据类型的情况下遇到了同样的问题。 我的操作系统是Windows7 64BIT,我使用Pillow 2.3.0和Python 3.3。
感谢您的帮助。
答案 0 :(得分:8)
保存为JPEG时,您可以设置质量参数来控制压缩量:
newImg.save(path, 'JPEG', dpi=[300,300], quality=90)
或者,以无损格式保存,例如PNG:
newImg.save(path, 'PNG', dpi=[300,300])