Замена одного цвета в ПИЛ? - PullRequest
5 голосов
/ 03 июля 2010

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

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

Ответы [ 3 ]

4 голосов
/ 03 октября 2010

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

#!/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

3 голосов
/ 03 июля 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)
0 голосов
/ 06 июля 2011

Лучший способ сделать это - использовать точечный метод. Там попробуйте этот поток для полного объяснения.

...