Как заменить цвет PNG изображения?
У меня есть изображение в формате png - 
Мне нужно заменить его цвет при помощи скрипта. Такой метод просто заливает всю форму цветом
image = Image.open(img_path)
image.paste(tuple(color), [0,0,image.size[0],image.size[1]])
image.save(f"{img.split('.', 1)[0]}-p.png")
Мне нужно залить цветом только те участки, на которых есть непрозрачные пиксели. Причём каждый пиксель нужно закрасить цветом той прозрачности, которая была у него до заполнения.
пример выходного изображения - 
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Делаем перебор пикселей и смотрим на те, у которых есть значение в альфаканале и заменяем их RGB на белый цвет
# pip install Pillow
from PIL import Image
image_file = "input.png"
img = Image.open(image_file).convert('RGBA')
pixdata = img.load()
for y in range(img.size[1]):
for x in range(img.size[0]):
alpha = pixdata[x, y][3]
if alpha:
pixdata[x, y] = (255, 255, 255, alpha)
img.save("output.png")
Результат:
