from PIL import Image
# load images
background = Image.open(r"pink.png")
# load image and scale it to the same size as the background
foreground = Image.open(r"yellow.png").resize(background.size)
# split gives you the r, g, b and alpha channel of the image.
# For the mask we only need alpha channel, indexed at 3
mask = background.split()[3]
# we combine the two images and provide the mask that is applied to the foreground.
im = Image.composite(background, foreground, mask)
im.show()
1条答案
按热度按时间ubby3x7f1#
看起来你把整个图像设置成了一个遮罩,这就是为什么圆角在粉红色背景下一点效果都没有的原因。我自己也在这个任务中挣扎了很久,最后用了枕头而不是OpenCV。我不知道它是否更有性能,但我让它运行了。
下面是适用于您的示例的代码:
如果您的背景不是示例中的单色,并且您希望使用粘贴原始图像的版本,则必须创建一个与背景大小相同的空图像,然后将前景粘贴到位置(您的
gridpos
),例如:希望这对你有帮助!