Материалы для изучения:
Пример программы, которая делает из изображения чёрно-белое, усредняя значения компонент R, G, B.
from PIL import Image
img = Image.open("input.png") # Загружаем изображение из файла, формат файла определяется автоматически
pix = img.load() # Получаем ссылку на массив пикселей
for x in range(0, img.width): # Цикл по оси OX, слева направо
for y in range(0, img.height): # Цикл по оси OY, cверху вниз
r, g, b = pix[x, y] # pix[x, y] - это кортеж из трёх чисел
gr = (r + g + b) // 3 # берём среднее из них
pix[x, y] = (gr, gr, gr) # записываем новый кортеж
# img.show() # Если оставить эту строчку, то картинка отобразится во внешней программе просмотра
img.save("output.png") # Сохраняем изображение в новом файле
Для создания нового изображения нужно вызвать метод new:
img = Image.new("RGB", (640, 480), "white")
У этого метода следующие параметры.
(255, 255, 255).
После этого с созданным изображением можно выполнять любые действия, затем записать его в файл.