PIL获取图像调色板

时间:2015-02-22 05:51:01

标签: python python-3.x

我使用以下代码打开图像并将其转换为具有16色调色板的图像:

im = Image.open("SomeImage.png")
im = im.convert("P")
im = im.convert("P", palette = Image.ADAPTIVE, colors = 16)

我可以使用以下方法获取像素数据:

im.getpixel((x,y))

返回与调色板中颜色索引对应的整数。如何将调色板本身作为颜色列表?

3 个答案:

答案 0 :(得分:3)

如果您想使用im.palette从图像中获取调色板,则图像必须首先具有调色板。

我与你面对同样的困惑,所以我写了一个名为pip的{​​{1}}模块来抓取任何图像的调色板颜色和主色。

Haishoku

答案 1 :(得分:2)

您的im具有可以使用的im.palette属性 - 但推荐的方法是调用im.convert(mode)(您可以省略mode参数以让PIL选择最佳地让PIL代表你在内部进行调色板查找,比你快得多。

答案 2 :(得分:0)

im.getcolors()在使用PIL模块时为我工作。它以以下格式返回图像中的颜色列表:[ ( count, rgbaColor ), ( count, rgbaColor ), ... ]