[magick-users] gradient to transparency
Fred Weinhaus
fmw at alink.net
Fri Apr 11 10:23:05 PDT 2008
Try:
convert \( -size 100x100 gradient:red \) \
\( +clone -colorspace Gray -gamma 1.0 \) \
+matte -compose Copy_Opacity -composite out.png
The first line creates a 100x100 red gradient.
The second line converts a copy to grayscale and modified it by the
non-linear function gamma. With gamma=1.0 there is no change. Gamma
can be larger or smaller than 1.0. Gamma greater than 1 is similar to
an exp and gamma less than 1 is similar to log ( I may have that
backwards, but you get the idea). If you want some other function you
can replace -gamm with -fx "somefunction"
The third line places the modified grayscale gradient into the
transparency channel of the red gradient.
If you want to take an existing color gradient and place it over
another image, then try something like
convert backgroundimage \
\( gradientimage -colorspace Gray -gamma 1.0 \) \
+matte -compose Copy_Opacity -composite out.png
Assuming the background and gradient images are the same size.
>I'm seeking for a general solution to allow for producing gradients
>from color to transparency either linearly or (even better) after
>some function (exp or other).
>
>Reason behind is producing shadows for images or weblayouts over
>their respective background image so that I get a smooth
>transition from some opaque shadow to transparency.
>
>Thanks a lot in advance.
>
>
>--
>Chris Christoph P. U. Kukulies
More information about the Magick-users
mailing list