Pokoloruj obraz, zachowując przezroczystość za pomocą PIL?

Dobra, oto sytuacja:

Chcę użyć biblioteki obrazów Pythona do „motywowania” takiego obrazu:

Kolor motywu: "#33B5E5"

W: NA ZEWNĄTRZ:

Otrzymałem wynik za pomocą tych poleceń z ImageMagick:

convert image.png -colorspace gray image.png
mogrify -fill "#33b5e5" -tint 100 image.png
Wyjaśnienie:


Obraz jest najpierw konwertowany na czarno-biały, a następnie jest tematycznie.

Chcę uzyskać ten sam wynik z Python Image Library. Ale wydaje mi się, że mam z tym problemy, ponieważ:

Nie można obsługiwać przezroczystościTło (przezroczystość w głównym obrazie) również jest tematycznie ..

Próbuję użyć tego skryptu:

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)

Możesz zobaczyć, że najpierw nie przekonwertowałem go na skalę szarości, ponieważ nie działało to z przezroczystością.

Przepraszam, że opublikowałem tak wiele problemów w jednym pytaniu, ale nie mogłem zrobić nic innego: $

Mam nadzieję, że wszyscy zrozumiecie.

questionAnswers(2)

yourAnswerToTheQuestion