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.