当前位置: 首页 > 面试题库 >

如何使用PIL获取PNG图像的alpha值?

顾嘉纳
2023-03-14
问题内容

如何使用PIL检测PNG图像是否具有透明的Alpha通道?

img = Image.open('example.png', 'r')
has_alpha = img.mode == 'RGBA'

通过上面的代码,我们知道PNG图像是否不具有Alpha通道,但是如何获得Alpha值?

我没有在PIL网站上描述的img.info词典中找到“透明”键

我正在使用Ubuntu和zlib1g,已经安装了zlibc软件包。


问题答案:

要获取RGBA图像的alpha层,您需要做的是:

red, green, blue, alpha = img.split()

要么

alpha = img.split()[-1]

有一种设置Alpha层的方法:

img.putalpha(alpha)

透明度键仅用于在调色板模式(P)中定义透明度索引。如果您想同时涵盖调色板模式的透明情况并涵盖所有情况,则可以这样做

if img.mode in ('RGBA', 'LA') or (img.mode == 'P' and 'transparency' in img.info):
    alpha = img.convert('RGBA').split()[-1]

注意:当image.mode为LA时,由于PIL中的错误,需要convert方法。



 类似资料:
  • 问题内容: 我有一个原始图像,其中每个像素对应一个16位无符号整数。我正在尝试使用PIL Image.fromstring()函数进行读取,如以下代码所示: PIL文档通知fromstring()函数的第一个参数为’mode’。但是,在查阅文档并进行谷歌搜索时,我无法找到有关该参数真正含义的详细信息(我相信它与色彩空间或类似的东西有关)。有谁知道我在哪里可以找到有关fromstring()函数以及

  • 问题内容: 如何使用PIL或任何其他Python库获取图片边的大小? 问题答案: 根据文档。

  • 问题内容: 我刚刚使用Python图像库(PIL)进行了一些图像处理,这是我之前发现的用于执行图像的傅立叶变换的文章,但是我无法使用save函数。整个代码运行良好,但不会保存生成的图像: 我得到的错误如下: 如何使用Pythons PIL保存图像? 问题答案: 已解决有关文件扩展名的错误,您可以使用(不带点)或将输出名称与扩展名一起传递。现在要处理该错误,您需要在频域中适当地修改数据以将其保存为整

  • 问题内容: 我需要将在黑色背景字母上绘制为白色的一系列图像转换为白色和黑色反转(为负)的图像。如何使用PIL实现此目的? 问题答案: 请尝试以下文档中的内容:http : //effbot.org/imagingbook/imageops.htm 注意:“ ImageOps模块包含许多“现成的”图像处理操作。该模块有些实验性,大多数操作员只能处理L和RGB图像。

  • 问题内容: 我正在使用python和图像模块(PIL)处理图像。 我想将图像对象的原始位流存储到redis,以便其他人可以使用nginx和httpredis直接从redis读取图像。 因此,我的问题是如何获取Image对象的原始位并将其存储到Redis中。 问题答案: 使用PIL 1.1.7,redis-2.7.2 pip模块和redis-2.4.10,我可以使它工作: 我发现这是不可靠的,因此此

  • 更新: 我得到以下错误: ...newimg1.save(“img1.png”)文件“C:\python27\lib\site-packages\pil\image.py”,第1439行,在save save_handler(self,fp,filename)文件“C:\python27\lib\site-packages\pil\pngimageplugin.py”中,第572行,在_save