Как оптимизировать алгоритм изменения цвета градиента?
У меня есть пара строчек кода, которая умеет менять цвет градиента на указанный, выглядит так:
fade = Im.open("path")
for i in range(fade.size[0]):
for j in range(fade.size[1]):
if fade.getpixel((i, j))[-1] != 0:
fade.putpixel((i, j), (255, 255, 255, fade.getpixel((i, j))[-1]))
проблема в том, что такая конвертация - очень не оптимальная, занимает 10 секунд
Как это можно оптимизировать?
Ответы (1 шт):
Автор решения: Stvlpotapov
→ Ссылка
numpy предоставляет классное решение
fade = Im.open(path)
pix = np.array(fade)
alpha = pix[:, :, 3]
mask = alpha > 0
pix[mask, 0] = 255
pix[mask, 1] = 255
pix[mask, 2] = 255
fade = Image.fromarray(pix)