【问题标题】:PIL: How to make area transparent in PNG?PIL:如何在 PNG 中使区域透明?
【发布时间】:2011-05-21 18:24:56
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:
    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

    【讨论】:

    • 赞成你,因为代码几乎完全符合我写的内容。
    • 确实,@kindall,我们的答案几乎相同! :)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 2012-07-16
      • 1970-01-01
      相关资源
      最近更新 更多