Используйте метод Image.getdata .Метод возвращает генератор, который вы можете перебрать:
from PIL import Image
img = Image.open("a.png")
data = img.getdata()
for (r, g, b, a) in data:
# do something with the pixel values
Чтобы пойти другим путем, вы используете Image.putdata
.Это создает крошечное изображение шахматной доски:
>>> img = Image.new("L", (3, 3))
>>> data = [0, 255, 0, 255, 0, 255, 0, 255, 0]
>>> img.putdata(data)
>>> img.save("checkerboard.png")
Здесь я создал изображение в градациях серого (только один канал "свечения"), и поэтому я просто использовал одно целое значение для каждого пикселя.