Asked By – GermainZ
Is it possible to get the RGB color of a pixel using PIL?
I’m using this code:
im = Image.open("image.gif") pix = im.load() print(pix[1,1])
However, it only outputs a number (e.g.
1) and not three numbers (e.g.
60,60,60 for R,G,B). I guess I’m not understanding something about the function. I’d love some explanation.
Thanks a lot.
Now we will see solution for issue: Get pixel’s RGB using PIL
Yes, this way:
im = Image.open('image.gif') rgb_im = im.convert('RGB') r, g, b = rgb_im.getpixel((1, 1)) print(r, g, b) (65, 100, 137)
The reason you were getting a single value before with
pix[1, 1] is because GIF pixels refer to one of the 256 values in the GIF color palette.
See also this SO post: Python and PIL pixel values different for GIF and JPEG and this PIL Reference page contains more information on the
By the way, your code would work just fine for
This question is answered By – Levon
This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0