Bild unter Wahrung der Transparenz mit PIL einfärben?

Okay, hier ist die Situation:

Ich möchte die Python-Bildbibliothek verwenden, um ein Bild wie dieses zu "thematisieren":

Themenfarbe: "#33B5E5"

IM: AUS:

Ich habe das Ergebnis mit diesen Befehlen mit ImageMagick erhalten:

convert image.png -colorspace gray image.png
mogrify -fill "#33b5e5" -tint 100 image.png
Erläuterung:


Das Bild wird zuerst in Schwarzweiß konvertiert und dann thematisiert.

Ich möchte mit der Python-Bildbibliothek das gleiche Ergebnis erzielen. Aber es scheint, dass ich seitdem einige Probleme damit habe:

Kann nicht mit Transparenz umgehenHintergrund (Transparenz im Hauptbild) wird ebenfalls thematisiert.

Ich versuche dieses Skript zu benutzen:

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)

Sie können sehen, dass ich es nicht zuerst in eine Graustufe konvertiert habe, da dies auch mit Transparenz nicht funktioniert hat.

Es tut mir leid, so viele Probleme in einer Frage zu posten, aber ich konnte nichts anderes tun: $

Hoffe ihr alle versteht.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage