擦除PIL图像的矩形区域

问题描述 投票:0回答:2

如何在不改变尺寸的情况下擦除 PIL 图像的矩形区域并使其透明?

我通过裁剪图像并粘贴到空图像上来实现此目的,但它无法擦除图像内的区域。我的实现主要只是算术,所以我试图找到一种更优雅的方法来做到这一点。

python-3.x python-imaging-library
2个回答
3
投票

需要以RGBA模式打开。

from PIL import Image

rect_size = (100, 300)
rect_pos = (200, 400)

im = Image.open("your-image.jpg").convert("RGBA")
rect = Image.new("RGBA", rect_size, (255, 255, 255, 0))
im.paste(rect, rect_pos)
im.show()

0
投票

鉴于您“粘贴”的只是一个统一(透明)的颜色值,您不需要为要粘贴的矩形创建单独的图像,您只需将单个颜色值传递给

paste()
即可。

from PIL import Image

color = (255, 255, 255, 0)
paste_pos = (200, 400, 100, 300)

im = Image.open("your-image.jpg").convert("RGBA")

im.paste(color, paste_pos)
im.show()
© www.soinside.com 2019 - 2024. All rights reserved.