I am trying to grayscale with python using Wand, but when I do
from wand.image import Image
with Image(filename='image.png') as img:
img.type = 'grayscale'
img.save(filename='image_gray.png')
it turns the transparent background into black. If I use one with white background it works. What do I do wrong. And also as grayscaling is
Y = 0.2126 * RED + 0.7152 * GREEN + 0.0722 * BLUE
Where can I do that manually in Wand, say if I want to change the values a bit. I looked in the documentation and in various forums but I couldn't find any answer, only stuff for photoshop.
Thanks!
PNG image type set to grayscale removes transparent layer (see PNG docs). One option would be to enable the Alpha channel after setting grayscale.
img.alpha = True
# or
img.background_color = Color('transparent')
Depending on which version you have, this might not work.
Another Option
Alter the color saturation with Image.modulate.
img.modulate(saturation=0.0)
Another Option
Alter the colorspace.
img.colorspace = 'gray'
# or
img.colorspace = 'rec709luma'
# or
img.colorspace = 'rec601luma'
Another Option
If your version has Image.fx
. The following would work
with img.fx('lightness') as gray_copy:
....