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?

questionAnswers(3)

yourAnswerToTheQuestion