画像グラデーション
画像グラデーションは、線形・円形・楕円形のいずれかの形状に形成された 2 色間の滑らかな混色を作ります。
線形グラデーションでは、演算子は次のいずれかです:
gradient:
gradient:_fromColor_
gradient:_fromColor_ -_toColor_
上書きされない限り、既定の fromColor は白、toColor は黒です。たとえば gradient:gray はグレーから黒へのグラデーションを返します。
放射状グラデーションでは、演算子は次のいずれかです:
radial-gradient:
radial-gradient:_fromColor_ -_toColor_
線形グラデーションの既定は、fromColor を画像の上部、toColor を画像の下部に置きます。同様に、放射状グラデーションの既定は、fromColor を画像の中心、toColor を画像の境界に置きます。
グラデーション色は、https://imagemagick.org/color/ で定義される任意の有効な色で構いません。名前付き色 black/white/grayXX と gray(XX[%]) は非線形グレーです。Linux システムでは、rgb(a) や 16 進色を引用符で囲みます。値に変数を使う場合はダブルクォートを使います。
放射状ではない線形グラデーションの例を示します:
magick -size 256x256 gradient: linear_gradient.png
magick -size 256x256 gradient:white-black linear_gradient.png

放射状グラデーションが欲しい場合は、次を試してください:
magick -size 256x256 radial-gradient: radial_gradient.png
magick -size 256x256 radial-gradient:white-black radial_gradient.png

非線形のグレースケールグラデーションが欲しい場合は、出力を保存する前に -colorspace RGB -colorspace gray を加えます。たとえば:
magick -size 256x256 gradient: linear_gradient.png
magick -size 256x256 gradient:white-black -colorspace RGB -colorspace gray linear_linear_gradient.png
magick -size 256x256 radial-gradient: radial_gradient.png
magick -size 256x256 radial-gradient:white-black -colorspace RGB -colorspace gray linea_radial_gradient.png
グラデーションは次の define の影響を受けます:
| -define gradient:vector=x1,y1, x2,y2 | 線形グラデーションの方向を vector1 (x1,y1) から vector2 (x2,y2) へと指定する。fromColor はベクトル位置 x1,y1 に、toColor はベクトル位置 x2,y2 に置かれる。 |
|---|---|
| -define gradient:center=x,y | 放射状グラデーションの中心点の座標を指定する。既定は画像の中心。 |
| -define gradient:radii=x,y | グラデーションの x・y 半径を指定する。x 半径と y 半径が等しければ、放射状グラデーションの形状は円になる。異なれば、形状は楕円になる。既定値は画像の幅の半分と高さの半分の最大値。 |
| -define gradient:angle=angle in degrees | 線形グラデーションでは、北(上)を基準に時計回りを正として fromColor から toColor へ向かうグラデーションの方向を指定する。放射状グラデーションでは、通常の X-Y 向きからの時計回りを正としたグラデーションの回転を指定する。 |
| -define gradient:bounding-box=widthxheight+x+y | グラデーションを画像寸法より大きい、または小さい領域に限定する。外接矩形で定義される領域が画像より小さい場合、fromColor が背景の色になる。 |
線形グラデーションの方向と放射状グラデーションの形状を設定するための、2 つの便宜的な define もサポートしています。
| -define gradient:direction={NorthWest, North, Northeast, West, East, SouthWest, South, SouthEast} | 線形グラデーションの方向を上下・左右、または対角の角へ向けて指定する。 |
|---|---|
| -define gradient:extent={Circle, Diagonal, Ellipse, Maximum, Minimum} | 画像中心の放射状グラデーションの形状を指定する。Circle と Maximum は、矩形の画像でも、画像の半幅と半高の大きい方を半径とする円形の放射状グラデーションを描く。Circle と Maximum オプションはどちらも既定の放射状グラデーションと等価。Minimum オプションは、矩形の画像でも、画像の半幅と半高の小さい方を半径とする円形の放射状グラデーションを描く。Diagonal オプションは、矩形の画像でも、画像の対角線の半分を半径とする円形の放射状グラデーションを描く。Ellipse オプションは、矩形の画像に対し、画像の幅の半分と高さの半分を半径とする楕円形の放射状グラデーションを描く。 |
例
既定の線形グラデーションは、次のいずれの方法でも生成できます(方向を逆にして fromColor と toColor を入れ替えても同様です):
magick -size 256x128 -define gradient:direction=north gradient:black-white linear_gradient_default.png
magick -size 256x128 -define gradient:angle=0 gradient:black-white linear_gradient_default.png

次のコマンド
magick -size 128x256 gradient: -rotate 90 linear_gradient_east.png
と等価な結果は、次のいずれでも生成できます(方向を逆にして fromColor と toColor を入れ替えても同様です):
magick -size 256x128 -define gradient:direction=east gradient:black-white linear_gradient_east.png
magick -size 256x128 -define gradient:angle=90 gradient:black-white linear_gradient_east.png

中心の黒から境界の白へ向かう放射状グラデーションの例を、「maximum/circle/既定」「minimum」「diagonal」「ellipse」「45 度回転した楕円」の各ケースについて、以下に順に示します。
magick -size 256x128 radial-gradient:black-white radial_gradient_maximum.png
magick -size 256x128 -define gradient:radii=128,128 radial-gradient:black-white radial_gradient_maximum.png

magick -size 256x128 -define gradient:extent=minimum radial-gradient:black-white radial_gradient_minimum.png
magick -size 256x128 -define gradient:radii=64,64 radial-gradient:black-white radial_gradient_minimum.png

magick -size 256x128 -define gradient:extent=diagonal radial-gradient:black-white radial_gradient_diagonal.png

magick -size 256x128 -define gradient:extent=ellipse radial-gradient:black-white radial_gradient_ellipse.png
magick -size 256x128 -define gradient:radii=128,64 radial-gradient:black-white radial_gradient_ellipse.png

magick -size 256x256 -define gradient:radii=128,64 -define gradient:angle=45 radial-gradient:black-white radial_gradient_ellipse_angle45.png
