if ( isset($_GET['GRADIENT'])){
$GRADIENT=$_GET['GRADIENT'];
}else{
$GRADIENT="";
}
if ( isset($_GET['SIZE'])){
$SIZE=$_GET['SIZE'];
}else{
$SIZE="";
}
if ( isset($_GET['COLOR'])){
$COLOR=$_GET['COLOR'];
}else{
$COLOR="";
}
if ( isset($_GET['OUT'])){
$OUT=$_GET['OUT'];
}else{
$OUT="";
}
$rand=rand(1, 1000);
$GIF="temp/GradShape_$rand.gif";
$PNG="temp/GradShape_$rand.png";
$GSIZE="-size $SIZE";
$GCOLOR="$COLOR";
if ( $_GET[GRADIENT] == 1)
{
$IN="temp/gradCircle.gif";
exec ("/usr/bin/convert $GSIZE xc: -fx 'xx=i/w-.5; yy=j/h-.5; rr=xx*xx+yy*yy; 1-rr*4' $IN");
$IN2="temp/gradCircle.gif";
$SHIFT="-size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)'";
exec ("/usr/bin/convert $IN2 $SHIFT $OUT");
}
if ( $_GET[GRADIENT] == 2)
{
$IN="temp/gradArc.gif";
exec ("/usr/bin/convert $GSIZE xc: -fx 'rr=hypot(i/w-.5, j/h-.5); 1-rr*1.42' $IN");
$IN2="temp/gradArc.gif";
$SHIFT="-size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' -virtual-pixel black -distort Arc 90 -trim +repage";
exec ("/usr/bin/convert $IN2 $SHIFT $OUT");
}
if ( $_GET[GRADIENT] == 3)
{
$IN="temp/gradRoll.gif";
exec ("/usr/bin/convert $GSIZE xc: -fx 'rr=hypot(i/w-.5, j/h-.5); 1-rr*1.42' $IN");
$IN2="temp/gradRoll.gif";
$SHIFT="-size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' -roll +50+50";
exec ("/usr/bin/convert $IN2 $SHIFT $OUT");
}
if ( $_GET[GRADIENT] == 4)
{
$IN="temp/gradCorner.gif";
exec ("/usr/bin/convert $GSIZE xc: -channel G -fx '.5 - atan2(j-h/2,w/2-i)/pi/2' -separate $IN");
$IN2="temp/gradCorner.gif";
exec ("/usr/bin/convert $IN -size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' $OUT");
}
if ( $_GET[GRADIENT] == 5)
{
$IN="temp/gradSquare.gif";
exec ("/usr/bin/convert $GSIZE xc: -fx '(1-(2*i/w-1)^4)*(1-(2*j/h-1)^4)' $IN");
$IN2="temp/gradSquare.gif";
exec ("/usr/bin/convert $IN -size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' $OUT");
}
if ( $_GET[GRADIENT] == 6)
{
$IN="temp/gradVTube.gif";
exec ("/usr/bin/convert $GSIZE xc: -channel G -fx 'cos(pi*(i/w-.5))' -separate $IN");
$IN2="temp/gradVTube.gif";
exec ("/usr/bin/convert $IN2 -size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' $OUT");
}
if ( $_GET[GRADIENT] == 7)
{
$IN="temp/gradHorz.gif";
exec ("/usr/bin/convert $GSIZE xc: -fx 'sc=.15; (i/w-.5)/(1+sc*cos(j*pi*2/h)-sc)+.5' -rotate 90 $IN");
$IN2="temp/gradHorz.gif";
exec ("/usr/bin/convert $IN2 -size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' $OUT");
}
if ( $_GET[GRADIENT] == 8)
{
$IN="temp/gradHTube.gif";
exec ("/usr/bin/convert $GSIZE xc: -channel G -fx 'cos(pi*(i/w-.5))' -separate -rotate 90 $IN");
$IN2="temp/gradHTube.gif";
exec ("/usr/bin/convert $IN2 -size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' $OUT");
}
if ( $_GET[GRADIENT] == 9)
{
$IN="temp/gradTriangle.gif";
exec ("/usr/bin/convert $GSIZE xc: -fx 'rr=hypot(i/w-.5, j/h-.5); 1-rr*1.42' -background black -wave -28x200 -crop 100x100+0+0 +repage $IN");
$IN2="temp/gradTriangle.gif";
$SHIFT="-size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' $OUT";
exec ("/usr/bin/convert $IN2 $SHIFT $OUT");
}
if ( $_GET[GRADIENT] == 10)
{
$IN="temp/gradSlats.gif";
exec ("/usr/bin/convert $GSIZE gradient: \( +clone +clone +clone +clone \) -background black -compose Add -flatten $IN");
$IN2="temp/gradSlats.gif";
$SHIFT="-size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' $OUT";
exec ("/usr/bin/convert $IN2 $SHIFT $OUT");
}
if ( $_GET[GRADIENT] == 11)
{
$IN="temp/gradDiagSlat.gif";
exec ("/usr/bin/convert $GSIZE gradient: \( gradient: -rotate -90 \) \( -clone 0--1 -clone 0--1 \) -background gray50 -compose Add -flatten $IN");
$IN2="temp/gradDiagSlat.gif";
$SHIFT="-size 1x2 gradient:$GCOLOR -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' $OUT";
exec ("/usr/bin/convert $IN2 $SHIFT $OUT");
}
if ( $_GET[GRADIENT] == 12 )
{
$OUT="gradCorner.gif";
exec ("/usr/bin/convert -size 100x100 xc: -channel G -fx '.5 - atan2(j-h/2,w/2-i)/pi/2' -separate $OUT");
$IN="gradCorner.gif";
$OUT2="grTubeFX.gif";
exec ("/usr/bin/convert $IN -size 1x2 gradient:yellow-black -fx 'v.p{0,0}*u+v.p{0,1}*(1-u)' $OUT2");
}
print "