我正在使用以下代码使用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")
这些是我用作背景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”
答案 0 :(得分:5)
这个问题与PIL无关。问题是背景是一个.png,你正在编写它,然后将它输出为.jpg。
.png是无损的,非常适合像你的背景这样的合成图像。 .jpg是有损的,非常适合照片等自然图像。当您将背景输出为.jpg时,它将包含压缩工件,您称之为“污迹”。
将最终图像输出为.png。它将比.jpg更多字节,但看起来会更好。
答案 1 :(得分:2)
您正在打开具有透明度的背景PNG图像,并将结果保存为没有透明度的.JPG。透明区域中的颜色可能是您用于创建PNG的图像编辑器中的残留物。