繁体   English   中英

PIL:将图像粘贴到透明图像上而不破坏背景像素

[英]PIL: Paste image over a transparent image without destroying background pixels

我正在尝试使用 PIL 将两个图像与中间的心脏图像组合在一起,但它总是从自身后面移除像素并用完全透明的方式替换它们,从而破坏它下面的图像。 如何在不这样做的情况下将图像粘贴/叠加到图像上的特定位置?

当前代码:

heart = Image.open("Heart.png")
shrimp = Image.open("Shrimp_Jackson.jpg")
bg = Image.open("bg.png").resize((400,250))

bg.paste(shrimp, (0,0))
bg.paste(shrimp, (200,0))
bg.paste(heart, (60, 0))
bg.save("Output.png")

结果: 有时候是这样的

你的心可能没有透明背景,它只有白色背景。

下载ImageMagick ,然后使用magick命令将您必须的白色非透明背景转换为透明背景:

magick convert heart.png -transparent white heart2.png

然后在你的代码中使用这个heart2.png作为@HansHirse 建议的bg.paste(heart, (60, 0), mask=heart)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM