¿Colorear la imagen conservando la transparencia con PIL?

Bueno, aquí está la situación:

Quiero usar la Biblioteca de imágenes de Python para "tema" una imagen como esta:

Color del tema: "#33B5E5"

EN: AFUERA:

Obtuve el resultado usando estos comandos con ImageMagick:

convert image.png -colorspace gray image.png
mogrify -fill "#33b5e5" -tint 100 image.png
Explicación:


La imagen se convierte primero en blanco y negro, y luego es temática.

Quiero obtener el mismo resultado con la Biblioteca de imágenes de Python. Pero parece que estoy teniendo algunos problemas para usarlo desde:

No se puede manejar la transparencia.El fondo (transparencia en la imagen principal) también tiene un tema.

Estoy tratando de usar este script:

import Image
import ImageEnhance

def image_overlay(src, color="#FFFFFF", alpha=0.5):
    overlay = Image.new(src.mode, src.size, color)
    bw_src = ImageEnhance.Color(src).enhance(0.0)
    return Image.blend(bw_src, overlay, alpha)

img = Image.open("image.png")
image_overlay(img, "#33b5e5", 0.5)

Puedes ver que no lo convertí primero a escala de grises porque tampoco funcionó con transparencia.

Lamento haber publicado tantos problemas en una pregunta, pero no pude hacer nada más: $

Espero que todos ustedes entiendan.

Respuestas a la pregunta(2)

Su respuesta a la pregunta