在Python中使用Image包的主色调

时间:2016-08-29 11:34:41

标签: python image pillow

我有一个透明的图片,我正在尝试使用Image模块的getcolor()方法从中提取主要颜色

y = Image.open('img.png')
y.getcolors()
[Out]: [(21841, 0),
(13328, 1),
 (8171, 2),
 (2673, 3),
 (1337, 4),
 (1010, 5),
 (892, 6),
 (519, 7),
 (379, 8),
 (234, 9)]

如何获得与这些索引相对应的实际颜色值(或名称)?

enter image description here

1 个答案:

答案 0 :(得分:0)

我不确定以下代码段是否是您找到的。将Image对象转换为RGBA对象并使用getcolors(),如下所示。

from PIL import Image

im = Image.open('img.png')
rgba_im = im.convert('RGBA')
print ( rgba_im.getcolors() )

"""
<Output>
[(2673, (218, 215, 209, 255)), (379, (195, 29, 54, 255)), (21841, (208, 208, 209, 0)), (234, (206, 198, 185, 255)), (519, (201, 178, 176, 255)), (1337, (193, 188, 186, 0)), (8171, (182, 176, 174, 0)), (892, (178, 170, 165, 255)), (13328, (168, 26, 41, 255)), (1010, (107, 18, 19, 255))]
"""