首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python Pillow / PIL中绘制不同透明度的多边形

在Python Pillow / PIL中绘制不同透明度的多边形
EN

Stack Overflow用户
提问于 2013-08-17 05:33:11
回答 2查看 1.5K关注 0票数 1

我有以下代码:

代码语言:javascript
复制
im = Image.new("RGBA", (800,600))
draw = ImageDraw.Draw(im,"RGBA")
draw.polygon([(10,10),(200,10),(200,200),(10,200)],(20,30,50,125))
draw.polygon([(60,60),(250,60),(250,250),(60,250)],(255,30,50,0))
del draw 
im.show()

但多边形之间的alpha/透明度没有任何变化。有没有可能使用这些多边形来做到这一点,或者alpha级别只适用于合成图像(我知道这个解决方案,但只看到基于PIL的注释,并认为我已经在Pillow中看到了这个问题)。

如果没有这样的东西,有没有一种很好的,简单的,有效的方法来把这样的东西放到库中?

EN

回答 2

Stack Overflow用户

发布于 2013-08-17 06:10:34

根据文档http://effbot.org/imagingbook/image.htm

im.show()

显示图像。此方法主要用于调试目的。

在Unix平台上,此方法将映像保存到临时PPM文件中,并调用xv实用程序。

据我所知,PPM file format不支持透明度("alpha通道“)。

所以..。当您调用im.show()时,透明度不会出现--但如果您使用支持透明度的格式保存文件,则会应用透明度:

代码语言:javascript
复制
from PIL import Image,ImageDraw

im = Image.new("RGBA", (800,600))
draw = ImageDraw.Draw(im,"RGBA")
draw.polygon([(10,10),(200,10),(200,200),(10,200)],(20,30,50,125))
draw.polygon([(60,60),(250,60),(250,250),(60,250)],(255,30,50,120))
del draw

im.save("out.png") # Save to file
票数 5
EN

Stack Overflow用户

发布于 2014-02-14 08:02:51

这可能会有所帮助:

How do you draw transparent polygons with Python?

要向最终图像添加alpha通道,可以使用Image.putalpha(alpha)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18282448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档