详解Python PIL getpalette()方法

  • Post category:Python

Python PIL getpalette() 方法详解

getpalette() 是Pillow库中针对图像颜色表相关功能的一个成员方法,用于获取一个颜色映射表,返回一个列表或者 None。

语法

Image.getpalette()

参数

该方法没有参数。

返回值

如果图片颜色模式为L或者P,则该方法返回一个包含 256 个整数的列表,列表中的值对应着每一个像素的颜色情况,如果是 RGB 或者 RGBA 则返回 None。

代码示例一:

下面的示例演示获取灰度图像的调色板:

from PIL import Image

with Image.open('image.png') as img:
    if img.mode in ['1', 'L', 'P']:
        palette = img.getpalette()
        print(palette)
    else:
        print('not grayscale')

执行结果:

[0, 0, 0, 255, 255, 255, ...]

代码示例二:

下面的示例演示获取彩色图像的调色板(返回值为 None):

from PIL import Image

with Image.open('image.png') as img:
    if img.mode in ['RGB', 'RGBA']:
        palette = img.getpalette()
        print(palette)
    else:
        print('not color')

执行结果:

None

注意事项

使用 getpalette() 时需要按照颜色模式的不同进行区分,因为 RGB 或者 RGBA 对应的调色板是不存在的,会返回 None。