Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to change the color of one individual pixel in Python?

Tags:

I need python to change the color of one individual pixel on a picture, how do I go about that?

like image 435
rectangletangle Avatar asked Aug 29 '10 20:08

rectangletangle


People also ask

How do you set the color in pixels?

Once your phone finishes rebooting, you will find the new colors in Settings –> Display –> Styles & Wallpaper. Select "Custom 1" and choose a font and icon style. When you get to colors, you will see the new set of colors you flashed.


1 Answers

To build upon the example given in Gabi Purcaru's link, here's something cobbled together from the PIL docs.

The simplest way to reliably modify a single pixel using PIL would be:

x, y = 10, 25 shade = 20  from PIL import Image im = Image.open("foo.png") pix = im.load()  if im.mode == '1':     value = int(shade >= 127) # Black-and-white (1-bit) elif im.mode == 'L':     value = shade # Grayscale (Luminosity) elif im.mode == 'RGB':     value = (shade, shade, shade) elif im.mode == 'RGBA':     value = (shade, shade, shade, 255) elif im.mode == 'P':     raise NotImplementedError("TODO: Look up nearest color in palette") else:     raise ValueError("Unexpected mode for PNG image: %s" % im.mode)  pix[x, y] = value   im.save("foo_new.png") 

That will work in PIL 1.1.6 and up. If you have the bad luck of having to support an older version, you can sacrifice performance and replace pix[x, y] = value with im.putpixel((x, y), value).

like image 109
ssokolow Avatar answered Sep 27 '22 19:09

ssokolow