python - 当我在其上叠加另一个图像时,PIL 会弄脏图像

标签 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")

这些是我用作背景的图像 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:透明蒙版错误”

最佳答案

问题与PIL无关。问题是背景是 .png,您正在合成它,然后将其输出为 .jpg。

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

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

关于python - 当我在其上叠加另一个图像时,PIL 会弄脏图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7054646/

相关文章:

python - 在不缩放的情况下改进图像的 OCR(使用 PIL、pixbuf)?

python - 导入错误 : No module named pillow

python - 如何使用 Python 用新图像替换图像中的轮廓(矩形)?

Python:浮点图像/替代 matlab 的 im2double?

python - Django 全文搜索不匹配部分单词

python - TypeError : 'NoneType' object is unsubscriptable in cv2. 归一化

python - ValueError:添加 Keras 层时带有 ast.literal_eval() 的格式错误的节点或字符串

python - Tkinter 图像显示(使用 [converted] NumPy 数组)

python - 无法将 MySQLdb 导入到 python 中

python - Django查询集根据现有字段更新