You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使粘贴的图片背景透明并实现与画布完全融合?

实现带透明背景的图片粘贴

直接使用img.paste()方法时,PIL不会自动识别并应用源图片的alpha通道,导致透明背景无法生效。要实现粘贴图片与画布的透明融合,需要在粘贴时显式传入源图片的alpha通道作为遮罩。

修改后的代码如下:

from PIL import Image, ImageDraw
import requests

# 创建RGBA模式的黑色画布
img = Image.new('RGBA', (500, 500), 'black')
canvas = ImageDraw.Draw(img)

# 加载并转换为RGBA模式的目标图片
logo = Image.open(requests.get('https://api-assets.clashofclans.com/badges/70/-1w_sJci3z0Z8XYk-PT9vDhgJzmgzrhdxPbKAUD298s.png', stream=True).raw).convert('RGBA')

# 粘贴时传入源图片的alpha通道作为遮罩
img.paste(logo, (0, 0), logo)

img.show()

关键细节说明:

  • 必须确保源图片转换为RGBA模式,保证图片包含透明度信息的alpha通道
  • paste()方法的第三个参数为遮罩(mask),这里直接传入源图片logo,PIL会自动提取其alpha通道来控制粘贴区域的透明度
  • 若需要调整图片在画布上的位置,修改第二个参数(0, 0)为目标坐标即可

内容的提问来源于stack exchange,提问作者GhostShadow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:01:42