⚠️ これは 非公式の翻訳サイトです。ImageMagick Studio LLC とは無関係です。正確な情報は 原文(https://imagemagick.org/gradient/) を参照してください。

画像グラデーション

画像グラデーションは、線形・円形・楕円形のいずれかの形状に形成された 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

linear gradient

放射状グラデーションが欲しい場合は、次を試してください:

magick -size 256x256 radial-gradient: radial_gradient.png
magick -size 256x256 radial-gradient:white-black radial_gradient.png

radial gradient

非線形のグレースケールグラデーションが欲しい場合は、出力を保存する前に -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 オプションは、矩形の画像に対し、画像の幅の半分と高さの半分を半径とする楕円形の放射状グラデーションを描く。

既定の線形グラデーションは、次のいずれの方法でも生成できます(方向を逆にして fromColortoColor を入れ替えても同様です):

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

linear gradient

次のコマンド

magick -size 128x256 gradient: -rotate 90 linear_gradient_east.png

と等価な結果は、次のいずれでも生成できます(方向を逆にして fromColortoColor を入れ替えても同様です):

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

radial gradient east

中心の黒から境界の白へ向かう放射状グラデーションの例を、「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

radial gradient maximum

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

radial gradient ellipse

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

radial gradient ellipse angle 45