Замена одного цвета в PIL?

У меня есть изображение, я бы хотел заменить все пиксели одного цвета на пиксели другого цвета. Каков самый простой способ сделать это?

Более или менее у меня есть изображение в tkinter, и при нажатии кнопки я хочу, чтобы цвет изменился.


person rectangletangle    schedule 02.07.2010    source источник
comment
Возможный дубликат: stackoverflow.com/questions/1616767 /   -  person unutbu    schedule 03.07.2010


Ответы (2)


попробуй это.

#!/usr/bin/python
from PIL import Image
import sys

img = Image.open(sys.argv[1])
img = img.convert("RGBA")

pixdata = img.load()

# Clean the background noise, if color != white, then set to black.

for y in xrange(img.size[1]):
    for x in xrange(img.size[0]):
        if pixdata[x, y] == (255, 255, 255, 255):
            pixdata[x, y] = (0, 0, 0, 255)

вы можете использовать палитру цветов в gimp, чтобы поглотить цвет и увидеть, что это цвет rgba

person Yuda Prawira    schedule 03.10.2010

Я думаю, что самый быстрый способ сделать это - использовать метод Image.load(). Примерно так должно работать:

from PIL import Image
im = Image.open("image.jpg")
image_data = im.load()
# Here you have access to the RGB color of each pixel
# image_data[x,y] = (R,G,B)
person Tarantula    schedule 03.07.2010