如何确定png图片在Python中是否具有透明层

时间:2018-07-19 08:23:39

标签: python image pillow

我主要使用枕头库,但我可以使用其他东西。 我可以提取包括Alpha在内的颜色层。 我想知道是否有一种方法可以快速定义图片是否使用透明度。

pic = Image.open(path)
red, green, blue, alpha = pic.split()

有没有一种方法可以查看Alpha是否真正使用或仅由于格式支持(例如PNG)而可用

1 个答案:

答案 0 :(得分:0)

我不了解Pillow,但是您可以使用numpymatplotlib.pyplot来加载和检查图像。这些是非常普遍的python库。

您可以将图像加载到numpy数组中,并检查最后一个轴的长度。如果是3,则没有Alpha通道。如果是4,则存在一个alpha通道。

import matplotlib.pyplot as plt
pic = plt.imread(path)

if pic.shape[2] == 3:
    print("No alpha channel!")
if pic.shape[2] == 4:
    print("There's an alpha channel!")

如果您想知道该频道是否真正被使用(如果存在),则可以检查该频道是否1

import numpy as np
if np.allclose(pic[:, :, 3], 1):
    print("Alpha not used because 1 everywhere!")