当我在其上覆盖另一个图像时,PIL会污染图像

ima*_*453 4 python python-imaging-library

我正在使用以下代码使用PIL将图像叠加到另一个图像上

path = "/home/blah.png"
background = Image.open(path)
product = Image.open("/home/51tmBaivYhL._SL75_.jpg")
background.paste(product, (20,40))
background.save("/home/newImage.jpg")
Run Code Online (Sandbox Code Playgroud)

这些是我用作背景http://i.imgur.com/bwPFT.png,产品http://i.imgur.com/Ig6qV.jpg的图像,结果显示为http ://i.imgur.com/JfGoS.jpg

非常感谢我能得到的任何帮助.

谢谢.

编辑:此外,当我尝试时background.paste(product, (20,40), product),我收到错误"ValueError:bad transparency mask"

Ned*_*der 5

这个问题与PIL无关.问题是背景是一个.png,你正在编写它,然后将其输出为.jpg.

.png是无损的,非常适合像你的背景这样的合成图像..jpg是有损的,非常适合照片等自然图像.当您将背景输出为.jpg时,它将包含压缩工件,您称之为"污迹".

将最终图像输出为.png.它将比.jpg更多字节,但看起来会更好.