Python: PIL substitui uma única cor RGBA
Eu já dei uma olhada nesta pergunta:Pergunta SO e parece ter implementado uma técnica muito semelhante para substituir uma única cor, incluindo os valores alfa:
c = Image.open(f)
c = c.convert("RGBA")
w, h = c.size
cnt = 0
for px in c.getdata():
c.putpixel((int(cnt % w), int(cnt / w)), (255, 0, 0, px[3]))
cnt += 1
No entanto, isso é muito lento. eu encontreiesta receita nas interwebs, mas não obtiveram sucesso com o uso até agora.
O que estou tentando fazer é obter várias imagens PNG que consistem em uma única cor, branca. Cada pixel é 100% branco com vários valores alfa, incluindo alfa = 0. O que eu quero fazer é basicamente colorir a imagem com uma nova cor definida, por exemplo # ff0000 <00-ff>. ASSIM, minhas imagens iniciais e resultantes ficariam assim onde o lado esquerdo é minha imagem inicial e a direita é minha imagem final (NOTA: o fundo foi alterado para um cinza claro, para que você possa vê-lo, pois é realmente transparente e você não Não é possível ver os pontos à esquerda.)
Existe alguma maneira melhor de fazer isso?