I need to create red, green and purple (and, if possible, yellow) versions of the following image:
Original image is here: https://github.com/jsx97/test/blob/main/folder.png
For this, I use
magick input.png -colorspace gray -fill red -tint 100 output-red.png
magick input.png -colorspace gray -fill green -tint 100 output-green.png
etc.
I don't know why, but the red folder is too bright. For example, here you can see a shadow:
But on the red image you won's see it:
How can I create such red, green, etc. versions with more balanced colors? Maybe we need to convert to Lab or LCH first?
Mark Setchell's command gives me two constant red images. The issue seems to be that ImageMagick 7 processes alpha channels different from ImageMagick 6, plus the fact that -colorize 100
just makes a constant color result. So this may be what he was trying to do.
magick img.png \
\( +clone -alpha extract -write mpr:alpha +delete \) \
-alpha off -colorspace HSL -separate -delete 0,1 \
\( +clone -fill red -colorize 100% \) -colorspace sRGB \
-compose multiply -composite -compose over \
mpr:alpha -alpha off -compose copy_opacity -composite result.png
Or using -compose softlight
rather than multiply
:
magick img.png \
\( +clone -alpha extract -write mpr:alpha +delete \) \
-alpha off -colorspace HSL -separate -delete 0,1 \
\( +clone -fill red -colorize 100% \) -colorspace sRGB \
-compose softlight -composite -compose over \
mpr:alpha -alpha off -compose copy_opacity -composite result.png
Or using -compose overlay
:
magick img.png \
\( +clone -alpha extract -write mpr:alpha +delete \) \
-alpha off -colorspace HSL -separate -delete 0,1 \
\( +clone -fill red -colorize 100% \) -colorspace sRGB \
-compose overlay -composite -compose over \
mpr:alpha -alpha off -compose copy_opacity -composite result.png
Or -compose pegtoplight
:
magick img.png \
\( +clone -alpha extract -write mpr:alpha +delete \) \
-alpha off -colorspace HSL -separate -delete 0,1 \
\( +clone -fill red -colorize 100% \) -colorspace sRGB \
-compose pegtoplight -composite -compose over \
mpr:alpha -alpha off -compose copy_opacity -composite result.png