Python PIL:如何在PNG中使区域透明?

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

我一直在使用PIL裁剪图像,现在我也想使某些矩形区域透明,例如

from PIL import Image
im = Image.open("sample.png")
transparent_area = (50,80,100,200)
...

我非常感谢一些代码,因为我无法找到它,在此先多谢!

干杯,

霍夫

python image png transparency python-imaging-library
2个回答
28
投票
from PIL import Image
from PIL import ImageDraw
im = Image.open("image.png")
transparent_area = (50,80,100,200)

mask=Image.new('L', im.size, color=255)
draw=ImageDraw.Draw(mask) 
draw.rectangle(transparent_area, fill=0)
im.putalpha(mask)
im.save('/tmp/output.png')

我学习了如何执行此操作here


2
投票

没有源代码,但这是应该起作用的常规方法:在“ L”(灰度)模式下为图像创建一个Alpha通道作为单独的图像对象。用白色(完全不透明)填充Alpha通道,并以黑色(完全透明)在Alpha通道图像上绘制矩形。将要将透明度应用于RGBA的图像转换为该图像,然后使用图像对象putalpha()方法将您创建的Alpha通道复制到图像的Alpha通道中。另存为PNG。

© www.soinside.com 2019 - 2024. All rights reserved.