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

时间:2010-12-07 18:03:33

标签: python image png transparency python-imaging-library

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

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

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

干杯,

霍夫

2 个答案:

答案 0 :(得分:26)

import Image
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

答案 1 :(得分:2)

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