Является ли использование PIL
обязательным в вашем случае? Если нет, то подумайте об использовании OpenCV (cv2
) для изменения определенных пикселей изображения.
Код, который изменяет (0,0) пиксель на (200,200,200), выглядит следующим образом в opencv:
import cv2
img = cv2.imread('yourimage.jpg')
height = img.shape[0]
width = img.shape[1]
img[0][0] = [200,200,200]
cv2.imwrite('newimage.bmp',img)
Обратите внимание, что этот код сохраняет изображение в формате .bmp
- cv2 также может записывать .jpg
изображения, но, поскольку jpg обычно имеет формат с потерями, некоторые мелкие детали могут быть потеряны. Имейте в виду, что в cv2
[0][0]
находится левый верхний угол, и первое значение является координатой y пикселя, а второе - координатой x, кроме цвета - три значения от 0
до 255
(включительно) в BGR
заказ, а не RGB
.
Инструкции по OpenCV, включая установку, см. this .