2010-07-02 12 views
5

Ich habe ein Bild, ich möchte alle Pixel einer Farbe mit denen in einer anderen Farbe ersetzen, was ist der einfachste Weg, um das zu tun?Eine einzelne Farbe in PIL ersetzen?

Mehr oder weniger habe ich ein Bild in Tkinter, und wenn eine Taste gedrückt wird, möchte ich die Farbe ändern.

+1

Mögliches Duplikat: http://stackoverflow.com/questions/1616767/pil-best-way-to-replace-color – unutbu

Antwort

4

dies versuchen.

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

können Sie Farbwähler in Gimp verwenden, um die Farbe zu absorbieren und sehen, das ist RGBA-Farb

3

Ich denke, dass der schnellste Weg das zu tun ist, die Image.load() Methode zu verwenden. So etwas sollte funktionieren:

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

Der beste Weg, dies zu tun, um die Punkt-Methode verwendet. Versuchen Sie diese thread für eine vollständige Erklärung.

Verwandte Themen