gpt4 book ai didi

python - 用python粘贴没有添加黑色背景的图像

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:11 25 4
gpt4 key购买 nike

我试图截取屏幕截图并将光标粘贴到其上,但是当我运行程序时,结果是光标粘贴有大的黑色背景,有谁知道如何让黑色背景消失?

这是我的代码:

from PIL import Image

im = Image.open("screenShot.png")
mouse = Image.open(r"C:\Windows\Cursors\aero_arrow.cur")
im.paste(mouse, (40,40)) #Drawing the cursor
im.save("newImage.png")

最佳答案

您需要指定一个 mask ,这样黑色部分就不会被渲染。请参阅docs :

im.paste(image, box, mask)

Same as above, but updates only the regions indicated by the mask. You can use either “1”, “L” or “RGBA” images (in the latter case, the alpha band is used as mask). Where the mask is 255, the given image is copied as is. Where the mask is 0, the current value is preserved. Intermediate values can be used for transparency effects.

Note that if you paste an “RGBA” image, the alpha band is ignored. You can work around this by using the same image as both source image and mask.

最后一部分应该是你的情况。

因此,在您的情况下,您可以使用 im.paste(mouse, (40,40), mouse) ,因为该图像已经具有 Alpha channel

编辑:

显然问题与格式 .cur 有关。如果您输入mouse.getbands(),它将返回(R, G, B),因此会出现ValueError。您可以将 .cur 文件转换为带有 Alpha channel 的 .png 文件,但我还得到了以下内容:

mouse_mask = mouse.convert("L")
im.paste(mouse, (40,40), mouse_mask)

关于python - 用python粘贴没有添加黑色背景的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42208182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com