2010-07-02 13 views
5

Ho un'immagine, vorrei sostituire tutti i pixel di un colore con quelli di un colore diverso, qual è il modo più semplice per farlo?Sostituzione di un singolo colore in PIL?

Più o meno ho un'immagine in tkinter e quando si preme un pulsante voglio cambiare il colore.

+1

Possibile duplicato: http://stackoverflow.com/questions/1616767/pil-best-way-to-replace-color – unutbu

risposta

4

provare questo.

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

è possibile utilizzare selettore di colori in GIMP per assorbire il colore e vedere che è il colore RGBA

3

Penso che il modo più veloce per farlo sia utilizzare il metodo Image.load(). Qualcosa del genere dovrebbe funzionare:

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

Il modo migliore per farlo è usare il metodo del punto. Provate questo thread per una spiegazione completa.

Problemi correlati