Copyright © Fred Weinhaus My scripts are available free of charge for non-commercial (non-profit) use, ONLY. For use of my scripts in commercial (for-profit) environments or non-free applications, please contact me (Fred Weinhaus) for licensing arrangements. My email address is fmw at alink dot net. If you: 1) redistribute, 2) incorporate any of these scripts into other free applications or 3) reprogram them in another scripting language, then you must contact me for permission, especially if the result might be used in a commercial or for-profit environment. Usage, whether stated or not in the script, is restricted to the above licensing arrangements. It is also subject, in a subordinate manner, to the ImageMagick license, which can be found at: http://www.imagemagick.org/script/license.php Please read the Pointers For Use on my home page to properly install and customize my scripts. |
Creates either a linear or radial gradient image with two or more stops to specify colors and locations along the gradient direction. |
last modified: February 02, 2019
USAGE: multigradient [-w width] [-h height] [-s stops] [-t type] [-d direction] [-c center] [-r radii] outfile
-w ... width ....... width of desired output image; default=256 PURPOSE: To create either a linear or radial gradient image with two or more stops to specify colors and locations along the gradient direction. DESCRIPTION: RADIALGRADIENT creates either a linear or radial gradient image with two or more stops to specify colors and locations along the gradient direction. Linear gradients may be oriented at any rotation angle or towards any side or corner. A radial gradient may be either an ellipse or constrained to a circle. Directions include: closest-side, furthest-side, closest-corner, or furthest corner. Colors may contain partial transparency and allow any valid IM color specification, including color names, rgb values or hex values. This script attempts to simulate many of the features of CSS style gradients. ARGUMENTS: -w width ... WIDTH of desired output image. The default=256. -h height ... HEIGHT of desired output image. The default=256. -s stops ... STOPS are a space separate list of pairs of colors and percent locations along the gradient enclosed in double quotes. The colors may be color names, hex colors, rgb colors or a mix. The first and last percent location may be left off and are then assumed to be 0 and 100 (percent). The first percentage must be zero if specified. The last percentage may be less than 100 if specified. In this case, then last color will be use to fill out the gradient. The default="white black" or "white 0 black 100". -t type ... TYPE of gradient. The choices are: linear, circle or ellipse. The default=linear. -d direction ... DIRECTION of gradient. For type=linear, direction may be either an angle in degrees measured clockwise from the zeroangle in the range of -360 to 360 or alternately, direction may be any one of the following: to-top, to-right, to-bottom, to-left, to-topright, to-bottomright, to-bottomleft or to-topleft for linear. For type=ellipse or circle, direction may be one of the following: closest-side, furthest-side, closest-corner, furthest-corner. For type=linear, the default is to-bottom for zeroangle=to-top and the default is to-right for zeroangle=to-right. For ellipse or circle the default=closest-side. -c center ... x and y CENTER coordinates for ellipse or circle expressed as a comma separate pair of non-negative floats. The default=(width-2)/2,(height-1)/2. -r radii ... x and y RADII for ellipse or circle expressed as a comma separate pair of non-negative floats. The default is determined by distance from the gradient center to the closest-side. -z zeroangle ... ZEROANGLE is direction where angle=0 for type=linear. The choices are: to-top or to-right. The default=to-top REFERENCE: http://dev.w3.org/csswg/css-images-3/ CAVEAT: No guarantee that this script will work on all platforms, nor that trapping of inconsistent parameters is complete and foolproof. Use At Your Own Risk. |
Example 1 - Grayscale Linear Gradient |
|
Arguments: (defaults) or -w 256 -h 256 -s "white black" or -w 256 -h 256 -s "white 0 black 100" or -w 256 -h 256 -s "white black" -t linear -d 180 or -w 256 -h 256 -s "white black" -t linear -d to-bottom or -w 256 -h 256 -s "black white" -t linear -d to-top or -w 256 -h 256 -s "black white" -t linear -d 0 |
Arguments: -w 256 -h 256 -s "black white" or -w 256 -h 256 -s "black 0 white 100" or -w 256 -h 256 -s "black white" -t linear -d 180 or -w 256 -h 256 -s "black white" -t linear -d to-bottom or -w 256 -h 256 -s "white black" -t linear -d to-top or -w 256 -h 256 -s "white black" -t linear -d 0 |
Example 2 - Two-Tone Linear Gradient |
|
Arguments: -w 256 -h 256 -s "red blue" |
Arguments: -w 256 -h 256 -s "red none" |
Example 3 - Multiple Stops Linear Gradient - Variation In Rotation Angle |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t linear -d XX where XX is 30 degree increments from 0 to 330 combined as an animation |
Example 3 - Multiple Stops Linear Gradient - To Sides |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t linear -d to-top |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t linear -d to-right |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t linear -d to-bottom |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t linear -d to-left |
Example 4 - Multiple Stops Linear Gradient - To Corners |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t linear -d to-topright |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t linear -d to-bottomright |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t linear -d to-bottomleft |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t linear -d to-topleft |
Example 4 - Multiple Stops Circular Gradient |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t circle -d closest-side |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t circle -d furthest-side |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t circle -d closest-corner or since centered -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t circle -d furthest-corner |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t circle -d closest-side -c "100,100" |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t circle -d furthest-side -c "100,100" |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t circle -d closest-corner -c "100,100" |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t circle -d furthest-corner -c "100,100" |
Example 4 - Multiple Stops Elliptical Gradient |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t ellipse -d closest-side or since centered -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t ellipse -d furthest-side |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t ellipse -d closest-corner or since centered -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t ellipse -d furthest-corner |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t ellipse -d closest-side -c "100,100" |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t ellipse -d furthest-side -c "100,100" |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t ellipse -d closest-corner -c "100,100" |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t ellipse -d furthest-corner -c "100,100" |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t ellipse -c "100,100" -r "50,100" |
Arguments: -w 400 -h 200 -s "red yellow 20 cyan 50 magenta 70 blue" -t ellipse -c "100,100" -r "100,50" |
What the script does is as follows:
|