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

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


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, 25shade = 20from PIL import Imageim = 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).