LINUX.ORG.RU

Python (PIL) - получение цветов из картинки.


0

1

Доброго вечера, коллеги. Я хотел использовать PIL для того, чтобы получить из растровой картинки список использованных в ней цветов.

Выполняю: from PIL import Image, ImageColor im = Image.open(imgPath) print im.getcolors()

Получаю: #[(9298, 0), (702, 1)]

Как, однако, получить из «цветов №№ 0 и 1» их RGB-шные значения?

А то официальная документация и метод тыка не выдали мне ничего хорошего.


[code=Python]

from PIL import Image
I = Image.new( 'RGB', (100,100), '#808080' )
I.getcolors()

[(10000, (128, 128, 128))]

I.putpixel( (0, 0), (0,0,0) )
I.getcolors()

[(9999, (128, 128, 128)), (1, (0, 0, 0))]

I.putpixel( (0, 0), (0,2,255) )
I.getcolors()

[(9999, (128, 128, 128)), (1, (0, 2, 255))] [/code]

???? в каждом элементе списка вторая позиция это тройка RGB

AIv ★★★★★
()
Ответ на: комментарий от AIv

А разгадка одна:

Если ваша картинка - это

<PIL.Image.Image image mode=RGB size=100x100 at 0x1031738>

, то моя - это

<PIL.GifImagePlugin.GifImageFile image mode=P size=100x100 at 0x1024DC8>.

У них по-разному определены цвета.

Я не стал заморачиваться, а просто сделал так:

im = Image.open(imgPath) virtIm = Image.new(«RGB», im.size, (200,200,200)) virtIm.paste(im) colors = virtIm.getcolors() print colors

Yak
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.