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

コマンドラインオプション

以下は ImageMagick のコマンドラインツールが認識するコマンドラインオプションの一覧です。特定のオプションの説明を見たい場合は、上の選択ボックスでオプション名を選べばそこへ直接移動します。特に注記がない限り、各オプションは magickmogrify コマンドで認識されます。

-adaptive-blur radius[xsigma]

ピクセルを適応的にぼかし、エッジ付近では効果を弱めます。

指定した radius と標準偏差(sigma)のガウス演算子が使われます。sigma を指定しない場合の既定値は 1 です。

sigma 値が重要な引数で、実際にどの程度ぼかすかを決めます。

radius は、計算されたガウス分布を保持する配列のサイズを決めるためにのみ使われます。整数であるべきです。指定しないか 0 に設定すると、IM はガウス分布に意味のある結果を与える最大の radius を計算します。

-adaptive-resize geometry

データ依存の三角形分割を使って画像をリサイズします。

geometry 引数の詳細は 画像ジオメトリ を参照してください。-adaptive-resize は既定でデータ依存の三角形分割を使います。別の再サンプリングアルゴリズムを選ぶには -filter を使います。ジオメトリ文字列にオフセットがあっても無視され、-gravity も効果がありません。

-adaptive-sharpen radius[xsigma]

ピクセルを適応的にシャープにし、エッジ付近では効果を強めます。

指定した radius と標準偏差(sigma)のガウス演算子が使われます。sigma を指定しない場合の既定値は 1 です。

sigma 値が重要な引数で、実際にどの程度の処理が行われるかを決めます。

radius は、計算されたガウス分布を保持する配列のサイズを決めるためにのみ使われます。整数であるべきです。指定しないか 0 に設定すると、IM はガウス分布に意味のある結果を与える最大の radius を計算します。

-adjoin

複数の画像を 1 つのマルチイメージファイルに結合します。

このオプションは既定で有効です。画像シーケンスのすべての画像を、指定した出力ファイルに保存しようとします。ただし JPEG や PNG など一部のフォーマットは 1 ファイルに 2 つ以上の画像を保持できないため、その場合 ImageMagick は各画像を別ファイルとして書き出さざるを得ません。そのため、複数の画像を書き出す必要があるときは、各画像に固有の名前を付けるため、拡張子の前に -scene 番号を追加してファイル名が変更されます。

ファイル形式が 1 ファイル複数画像を許可するかどうかに関わらず(例: GIF、MIFF、TIFF)、各画像を別ファイルに強制的に書き出すには +adjoin を使います。

出力ファイル名に C 言語スタイルの整数フォーマット文字列を含めると、自動的に +adjoin が有効になり、ファイル名のどこに -scene 番号を置くかを指定します。'%d' や '%03d' といった文字列は、標準の printf() C ライブラリ関数を使ったことがある人にはおなじみです。例として、次のコマンド

magick logo: rose: -morph 15 my%02dmorph.jpg

は 17 枚の画像シーケンス(与えた 2 枚 + -morph で作られた 15 枚)を作成し、my00morph.jpg, my01morph.jpg, my02morph.jpg, ..., my16morph.jpg と名付けます。

まとめると、ImageMagick はすべての画像を 1 ファイルに書き出そうとしますが、次のいずれかの条件があれば複数ファイルに保存します。

  1. 出力画像のファイル形式がマルチイメージファイルを許可しない、
  2. +adjoin オプションが指定された、または
  3. printf() 整数フォーマット文字列(例: "%d")が出力ファイル名に含まれる。

-affine sx,rx,ry,sy[,tx,ty]

回転と拡大縮小を組み合わせた描画変換行列を設定します。

このオプションは、後続の -draw や -transform オプションで使う変換行列を設定します。

行列の要素は、引用符で囲むかスペースなしで、カンマ区切りの数値として入力します。

内部的には変換行列は 3x3 要素ですが、うち 3 つは定数のため入力から省略されます。元画像の位置 (x, y) にあるピクセルの新しい(変換後の)座標 (x', y') は、次の行列方程式で計算されます。

affine transformation

結果画像のサイズは、変換後のソース画像を含む最小の矩形のサイズになります。パラメータ tx と ty は続いて画像ピクセルをシフトし、画像領域外へ移動したピクセルは切り取られます。

変換行列は左手系ピクセル座標系に従います。正の x・y 方向はそれぞれ右・下、正の回転は時計回りです。

平行移動係数 tx と ty を省略すると既定値は 0,0 です。したがって、平行移動なしの回転と拡大縮小には 4 つのパラメータで十分です。

x・y 方向にそれぞれ係数 sx・sy で拡大縮小するには、次のようにします。

詳細は -transform と -distort の 'Affineprojection' メソッドを参照してください。

-affine sx,0,0,sy

変位 (tx, ty) による平行移動は次のようにします:

-affine 1,0,0,1,tx,ty

原点(左上隅)を中心に角度 a だけ時計回りに回転するには、c = cos(a)、s = sin(a) として次のようにします。

-affine c,s,-s,c

一連の -affine 変換の累積効果は、各変換の行列の積に等しい行列を使う単一の -affine 操作で代替できます。

ほぼ特異な変換行列を検出しようとします。行列式の絶対値が十分に小さい場合は拒否されます。

-alpha type

画像のアルファ/マットチャンネルを制御します。

既存のアルファチャンネルデータを使うかどうか、アルファチャンネルを作成するか、あるいはアルファチャンネルに対する他の操作を行うかを示すフラグを画像に設定するために使います。引数のタイプを以下の一覧から選びます。

activate
画像の透明度チャンネルを有効にする。通常は、(明示的に Off にされた)既存の透明度チャンネルを特に保持する必要がない限り、これではなく Set を使うべき。
associate
アルファチャンネルを画像に関連付ける。
background
完全透明なピクセルを完全透明のまま背景色に設定する。透明ピクセルの RGB 値が均一になるため、PNG など一部の画像形式ではファイルを小さくでき、圧縮性が向上する。
copy
アルファ/マットチャンネルを 'On' にし、画像のグレースケール強度をアルファチャンネルにコピーする。グレースケールマスクを、適切に着色できる透明な形状マスクに変換する。カラーチャンネルは変更されない。
deactivate
画像の透明度チャンネルを無効にする。既存データは削除・変更せず、そのデータの使用を止めるだけ。
disassociate
アルファチャンネルを画像から切り離す。
extract
アルファチャンネル値をすべてのカラーチャンネルにコピーし、画像の透明度を 'Off' にして、画像形状のグレースケールマスクを生成する。アルファチャンネルデータは無効化されるだけで保持される。'Copy' の逆。
off
アルファチャンネルを無効にする。
off-if-opaque
完全に不透明な場合に限りアルファチャンネルを無効にする。
on
アルファチャンネルを有効にする。
opaque
アルファ/マットチャンネルを有効にし、完全不透明にする。
remove
画像を背景色の上に合成する。
set
アルファ/マットチャンネルを有効にする。以前に Off だった場合はチャンネルを不透明にリセットもする。すでに On だった場合は効果なし。
shape
'Copy' と同様だが、結果の形状マスクを現在の背景色で着色する。つまり RGB カラーチャンネルが、適切なアルファ形状とともに置き換えられる。
transparent
アルファ/マットチャンネルを有効にし、完全透明にする。これにより、元の RGB データをすべて保持したまま完全透明な、元と同じサイズの画像が実質的に作られる。

なお、廃止された +matte 操作は "-alpha Off" と同じでしたが、-matte 操作は "-alpha On" ではなく "-alpha Set" と同じでした。

-annotate degrees text

-annotate XdegreesxYdegrees text
-annotate XdegreesxYdegrees{+-}tx{+-}ty text
-annotate {+-}tx{+-}ty text

画像にテキストで注釈を付けます。

これは画像にテキストで注釈を付けるための簡便な手段です。テキスト注釈をより精密に制御するには -draw を使います。

Xdegrees と Ydegrees はテキストに適用されるせん断を制御し、tx と ty は -gravity 設定に対するテキストの位置を与えるオフセットで、既定は画像の左上隅です。

-annotate degrees または -annotate degreesxdegrees を使うと、せん断のないテキスト回転になります。回転方向は正で、degrees が正なら時計回りを意味します。(画像では正の y 方向が慣例的に下向きと見なされることを踏まえれば、通常の数学的慣例に従います。)

画像の位置 (x, y) にあるピクセルの新しい(変換後の)座標 (x', y') は、次の行列方程式で計算されます。

annotate transformation

tx と ty を省略すると既定値は 0 です。これによりテキストの左下が画像の左上隅になりますが、これはおそらく望ましくありません。この場合 -gravity オプションを加えると良い結果になります。

text は任意の UTF-8 エンコード文字列です。text が '@mytext.txt' の形式なら、テキストはファイル mytext.txt から読み込まれます。ファイル内のテキストはそのまま扱われ、埋め込みフォーマット文字は認識されません。

-antialias

フォントや線を描画する際のアンチエイリアスピクセルのレンダリングを有効/無効にします。

既定では、オブジェクト(テキスト、線、多角形など)は描画時にアンチエイリアス処理されます。+antialias を使うとアンチエイリアスのエッジピクセルの追加を無効にできます。これにより画像に追加される色が、直接描画される色だけに減ります。つまり、こうしたオブジェクトの描画時に中間色が追加されなくなります。

-append

現在の画像を垂直または水平に結合します。

このオプションは、現在のすべての画像を上から下へ順に結合し、1 つの長い画像を作成します。左から右へ重ねるには +append を使います。

幅が同じでない場合、狭い画像は現在の -background 色設定でパディングされ、相対位置は現在の -gravity 設定で制御できます。

画像間に空白を追加する機能など、より柔軟なオプションには -smush を使います。

-attenuate value

画像にノイズを加える際の強さを減らす(または強める)。

未設定の場合、値は 1.0(最大のノイズ追加)に相当します。

-authenticate password

PDF をパスワードで復号します。

Microsoft Crypto API (MSC API) で暗号化された PDF を復号するためのパスワードを供給するにはこのオプションを使います。MSC API を使った暗号化はサポートされません。

別の暗号化方式については -encipher と -decipher を参照してください。

-auto-gamma

画像のガンマレベルを自動調整します。

画像の平均値を計算し、画像の平均色が 50% の値になるよう計算された -gamma 調整を適用します。

つまり、どんな単色の「グレー」画像も 50% グレーになります。

極端な暗部・明部がほとんどない実写画像ではうまく機能しますが、明るい空や暗い影が大半を占める画像では失敗しがちです。図やアニメ調の画像でもうまく機能しません。

どの色値を使い変更するかは -channel 設定(チャンネル同期の 'sync' フラグを含む)で決まります。既定の -channel 設定は 'RGB,sync' なので、チャンネルは同じガンマ値で一緒に変更され、色が保たれます。

-auto-level

画像のカラーレベルを自動調整します。

これは「完璧な」画像正規化演算子です。画像内の正確な最小・最大色値を見つけ、-level 演算子を適用して値を全範囲に引き伸ばします。

単一の「外れ値」ピクセルが -level 操作に悪い最小・最大値を設定しうるため、この演算子は通常、実写画像・スキャン画像・JPEG 形式の画像には使いません。一方、カラールックアップテーブルや歪みマップなど「数学的に」定義された画像を生成するためのグラデーション画像のカラー引き伸ばしには適切な演算子です。

この演算子は -normalize、-contrast-stretch、-linear-stretch によく似ていますが、それらが持ちうる「ヒストグラムのビニング」や「クリッピング」の問題がありません。つまり -auto-level はこれらの演算子の完璧・理想版です。

どの色値を使い変更するかは -channel 設定(チャンネル同期の特別な 'sync' フラグを含む)で決まります。既定の +channel 設定は 'RGB,sync' なので、'sync' によりカラーチャンネルが同じガンマ値で一緒に変更され、色が保たれ、透明度は無視されます。

-auto-orient

画像を、表示に適した向き(左上基準の向き)になるよう調整します。

この演算子は EXIF 画像プロファイルの 'Orientation' 設定を読み取ってリセットし、正しく表示できるよう画像に適切な 90 度回転を行います。

この EXIF プロファイル設定は通常、デジタルカメラの重力センサーで設定されますが、真下や真上に向けて撮った写真では適切な値にならないことがあります。また、この設定をリセットせずに向きを「補正」した画像は、再び「補正」されて誤った結果になることがあります。EXIF プロファイルが以前に除去されている場合、-auto-orient は何もしません。

-auto-threshold method

画像のしきい値処理を自動的に行います。

有効なメソッドは次のとおりです:

Undefined
0: メソッド未指定('OTSU' と同等)。
Kapur
最大エントロピーしきい値処理。
OTSU
クラスタベースの画像しきい値処理。
Triangle
幾何学的なしきい値処理メソッド。

計算されたしきい値は auto-threshold:verbose 画像プロパティとして返されます。代わりにデバイスへ出力するには -define auto-threshold:verbose=true を使います。

-average

画像のセットを平均します。

画像が同一サイズでない場合はエラーになります。

-backdrop

画像を背景(バックドロップ)の中央に表示します。

このバックドロップはワークステーション画面全体を覆い、画像の閲覧中に他の X ウィンドウの動きを隠すのに便利です。バックドロップの色は背景色として指定します。色は -fill オプションで説明される形式で指定します。

-background color

背景色を設定します。

色は -fill オプションで説明される形式で指定します。既定の背景色(指定されず画像にも見つからない場合)は白です。

-bench iterations

性能を測定します。

コマンド全体を指定した回数だけ繰り返し、ユーザー時間と経過時間を報告します。たとえば次のコマンドとその出力を考えます。ベンチマークを固定秒数実行するには -duration を、並列実行するには -concurrent を使って変更します(OpenMP 機能が必要)。

$ magick logo: -resize 200% -bench 5 logo.png
Performance[1]: 5i 1.344ips 1.000e 3.710u 0:03.720
Performance[2]: 5i 1.634ips 0.549e 3.890u 0:03.060
Performance[3]: 5i 2.174ips 0.618e 3.190u 0:02.300
Performance[4]: 5i 1.678ips 0.555e 3.810u 0:02.980
Performance[4]: 5i 0.875657ips 6.880u 0:05.710

この例では、3 スレッドとユーザー割り当て時間 3.190 秒を使い、毎秒 2.174 回で 5 回の反復が完了し、合計経過時間は 2.300 秒でした。

-bias value{%}

画像を畳み込む際にバイアスを加えます。

このオプションは -convolve の出力をシフトし、正・負の結果が指定したバイアス値を基準とするようにします。

これは、正だけでなく負の値も含む畳み込みを扱う際、非 HDRI ビルドの ImageMagick で重要です。特にハイパスフィルタやエッジ検出を伴う畳み込みで当てはまります。出力バイアスがないと、負の値は 0 でクリップされます。

HDRI コンパイル時設定の ImageMagick を使う場合、ImageMagick は色値範囲(0..QuantumRange)にクリップせず負の結果を格納・処理できるため、-bias は不要です。

ImageMagick の HDRI 実装に関する議論は HDR 画像 のページを参照してください。HDRI の詳細は ImageMagick の Usage ページや Wikipedia の項目を参照してください。

-bilateral-blur width{xheight}{+intensity-sigma}{+spatial-sigma}

画像向けの、非線形・エッジ保持・ノイズ低減の平滑化フィルタです。各ピクセルの強度を、近傍ピクセルの強度値の加重平均で置き換えます。この重みはガウス分布に基づきます。重みはピクセルのユークリッド距離だけでなく、放射量的な差(色強度や深度距離などの範囲の差)にも依存します。これにより鋭いエッジが保たれます。

intensity sigma は強度空間にあります。値が大きいほど、ピクセル近傍内(spatial-sigma 参照)のより離れた色が混ざり合い、ほぼ同色の領域が大きくなります。

spatial sigma は座標空間にあります。値が大きいほど、色が十分に近い限り(intensity-sigma 参照)より離れたピクセルが互いに影響します。近傍直径が 0 より大きい場合、spatial-sigma に関わらず近傍サイズを指定します。そうでなければ、近傍直径は spatial-sigma に比例します。

intensity と spatial の sigma の既定値はそれぞれ 0.75直径 と 0.25直径 です。

-black-point-compensation

黒点補正を使います。

-black-threshold value{%}

しきい値未満のすべてのピクセルを黒にし、しきい値以上のすべてのピクセルはそのままにします。

しきい値は、パーセンテージ、または目的のチャンネル値に対応する [0, QuantumRange] 内の絶対整数値で指定できます。しきい値と結果の値の詳細は -threshold を参照してください。

-blend geometry

指定した絶対値またはパーセントで、ある画像を別の画像にブレンドします。

ブレンドは、指定したパーセンテージと各ピクセルの透明度に従って画像を平均('plus')します。単一のパーセンテージ値だけを指定すると、合成('source')画像の重みを設定し、背景画像はちょうど反対の量で重み付けされます。つまり -blend 30% は 'source' 画像の 30% を 'destination' 画像の 70% とマージします。したがって -blend 30x70% と同等です。

-blue-primary x,y

青の色度原色点を設定します。

-blue-shift factor

月明かりの夜のシーンを模倣します。factor 1.5 から始めてください。

-blur radius

-blur radius{xsigma}

画像ノイズと細部レベルを低減します。

指定した Sigma 値を使い、画像をガウス分布(正規分布)で畳み込みます。式は次のとおりです:

gaussian distribution

sigma 値が重要な引数で、実際にどの程度ぼかすかを決めます。

radius は、計算されたガウス分布を保持する配列のサイズを決めるためにのみ使われます。整数であるべきです。指定しないか 0 に設定すると、IM はガウス分布に意味のある結果を与える最大の radius を計算します。

Radius が大きいほど処理は遅くなります。ただし Radius が小さすぎると、深刻なエイリアシング効果が生じることがあります。目安として、Radius は Sigma 値の少なくとも 2 倍にすべきですが、3 倍にするとより正確な結果になります。

このオプションは、分布の可分性を利用する点だけが -gaussian-blur と異なります。ここでは水平方向に 1 次元ガウス行列を適用し、続いて垂直方向に同じ処理を繰り返します。

画像本体の外側にあるピクセルが最終結果にどうぼかされるかは、-virtual-pixel 設定で決まります。

-border geometry

画像を色付きの枠で囲みます。

幅と高さはジオメトリ引数の size 部分で設定します。geometry 引数の詳細は 画像ジオメトリ を参照してください。オフセットは無視されます。

IM 6.7.8-8 以降、ジオメトリ引数は次のように動作します:

value
value が左右と上下の両方に追加される
value-xx
value-x が左右にのみ追加され、上下は変わらない
xvalue-y
value-y が上下にのみ追加され、左右は変わらない
value-xxvalue-y
value-x が左右に、value-y が上下に追加される
value-xx0
value-x が左右にのみ追加され、上下は変わらない
0xvalue-y
value-y が上下にのみ追加され、左右は変わらない
value%
幅の value % が左右に、高さの value % が上下に追加される
value-xx%
幅の value-x % が左右と上下に追加される
xvalue-y%
高さの value-y % が上下と左右に追加される
value-x%xvalue-y%
幅の value-x % が左右に、高さの value-y % が上下に追加される
value-x%x0%
幅の value-x % が左右にのみ追加され、上下は変わらない
0%xvalue-y%
高さの value-y % が上下にのみ追加され、左右は変わらない

枠色は -bordercolor 設定を前に置いて設定します。

-border 操作は現在の -compose 設定の影響を受け、既定の 'Over' 合成方式を使うことを前提とします。現在の -bordercolor で適切なサイズの画像を生成し、その中央に元画像を重ねます。つまり既定の 'Over' 合成方式では、透明部分が現在の -bordercolor 設定で置き換わることがあります。

より多機能な -frame オプションも参照してください。

-bordercolor color

枠色を設定します。

色は -fill オプションで説明される形式で指定します。

既定の枠色は #DFDFDF(このグレーの濃淡)です。

-borderwidth geometry

枠の幅を設定します。

-brightness-contrast brightness

-brightness-contrast brightness{xcontrast}{%}

画像の明るさやコントラストを調整します。

明るさとコントラストの値は入力画像に変化を適用します。絶対的な設定ではありません。明るさやコントラストの値 0 は変化なしを意味します。値の範囲はそれぞれ -100〜+100 です。正の値は明るさ・コントラストを上げ、負の値は下げます。コントラストのみを制御するには brightness=0 に、明るさのみを制御するには contrast=0 にするか省略します。

-channel を使って、明るさ・コントラスト変化を適用するチャンネルを制御することもできます。既定は全チャンネルに同じ変換を適用します。

明るさとコントラストの引数は線形変換のオフセットと傾きに変換され、-function polynomial "slope,offset" で適用されます。

傾きは contrast=-100 での 0 から contrast=+100 でのほぼ垂直まで変化します。brightness=0 かつ contrast=-100 では結果は完全な中間グレーになります。brightness=0 かつ contrast=+100 では、結果は中間グレーでのしきい値に近づきますが完全には達しません。つまり線形変換は中間グレーで非常に急な垂直線になります。

負の傾き、すなわち画像の反転は、この関数ではできません。達成可能な傾きはすべて 0 か正です。

オフセットは brightness=-100 での -0.5 から、brightness=0 での 0、brightness=+100 での +0.5 まで変化します。したがって contrast=0 かつ brightness=100 では結果は完全な白に、contrast=0 かつ brightness=-100 では完全な黒になります。

引数の値の範囲は -100〜+100 なので、'%' 記号を付けても付けなくても違いはありません。

-cache threshold

(このオプションは -limit オプションに置き換えられました)。

-canny radius

-canny radius{xsigma}{+lower-percent}{+upper-percent}

Canny エッジ検出器は、多段階アルゴリズムを使って画像中の広範なエッジを検出します。

しきい値は 0〜100% の範囲(例: -canny 0x1+10%+30%)で、{+lower-percent} < {+upper-percent} です。{+lower-percent} はそのままで {+upper-percent} を上げると、検出されるエッジ成分は少なくなりますが、長さは同じです。{+upper-percent} はそのままで {+lower-percent} を上げると、検出されるエッジ成分の数は同じですが、長さは短くなります。既定のしきい値が表示されています。

radius{xsigma} は、ノイズを減らしエッジを滑らかにするため入力画像に適用されるガウスブラーを制御します。

sigma 値が重要な引数で、実際にどの程度ぼかすかを決めます。

radius は、計算されたガウス分布を保持する配列のサイズを決めるためにのみ使われます。整数であるべきです。指定しないか 0 に設定すると、IM はガウス分布に意味のある結果を与える最大の radius を計算します。

-caption string

画像にキャプションを割り当てます。

このオプションは、このオプションが与えられた後に読み込まれる画像のキャプションメタデータを設定します。すでにメモリ内にある画像のキャプションを変更するには "-set caption" を使います。

キャプションには 画像プロパティの整形と表示 に挙げられた特殊フォーマット文字を含められます。これらの属性は、キャプションが最終的に個々の画像に割り当てられる際に展開されます。

string の最初の文字が @ の場合、画像キャプションは残りの文字を名前とするファイルから読み込まれます。ファイルから読み込まれるコメントはそのまま扱われ、埋め込みフォーマット文字は認識されません。

キャプションメタデータは画像自体には表示されません。それを行うには代わりに -annotate や -draw オプションを使います。

たとえば、

-caption "%m:%f %wx%h"  bird.miff

は MIFF:bird.miff 512x480 という画像キャプションを生成します(画像 bird.miff の幅が 512、高さが 480 と仮定)。

-cdl filename

カラーディシジョンリストで色補正します。

色補正コレクションの例を示します:

<?xml version="1.0" encoding="UTF-8"?>
<ColorCorrectionCollection xmlns="urn:ASC:CDL:v1.2">
  <ColorCorrection id="cc06668">
    <SOPNode>
      <Slope> 0.9 1.2 0.5 </Slope>
      <Offset> 0.4 -0.5 0.6 </Offset>
      <Power> 1.0 0.8 1.5 </Power>
    </SOPNode>
    <SATNode>
      <Saturation> 0.85 </Saturation>
    </SATNode>
  </ColorCorrection>
</ColorCorrectionCollection>

-channel type

後続の演算子が作用する対象を、指定した画像カラーチャンネルに限定します。

次から選びます: Red, Green, Blue, Alpha, Gray, Cyan, Magenta, Yellow, Black, Opacity, Index, RGB, RGBA, CMYK, CMYKA。

上記チャンネルは、カンマ区切りリストでも、'R', 'G', 'B', 'A', 'O', 'C', 'M', 'Y', 'K' の文字を連結した略記でも指定できます。

チャンネルの指定には数字 0〜31 も使えます。0〜5 は次のとおりです:

'0' は Red または Cyan
'1' は Green または Magenta
'2' は Blue または Yellow
'3' は Black
'4' は Alpha または Opacity
'5' は Index

たとえば、Red と Blue チャンネルだけを選ぶには、次のいずれも使えます:

-channel Red,Blue
-channel R,B
-channel RB
-channel 0,2

画像に存在するすべてのチャンネルは、特殊なチャンネルタイプ All で指定できます。すべての演算子が「チャンネル対応」ではありませんが、一般に「グレースケール」画像演算子であればこの設定を理解します。各演算子のドキュメントを参照してください。

通常のチャンネル選択に加えて、追加フラグ 'Sync' を指定できます。これは既定で有効で、設定されていると、このフラグを理解する演算子はチャンネルのクロスチャンネル同期を行うべきことを意味します。指定しない場合、ほとんどのグレースケール演算子は、(-channel 設定の残りで指定された)各チャンネルに対し、完全に独立して画像処理を適用します。

たとえば -auto-level や -auto-gamma などの演算子では、カラーチャンネルがまったく同じように一緒に変更され、色が同期されます。設定されていないと、各チャンネルが別々に独立して変更され、色の歪みが生じることがあります。

-morphology の 'Convolve' メソッドや -compose の数学的メソッドも、(存在すれば)アルファチャンネルに応じてピクセル色の挙動を変えるために 'Sync' フラグを理解します。つまり、完全透明の色は最終結果に寄与すべきでないという理解のもとで画像処理を行います。

基本的に、既定では演算子はカラーチャンネルを同期的に扱い、透明度を特別に扱います。ただし -channel 設定が 'Sync' フラグの効果を取り除くよう変更された場合は除きます。各演算子がこれをどう行うかは、その演算子の現在の実装によります。現時点ではすべての演算子がこのフラグを理解するわけではありませんが、状況は変わりつつあります。

チャンネルタイプの完全な一覧を表示するには -list channel を使います。

既定では、ImageMagick は -channel を 'RGBK,sync' に設定します。これは、演算子が透明度チャンネルを除くすべてのカラーチャンネルに作用し、すべてのカラーチャンネルが(適用される操作に応じて)透明度を理解したうえでまったく同じように変更されることを指定します。'plus' 形式の +channel はこの既定値にリセットします。

-channel 設定の影響を受けるオプションには次が含まれます。-auto-gamma, -auto-level, -black-threshold, -blur, -clamp, -clut, -combine, -composite(数学的合成メソッドのみ), -convolve, -contrast-stretch, -evaluate, -function, -fx, -gaussian-blur, -hald-clut, -motion-blur, -morphology, -negate, -normalize, -ordered-dither, -rotational-blur, -random-threshold, -range-threshold, -separate, -threshold, -white-threshold。

警告: 一部の演算子は、+channel の既定設定が有効なときと、(既定と同等のものを含む)ユーザー定義の -channel 設定があるときとで挙動が異なります。これらの演算子はまだ新しい 'Sync' フラグを理解するようになっていません。

たとえば -threshold は、-channel 設定が定義されていない場合、既定でしきい値処理の前に画像をグレースケール化します。これはまだ 'Sync' フラグでは制御されません。

また -blur や -gaussian-blur などの一部の演算子は、-channel で 'alpha' チャンネルも有効にされると、カラーチャンネルの扱いを変えます。一般にこれは、完全透明の色を完全透明として扱い、その下に「隠れた」色が最終結果に影響しないようにするためで、通常「ハロー」効果を生みます。ただし新しい -morphology 畳み込みの相当物は 'Sync' フラグを理解するため、既定で透明度を正しく扱います。

アルファチャンネルは画像内で任意なので、画像にアルファチャンネルがなく、-channel 設定が演算子にアルファチャンネルを使って操作を適用するよう指示している場合、一部の演算子は画像のカラーチャンネルをグレースケールのアルファマスクとして読みます。-clut 演算子はその好例です。

-channel-fx expression

1 つ以上の画像チャンネルを交換・抽出・コピーします。

式は、1 つ以上のチャンネル(ニーモニックまたは数値。例: red または 0、green または 1 など)を、次の特定の操作記号で区切って構成されます:

<=>  2 つのチャンネルを交換する: red<=>blue
=>   あるチャンネルを別のチャンネルにコピーする: red=>green
=    チャンネルに定数値を代入する: red=50%
,    指定した順序のチャンネルで新しい画像を書き出す: red, green
;    次のチャンネル操作セット用に新しい出力画像を追加する: red; green; blue
|    チャンネルデータのソースとして次の入力画像へ移る: | gray=>alpha

たとえば、画像の赤・緑・青チャンネルから 3 つのグレースケール画像を作るには:

-channel-fx "red; green; blue"

操作記号のないチャンネルは separate(つまりセミコロン)を意味します。

ここでは、sRGB 画像とグレースケール画像を取り、グレースケール画像をアルファチャンネルに注入します:

magick wizard.png mask.pgm -channel-fx '| gray=>alpha' wizard-alpha.png

read マスクを定義するには同様のコマンドを使います:

magick wizard.png mask.pgm -channel-fx '| gray=>read-mask' wizard-mask.png

この例では、画像のすべての不透明ピクセルの平均 RGB 値を計算します:

magick wizard-alpha.png -channel-fx "alpha=>read-mask" -channel rgb -format "%[fx:mean]\n" info:

2 つのメタチャンネルを作成し、グレーピクセルのコピーで埋めてみましょう:

magick gray.pgm -channel-fx "gray=>meta, gray=>meta1" gray.tif

結果を TIFF 画像ファイルに保存している点に注意してください。すべての形式がマルチスペクトル画像をサポートするわけではありません。TIFF、MIFF、MPC、FTXT は対応しています。

チャンネルのモルフォロジーを追跡するには、-channel-fx オプションの前に -debug pixel を追加します。

-charcoal factor

木炭画を模倣します。

-chop geometry

画像の内部からピクセルを除去します。

geometry 引数の詳細は 画像ジオメトリ を参照してください。ジオメトリ引数の size 部分で与えた幅と高さが、除去する列数と行数になります。ジオメトリ引数の offset 部分は、-gravity 設定があればその影響を受けます。

-chop は行と列を丸ごと除去し、残った隅のブロックを左・上へ移動して隙間を詰めます。

内部の行や列のピクセルを除去できますが、より一般的には -gravity 設定とゼロオフセットと組み合わせて画像の片側を除去するのに使います。これを、画像の対辺から同数のピクセルを除去する -shave と比べてください。

-chop を使うと、同じジオメトリと -gravity 設定で与えた -splice の結果を実質的に取り消せます。

-clahe widthxheight{%}{+}number-bins{+}clip-limit{!}

コントラスト制限付き適応ヒストグラム平坦化。

画像は width×height ピクセルのタイルに分割されます。% を付けると幅と高さを画像寸法のパーセンテージとして定義します。タイルサイズは保持したい特徴のサイズより大きくすべきで、画像のアスペクト比を尊重します。! を付けると正確なタイル幅・高さを強制します。number-bins はタイルあたりのヒストグラムビン数です(最小 2、最大 65536)。ヒストグラムビン数は単一タイル内のピクセル数より小さくすべきです。clip-limit は局所的なコントラスト変化のコントラスト制限です。2〜3 の clip-limit から始めるとよいでしょう(例: -clahe 50x50%+128+3)。非常に大きい値はヒストグラム平坦化を自由に行わせ、局所コントラストが最大になります。値 1 は元画像になります。なお、ビン数と clip-limit を省略すると、既定はそれぞれ 128 とクリッピングなしになります。

-clamp

値が 0 未満のピクセルを 0 に、量子化範囲を超えるピクセルをその範囲(例: 65535)に設定します。それ以外のピクセル値はそのままです。

-clip

クリッピングパスがあれば適用します。

クリッピングパスが存在する場合、後続の操作に適用されます。

たとえば、次のコマンドでは

magick cockatoo.tif -clip -negate negated.tif

クリッピングパス内のピクセルのみが反転されます。

-clip 機能には SVG サポートが必要です。SVG デリゲートライブラリがない場合、このオプションは無視されます。

後続の操作でクリッピングを無効にするには +clip を使います。

-clip-mask

このマスクで定義されるとおりに画像をクリップします。

現在の画像のアルファチャンネルをマスクとして使います。白い領域は、マスクが取り除かれるまで、後続の「画像処理演算子」によって変更されません。クリップマスクの黒い領域のピクセルは、演算子の要件に従って変更されます。

ある意味でこれは、矩形の -region を定義するのや、3 画像の -composite 操作でマスク(3 番目の)画像の反転を使うのに似ています(同じではありません)。

後続の操作でクリッピングを無効にするには +clip-mask を使います。

-clip-path id

8BIM プロファイルの名前付きパスに沿ってクリップします。

これは -clip と同じですが、画像が複数のパスを持つ場合に特定のクリップパスを選びます。ImageMagick は UTF-8 エンコーディングをサポートします。名前付きパスが別のエンコーディングの場合は iconv でクリップパス名をそのエンコーディングに変換してください。さもないとパス名が一致しません。

後続の操作でクリッピングを無効にするには +clip-path を使います。

-clone index(s)

画像(複数可)のクローンを作ります。

括弧内(この演算子が通常使われる場所)では、最後に「push された」画像シーケンスの画像のクローンを作り、現在の画像シーケンスの末尾に追加します。括弧の外で使うとエラーになります。

画像はシーケンス内のインデックスで指定します。最初の画像はインデックス 0 です。負のインデックスはシーケンスの末尾からの相対です。たとえば −1 はシーケンスの最後の画像を表します。画像の範囲はダッシュで指定します(例: 0−4)。複数のインデックスはスペースなしのカンマで区切ります(例: 0,2,5)。'0−−1' は実質的にすべての画像をクローンします。

+clone は単に画像シーケンスの最後の画像のコピーを作るので、引数 '−1' を使うのと同等です。

-clut

2 番目の画像の各対応チャンネルを カラールックアップテーブル(CLUT) として使い、最初の画像のチャンネル値を置き換えます。

2 番目(LUT)の画像は通常、各チャンネルをどう変更すべきかのヒストグラムマッピングを含むグラデーション画像です。多くは置換色値の単一行または単一列の画像です。単一行・列より大きい場合、値は左上から右下への対角線から取られます。

ルックアップはさらに -interpolate 設定で制御されます。これは、インストールされた ImageMagick の品質(Q)レベルが必要とする全長に満たない LUT で特に便利です。これに適した設定は 'bilinear' と 'catrom' です。catrom は有用な 2 次連続性を返せます。

この演算子は、グレースケール画像を CLUT 画像の特定のカラーグラデーションで置き換えるのに特に適しています。

-channel 設定で定義されたチャンネル値のみが置き換えられます。特に既定の -channel 設定は RGBA なので、-channel 設定を(例: RGB に)変更しない限り、透明度(アルファ/マットチャンネル)が影響を受けます。アルファチャンネルが設定されていない場合、-clut 演算子はそれを無視します。

変更される画像かルックアップ画像のいずれかが透明度を含まず(-alpha が 'off')、-channel 設定がアルファ置換を含む場合、その画像は置換アルファ値に使われるグレースケールグラデーションを表すと仮定されます。つまり、グレースケール CLUT 画像で既存画像のアルファチャンネルを調整したり、透明度を含む CLUT の色でグレースケール画像を着色したりできます。

3D カラーキューブの 2D 表現からフルカラー RGB 値をルックアップして色を置き換える -hald-clut も参照してください。

-coalesce

GIF アニメーションシーケンスの各フレームの見た目を完全に定義し、「フィルムストリップ」アニメーションを形成します。

画像シーケンスの各画像を -dispose メタデータに従って重ね合わせ、アニメーションシーケンスの各時点での見た目を再現します。すべての画像は同じサイズであるべきで、GIF アニメーションとして期待どおり動作し続けるよう適切な GIF 破棄設定が割り当てられます。こうしたフレームは、高度に最適化された GIF 重ね合わせ画像より、閲覧・処理が容易です。

処理後、-layers の 'optimize' メソッドでアニメーションを再最適化できます。ただし、復元された GIF アニメーションの最適化が元より良い保証はありません。

-colorize value

直近の -fill 設定で指定された色を使い、value で指定された量だけ画像を着色します。

着色量はパーセンテージで指定します。カンマ区切りの着色値リストで、画像の赤・緑・青チャンネルに個別の着色値を適用できます(例: -colorize 0,0,50)。

-colormap type

カラーマップのタイプを定義します。

タイプは shared または private です。

このオプションは、既定の X サーバービジュアルが PseudoColor または GrayScale の場合にのみ適用されます。詳細は -visual を参照してください。既定では共有カラーマップが割り当てられます。画像は他の X クライアントと色を共有します。一部の画像色が近似されることがあるため、画像が意図と大きく異なって見えることがあります。private を選ぶと画像色は定義どおり正確に表示されますが、画像カラーマップがインストールされると他のクライアントが極彩色になることがあります。

-colors value

画像で使う色数の指定を設定します。

画像の実際の色数は要求より少なくなることはあっても、多くなることはありません。これは減色オプションである点に注意してください。value で指定された数より少ないユニーク色を持つ画像は、重複色や未使用色が除去されます。既存のカラーパレットの順序が変わることがあります。カラー画像をグレースケールに変換する場合、色数を減らす前にグレー色空間へ変換する方が効率的です。詳細は 減色アルゴリズム を参照してください。

-color-matrix matrix

画像に色補正を適用します。

このオプションは、彩度の変更、色相回転、輝度からアルファへの変換、その他さまざまな効果を可能にします。可変サイズの変換行列を使えますが、通常は RGBA 画像に 5x5、CMYKA(またはオフセット付き RGBA)に 6x6 の行列を使います。この行列は Adobe Flash で使われるものに似ていますが、ImageMagick のオフセットは(CMYKA 画像に対応するため)5 列目ではなく 6 列目にあり、正規化されています(Flash のオフセットを 255 で割る)。

例として、オフセット付きで画像にコントラストを加えるには、次のコマンドを試してください:

magick kittens.jpg -color-matrix \
  " 1.5 0.0 0.0 0.0, 0.0, -0.157 \
    0.0 1.5 0.0 0.0, 0.0, -0.157 \
    0.0 0.0 1.5 0.0, 0.0, -0.157 \
    0.0 0.0 0.0 1.0, 0.0,  0.0 \
    0.0 0.0 0.0 0.0, 1.0,  0.0 \
    0.0 0.0 0.0 0.0, 0.0,  1.0" kittens.png

-colorspace value

画像の色空間を設定します。

選択肢は次のとおりです:

Adobe98 CIELab DisplayP3 HSL
CAT02LMS CMY CMYK Gray
HCL HCLp HSB HSI
HSV HWB Jzazbz Lab
LCH LCHab LCHuv LinearGray
LMS Log Luv OHTA
Oklab Oklch ProPhoto Rec601YCbCr
Rec709YCbCr RGB scRGB sRGB
Transparent xyY XYZ YCbCr
YDbDr YCC YIQ YPbPr
YUV

色空間の完全な一覧を表示するには -list colorspace を使います。

線形 RGB・CMYK・グレースケール色空間との間でより正確に色変換するには、-profile オプションを使います。なお、画像形式が別途示さない限り、ImageMagick は sRGB 色空間を仮定します。色空間変換では、まずガンマ関数を取り除いて線形 RGB を生成します。

RGB から他の色空間への変換 CMY

C=QuantumRange−R
M=QuantumRange−G
Y=QuantumRange−B
CMYK — starts with CMY from above
K=min(C,Y,M)
C=QuantumRange(C−K)/(QuantumRange−K)
M=QuantumRange
(M−K)/(QuantumRange−K)
Y=QuantumRange(Y−K)/(QuantumRange−K)
Gray
Gray = 0.212656
R+0.715158G+0.072186B
HSB — Hue, Saturation, Brightness; like a cone peak downward
H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green
S=distance from axis outward
B=distance along axis from bottom upward; B=max(R,G,B); intensity-like
HSL — Hue, Saturation, Lightness; like a double cone end-to-end with peaks at very top and bottom
H=angle around perimeter (0 to 360 deg); H=0 is red; increasing angles toward green
S=distance from axis outward
L=distance along axis from bottom upward; L=0.5max(R,G,B) + 0.5min(R,G,B); intensity-like
HWB — Hue, Whiteness, Blackness
Hue (complicated equation)
Whiteness (complicated equation)
Blackness (complicated equation)
LAB
L (complicated equation relating X,Y,Z)
A (complicated equation relating X,Y,Z)
B (complicated equation relating X,Y,Z)
LinearGray
LinearGray = 0.298839R+0.586811G+0.114350B
LOG
I1 (complicated equation involving logarithm of R)
I2 (complicated equation involving logarithm of G)
I3 (complicated equation involving logarithm of B)
OHTA — approximates principal components transformation
I1=0.33333
R+0.33334G+0.33333B; intensity-like
I2=(0.50000R+0.00000G−0.50000B)(QuantumRange+1)/2
I3=(−0.25000R+0.50000G−0.25000B)(QuantumRange+1)/2
Rec601Luma
Gray = 0.298839R+0.586811G+0.114350B
Rec601YCbCr
Y=0.2988390
R+0.5868110G+0.1143500B; intensity-like
Cb=(−0.168736R-0.331264G+0.500000B)(QuantumRange+1)/2
Cr=(0.500000R−0.418688G−0.081312B)(QuantumRange+1)/2
Rec709Luma
Gray=0.212656R+0.715158G+0.072186B
Rec709YCbCr
Y=0.212656
R+0.715158G+0.072186B; intensity-like
Cb=(−0.114572R−0.385428G+0.500000B)+(QuantumRange+1)/2
Cr=(0.500000
R−0.454153G−0.045847B)+(QuantumRange+1)/2
sRGB
if R ≤ .0.0031308 then Rs=R/12.92 else Rs=1.055 R ^ (1.0 / 2.4) - 0.055
if G ≤ .0.0031308 then Gs=B/12.92 else Gs=1.055 R ^ (1.0 / 2.4) - 0.055
if B ≤ .0.0031308 then Bs=B/12.92 else Bs=1.055 R ^ (1.0 / 2.4) - 0.055
XYZ
X=0.4124564R+0.3575761G+0.1804375B
Y=0.2126729
R+0.7151522G+0.0721750B
Z=0.0193339R+0.1191920G+0.9503041B
YCC
Y=(0.298839
R+0.586811G+0.114350B) (with complicated scaling); intensity-like
C1=(−0.298839R−0.586811G+0.88600B) (with complicated scaling)
C2=(0.70100
R−0.586811G−0.114350B) (with complicated scaling)
YCbCr
Y=0.2988390R+0.5868110G+0.1143500B; intensity-like
Cb=(−0.168736
R−0.331264G+0.500000B)(QuantumRange+1)/2
Cr=(0.500000
R−0.418688G−0.081312B)(QuantumRange+1)/2
YIQ
Y=0.298839
R+0.586811G+0.114350B; intensity-like
I=(0.59600R−0.27400G−0.32200B)(QuantumRange+1)/2
Q=(0.21100R−0.52300G+0.31200B)(QuantumRange+1)/2
YPbPr
Y=0.2988390R+0.5868110G+0.1143500B; intensity-like
Pb=(−0.168736
R−0.331264G+0.500000B)(QuantumRange+1)/2
Pr=(0.500000
R−0.418688G−0.081312B)(QuantumRange+1)/2
YUV
Y=0.298839
R+0.586811G+0.114350B; intensity-like
U=(−0.14740R−0.28950G+0.43690B)(QuantumRange+1)/2
V=(0.61500R−0.51500G−0.10000B)(QuantumRange+1)/2

なお、scRGB 色空間には HDRI サポートが必要で、なければ線形 RGB とまったく同じように動作します。

マルチスペクトル画像を識別するには Undefined 色空間を使います。

-color-threshold start-color-stop-color

指定範囲内のすべての色を白に、それ以外のすべての色を黒に変えた 2 値画像を返します。

-combine

+combine colorspace

1 つ以上の画像を 1 つの画像に結合します。

結合画像のチャンネル(事前に -channel で設定)は、シーケンス内の各画像のグレースケール値から順に取られます。既定の -channel 設定 RGB では、最初の画像が Red チャンネル、2 番目が Green、3 番目が Blue に割り当てられます。

チャンネル設定が同じである限り、このオプションは -separate の逆と考えられます。したがって次の例では、最終画像は元画像のコピーになるはずです。

magick original.png -channel RGB -separate sepimage.png
convert sepimage-0.png sepimage-1.png sepimage-2.png -channel RGB \
  -combine imagecopy.png

-comment string

画像にコメントを埋め込みます。

このオプションは、このオプションが与えられた後に読み込まれる画像のコメントメタデータを設定します。すでにメモリ内にある画像のコメントを変更するには "-set comment" を使います。

コメントには 画像プロパティの整形と表示 に挙げられた特殊フォーマット文字を含められます。これらの属性は、コメントが最終的に個々の画像に割り当てられる際に展開されます。

string の最初の文字が @ の場合、画像コメントは残りの文字を名前とするファイルから読み込まれます。ファイルから読み込まれるコメントはそのまま扱われ、埋め込みフォーマット文字は認識されません。

コメントメタデータは画像自体には表示されません。それを行うには代わりに -annotate や -draw オプションを使います。

たとえば、

-comment "%m:%f %wx%h"  bird.miff

は MIFF:bird.miff 512x480 という画像コメントを生成します(画像 bird.miff の幅が 512、高さが 480 と仮定)。

-compare

画像とその再構成結果との差分を、数学的かつ視覚的に注釈付けします。

これは同サイズの 2 画像に対する "compare" の convert 版です。構文は次のとおりですが、他の指標も使えます。

magick image.png reference.png -metric RMSE -compare \   
 difference.png

指標値を取得するには文字列形式 "%[distortion]" を使います。

magick image.png reference.png -metric RMSE -compare -format \
   "%[distortion]" info:

-complex operator

画像シーケンスに複素数演算を行います。

次の演算子から選びます:

add
conjugate
divide
magnitude-phase
multiply
real-imaginary
subtract

divide 演算子の SNR は -define complex:snr=float で任意に指定できます。

-compose operator

画像合成のタイプを設定します。

アルファ合成の詳しい議論は アルファ合成 を参照してください。

この設定は、2 つ(以上)の画像を何らかの形でマージする画像処理演算子に影響します。これには -compare, -composite, -layers composite, -flatten, -mosaic, -layers merge, -border, -frame, -extent の演算子が含まれます。

これは "composite" コマンドの主要オプションの 1 つでもあります。

-composite

2 つの画像と任意のマスクに対してアルファ合成を行います。

最初の画像('destination')を取り、2 番目の画像('source')を現在の -compose 設定に従って重ねます。'source'(重ね)画像の位置は -gravity と -geometry 設定で制御されます。

3 番目の画像が与えられると、最初の 'destination' 画像に対するグレースケールのブレンド 'mask' 画像として扱われます。このマスクはソース画像とブレンドされます。ただし 'displace' 合成メソッドでは、マスクは代わりに別の Y 変位画像を提供するために使われます。

-compose メソッドが追加の数値引数やフラグを必要とする場合、-set 'option:compose:args' をそのメソッド向けに適切に設定して提供できます。

一部の -compose メソッドは重ね領域の外側の 'destination' 画像も変更できます。これは既定で無効です。-define 'compose:clip-to-self=true' で有効にできます。

SVG 合成仕様では、色と不透明度の値は 0 から QuantumRange の範囲(両端を含む)であることが要求されます。この範囲外の値を許可するには -set 'option:compose:clamp=false' を使います。

-compress type

画像を書き出す際に type で指定したピクセル圧縮を使います。

選択肢は次のとおりです: None, BZip, Fax, Group4, JPEG, JPEG2000, Lossless, LZW, RLE, Zip。

圧縮タイプの完全な一覧を表示するには -list compress を使います。

非圧縮形式でバイナリ画像を格納するには +compress を指定します。既定は指定した画像ファイルの圧縮タイプです。

LZW 圧縮が指定されたが LZW 圧縮が有効化されていない場合、画像データは LZW デコーダが読める非圧縮 LZW 形式で書き出されます。これにより GIF ファイルが予想より大きくなることがあります。

Lossless は可逆 JPEG を指し、JPEG ライブラリがそれをサポートするようパッチされている場合にのみ利用可能です。可逆 JPEG の使用は一般に推奨されません。

ICO ファイルを書き出す際、Zip 圧縮を指定して画像を PNG 形式でエンコードするよう要求できます。

JNG ファイルを書き出す際、Zip 圧縮を指定するとアルファチャンネルを PNG "IDAT" 形式で、JPEG を指定すると JPG "JDAA" 形式でエンコードするよう要求します。

JPEG・PNG・MIFF・MPEG エンコーダが使う圧縮レベルを設定するには -quality オプションを使います。JPEG・MPEG・YUV エンコーダが彩度チャンネルのダウンサンプリングに使うサンプリング係数を設定するには -sampling-factor オプションを使います。

-connected-components connectivity

連結成分(connected-components) ラベリングは画像内の連結領域を検出します。4 連結か 8 連結を選びます。

各ユニークラベルに関連する統計を出力するには -define connected-components:verbose=true を使います。

-contrast

画像のコントラストを強める、または弱めます。

このオプションは、画像の明るい要素と暗い要素の強度差を強めます。画像を強調するには -contrast を、コントラストを弱めるには +contrast を使います。

より顕著な効果には、オプションを繰り返せます:

magick rose: -contrast -contrast rose_c2.png

-contrast-stretch black-point

-contrast-stretch black-point{xwhite-point}{%}

輝度値の範囲を引き伸ばして画像のコントラストを上げます。

引き伸ばしの際、最大で black-point 個のピクセルを黒に、最大で white-point 個のピクセルを白にします。パーセントを使う場合は、最大で black-point % のピクセルを黒に、最大で white-point % のピクセルを白にします。

ImageMagick 6.4.7-0 より前では、-contrast-stretch は最大で black-point 個のピクセルを黒に、最大で「総ピクセル数 − white-point」個のピクセルを白にしました。パーセントを使う場合は、最大で black-point % を黒に、最大で「100% − white-point %」を白にしました。

なお、-contrast-stretch 0 は、両端での焼き付きやクリッピングによるデータ損失なしに、画像の最小・最大値をそれぞれ 0 と QuantumRange に引き伸ばすよう画像を変更します。これは -normalize とは同じではありません。-normalize は -contrast-stretch 2%x1%(ImageMagick 6.4.7-0 より前では -contrast-stretch 2%x99%)と同等です。

内部的には、この演算子はヒストグラムビンを作り、それを使って画像を変更します。そのため、元々同じ「ビン」に入った色がマージされることがあります。

既定の +channel 設定が使われる場合、色の整合性を保つため、すべてのチャンネルが同じ量だけ協調して正規化されます。他の -channel 設定を指定すると、RGB チャンネルが独立して正規化されます。

数学的画像の「完璧な」正規化には -auto-level も参照してください。

この演算子は再開発のため見直し中です。

-convolve kernel

ユーザー提供の畳み込みカーネルで画像を畳み込みます。

カーネルは、上の行から左から右へ順に並べた、カンマ区切りの整数リスト(スペースなし)として指定する行列です。現在は奇数次元のカーネルのみ対応するため、指定カーネルのエントリ数は 3²=9、5²=25、7²=49 などでなければなりません。

-convolve 演算子は -bias 設定をサポートする点に注意してください。このオプションは畳み込みをシフトし、正・負の結果がユーザー指定のバイアス値を基準とするようにします。これは正だけでなく負の値も含む畳み込みを扱う際、非 HDRI ビルドの ImageMagick で重要です。特にハイパスフィルタやエッジ検出を伴う畳み込みで当てはまります。出力バイアスがないと、負の値は 0 でクリップされます。

HDRI コンパイル時設定の ImageMagick を使う場合、ImageMagick は色値範囲(0..QuantumRange)にクリップせず負の結果を格納・処理できるため、-bias は不要です。ImageMagick の HDRI 実装に関する議論は HDR 画像 のページを参照してください。HDRI の詳細は ImageMagick の Usage ページや Wikipedia の項目を参照してください。

-copy geometry offset

画像のある領域から別の領域へピクセルをコピーします。

-crop geometry{@}{!}

画像から 1 つ以上の矩形領域を切り出します。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

ジオメトリ引数の幅と高さは切り抜き後に残る画像のサイズを与え、オフセットの x と y(あれば)は元画像に対する切り抜き画像の左上隅の位置を与えます。除去する量を指定するには代わりに -shave を使います。

x・y オフセットがある場合、切り抜き領域のピクセルから成る単一の画像が生成されます。オフセットは、画像の左上隅を基準に下方向・右方向に測った切り抜き領域の左上隅の位置を指定します。-gravity オプションが NorthEast・East・SouthEast で存在する場合、画像の右端から切り抜き領域の右端までの左方向の距離を与えます。同様に SouthWest・South・SouthEast の場合、下端どうしの上方向の距離が測られます。

x・y オフセットが省略された場合、入力画像全体を覆う指定ジオメトリのタイル群が生成されます。指定ジオメトリが入力画像の寸法を超える場合、最右列と最下行のタイルは小さくなります。

ジオメトリ引数に @ を加えると、生成されるタイル数に画像を均等分割できます。

ジオメトリ引数に感嘆符フラグを加えると、切り抜き画像の仮想キャンバスのページサイズとオフセットが、ジオメトリ引数をビューポート(ウィンドウ)として設定したかのようになります。つまりキャンバスのページサイズが指定どおり正確に設定され、画像オフセットは切り抜き領域の左上隅を基準に設定されます。

切り抜き画像が仮想キャンバス上の実画像を「外した」場合、特別な 1 ピクセルの透明な「外し」画像が返され、'crop missed' 警告が出ます。

切り抜き座標フレームを可視画像の左上隅に再配置するため、切り抜き前に画像を +repage する必要があるかもしれません。同様に、切り抜き後に残るページオフセットを取り除くため、切り抜き後に +repage を使うとよいでしょう。これは、画像オフセットをサポートする PNG のような形式に書き出す場合に特に当てはまります。

-cycle amount

画像のカラーマップを amount だけずらします。

Amount は各カラーマップエントリがずれる位置の数を定義します。

-debug events

デバッグ出力を有効にします。

events パラメータは、どのイベントをログに記録するかを指定します。None、All、Trace、または次のドメインの 1 つ以上から成るカンマ区切りリストを指定できます: Accelerate, Annotate, Blob, Cache, Coder, Configure, Deprecate, Exception, Locale, Render, Resource, Security, TemporaryFile, Transform, X11, User。

たとえば、cache と blob のイベントをログに記録するには:

magick -debug "Cache,Blob" rose: rose.png

User ドメインは通常空ですが、開発者は自分用の ImageMagick でユーザーイベントをログに記録できます。

デバッグメソッドの完全な一覧を表示するには -list debug を使います。

デバッグ出力の書式を指定するには -log オプションを使います。

すべてのログを無効にするには +debug を使います。

デバッグは MAGICK_DEBUG 環境変数 でも設定できます。MAGICK_DEBUG 環境変数の許可される値は -debug オプションと同じです。

-decipher filename

-encipher で以前に変換されたピクセルを復号して復元します。

パスフレーズは filename で指定したファイルから取得します。

詳細は ImageMagick: 画像の暗号化・復号 のページを参照してください。

-deconstruct

画像間で変化した領域を見つけます。

-coalesce で生成されたような、すべて同じサイズの画像シーケンスを与えると、2 番目以降の画像を、前の画像に対して変化した領域だけの小さな画像に置き換えます。

得られる画像シーケンスはアニメーションシーケンスの最適化に使えますが、アニメーションの一部が不透明から透明になりうる GIF アニメーションでは正しく機能しません。

このオプションは実際には -layers の 'compare-any' メソッドと同等です。

-define key{=value}...

コーダーや画像処理操作の制御に一般的に使われる、特定のグローバル設定を追加します。

このオプションは、画像データの読み書き中にコーダー/デコーダが使う 1 つ以上の定義を作成します。定義は一般に、画像ファイル形式のコーダーモジュールや画像処理操作を、通常の手段で提供される以上に制御するために使われます。定義された設定は、-verbose 情報("info:" 出力形式)に "Artifacts" として列挙されます。

定義に value がない場合、その名前のフラグの空値定義が作られます。これは on/off オプションの制御に使われます。以前作成した定義を削除するには +define key を使います。既存のすべての定義を削除するには +define "*" を使います。

同じ 'artifact' 設定は -set "option:key" "value" オプションでも定義でき、定義値に 画像プロパティの整形と表示 を使うこともできます。

option と key は大文字小文字を区別しません(デコーダ内で使うため小文字に変換されます)が、value は大文字小文字を区別します。

これらの設定はグローバルスコープで、すべての画像と操作に影響します。

認識される define の一覧は ImageMagick の defines を参照してください。例:

magick bilevel.tif -define ps:imagemask eps3:stencil.ps

値の前に registry: を付けると、画像レジストリの属性を設定できます。たとえば、作業ファイルを置く一時パスを設定するには:

-define registry:temporary-path=/data/tmp

-delay ticks

-delay ticksxticks-per-second {<} {>}

一時停止してから次の画像を表示します。

このオプションは画像シーケンスのアニメーションを調整するのに便利で、次の画像を表示するまでに ticks/ticks-per-second 秒が経過する必要があります。既定では画像シーケンスの各表示間に遅延はありません。既定の ticks-per-second は 100 です。

現在の値が指定遅延を超える場合のみ画像遅延を変えるには > を使います。< は現在の値が指定遅延より小さい場合のみ変えます。たとえば 30> を指定し画像遅延が 20 なら、遅延は変わりません。しかし遅延が 40 や 50 なら 30 に変わります。シェルが < や > をファイルリダイレクトと解釈しないよう、指定遅延を引用符で囲んでください。

-delete indexes

インデックスで指定した画像を画像シーケンスから削除します。

画像はシーケンス内のインデックスで指定します。最初の画像はインデックス 0 です。負のインデックスはシーケンスの末尾からの相対で、たとえば -1 は最後の画像を表します。画像の範囲はダッシュで指定します(例: 0-4)。インデックスはカンマで区切ります(例: 0,2)。現在の画像シーケンスの最後の画像を削除するには +delete を使います。画像シーケンス全体を削除するには -delete 0--1 を使います。

永続レジストリから画像を削除することもできます。例: -delete registry:checkers

-density width

-density widthxheight

デバイスへのレンダリング用に、画像の水平・垂直解像度を設定します。

このオプションは、ラスター画像のエンコード時に格納する画像解像度、または PostScript・PDF・WMF・SVG などのベクター形式をラスター画像にレンダリング(読み込み)する際のキャンバス解像度を指定します。画像解像度は、出力デバイスやラスター画像へレンダリングする際に適用する測定単位を提供します。既定の測定単位は 1 インチあたりのドット数(DPI)です。代わりに 1 センチあたりのドット数を選ぶには -units オプションを使います。

既定の解像度は 1 インチあたり 72 ドットで、1 ピクセルあたり 1 ポイント(Macintosh と PostScript の標準)に相当します。コンピューター画面は通常 72 または 96 dpi、プリンターは一般に 150、300、600、1200 dpi に対応します。

ファイル形式が対応していれば、このオプションで格納された画像解像度を更新できます。なお Photoshop は独自の埋め込みプロファイルから画像解像度を格納・取得します。このプロファイルを画像から除去しないと、Photoshop は標準ファイルヘッダで指定された画像解像度を無視し、以前の解像度で画像を扱い続けます。

-density は属性を設定するもので、基となるラスター画像は変えません。ピクセルに適用するスケールを調整することで、DTP 目的でレンダリングサイズを調整するのに使えます。画像が同じ物理寸法(インチやセンチ)になるよう画像のピクセル数を変えるには、-resample オプションを使います。

-depth value

画像のビット深度。

色深度は、各ピクセルのチャンネルあたりのビット数です。たとえば RGB で深度 16 の場合、赤・緑・青の各チャンネルは 0〜2^16-1(65535)の範囲を取れます。GRAY・RGB・CMYK など深度が不明な生画像形式の深度を指定したり、読み込み後に任意の画像の深度を変えたりするにはこのオプションを使います。既定では、ピクセル深度を下げる際、上位ビットが切り落とされます。代わりに量子化誤差を近傍ピクセルに拡散するには -dither FloydSteinberg を使います。

深度を既定値に戻すには +depth を使います。

-descend

ウィンドウ階層を下って画像を取得します。

-deskew threshold{%}

画像の傾きを補正します。40% のしきい値がほとんどの画像で機能します。

画像を自動切り抜きするには -set option:deskew:auto-crop true | false を使います。

-despeckle

画像内のスペックル(斑点ノイズ)を低減します。

-direction type

テキストを右から左、または左から右に描画します。RAQM デリゲートライブラリと 複雑なテキストレイアウト が必要です。

-displace horizontal-scale{%}{!}

-displace horizontal-scalexvertical-scale{%}{!}

変位マップで定義されたとおりに画像ピクセルをずらします。

このオプションでは、'overlay' 画像(および任意で 'mask' 画像)を変位マップとして使い、重ね領域の各点で 'background' 画像のどの部分が見えるかのルックアップをずらします。変位マップは、それを通る光を屈折させて、背後の元の 'background' 画像を歪んで見せる「レンズ」のようなものです。

変位マップの完全なグレー領域は画像の変位を 0 にします。黒い領域はルックアップ点を指定した最大の負の変位に、白は最大の正の変位にします。

ずらされるのは 'background' のルックアップであって、画像自体の変位ではない点に注意してください。そのため変位マップの 'white' を含む領域は、ルックアップ点を正の量だけ「シフト」させ、正しい位置から右・下方向にコピーを生成します。つまり画像は負の左・上方向に「シフト」したように見えます。これを理解することは変位マップの仕組みを理解するうえで非常に重要です。

与えた引数は、特定のマップが生成できるピクセル単位の最大変位量を定義します。変位スケールが十分大きければ、変位マップ自体の境界の外側にある 'background' 画像の部分をルックアップすることも可能です。つまり、重ね領域の外側にある元画像の一部を重ね領域内に簡単にコピーできます。

'%' フラグは変位スケールを重ね画像のサイズに対する相対にします(100% = 画像の幅・高さの半分)。'!' を使うとパーセント引数は代わりに出力画像サイズを参照します。これらのフラグは IM v6.5.3-5 で追加されました。

通常、単一のグレースケール変位マップが提供され、指定したスケール値とともに、変位が起こりうる単一の方向(ベクトル)を(正または負に)決めます。しかし、通常マスクとして使う 3 番目の画像も指定すると、合成画像が水平 X 変位に、マスク画像が垂直 Y 変位に使われます。これにより X と Y で完全に異なる変位値を定義でき、スケール境界内の任意の点をルックアップできます。つまり各ピクセルが近くの任意のピクセルをルックアップでき、単純な 1 次元ベクトル変位ではなく複雑な 2 次元変位を生成します。

あるいは 2 つの別画像を提供する代わりに、IM v6.4.4-0 以降、重ね画像の 'red' チャンネルで水平(X)変位を、'green' チャンネルで垂直(Y)変位を指定できます。

IM v6.5.3-5 以降、重ね画像のアルファチャンネルは出力画像の透明度のマスクとして使われます。ただし重ね領域の外側は影響を受けません。

-display host:display[.screen]

接続する X サーバーを指定します。

このオプションは、この X サーバーから画像やフォントを取得するため convert で使われます。X(1) を参照してください。

-dispose method

作成または読み込まれる画像の GIF 破棄設定を定義します。

レイヤー破棄メソッドは、アニメーションの現在の「フレーム」の表示が(その「遅延」期間の後に)終わってから、次のフレームが表示に重ねられる前に、表示中の各画像をどう変更するかを定義します。

有効なメソッドは次のとおりです:

Undefined
0: 破棄未指定('none' と同等)。
None
1: 破棄せず、次のフレーム画像を重ねるだけ。
Background
2: フレーム領域を背景色でクリアする。
Previous
3: このフレームの重ね前の画像にクリアする。

上記の数字も使えます。これは GIF 形式が内部的に上記設定を表すために使うものです。

破棄メソッドの完全な一覧を表示するには -list dispose を使います。

設定を無効にし、読み込まれる画像のレイヤー破棄メソッドのリセットを防ぐには +dispose を使います。

すでにメモリ内にある画像の破棄メソッドを設定するには -set 'dispose' method を使います。

-dissimilarity-threshold value

サブ画像マッチングの最大 RMSE(既定 0.2)。

-dissolve src_percent[xdst_percent]

指定したパーセントで、ある画像を別の画像に溶け込ませます。

合成画像の不透明度に指定パーセントを掛け、メイン画像の 'over' に合成します。src_percent が 100 より大きい場合、メイン画像を溶かし始め、値 '200' で透明になります。両方のパーセンテージを指定すると、各画像が指定パーセンテージに溶けます。

dissolve のパーセンテージは加算されない点に注意してください。2 つの不透明画像を '50,50' で溶かすと 75% の透明度になります。2 画像を 50% + 50% でブレンドするには、dissolve 値 '50,100' を使う必要があります。

-distort method arguments

指定したメソッドとその必須引数を使って画像を歪ませます。

arguments は、カンマまたはスペースで区切られた浮動小数点数のリストを含む単一の文字列です。浮動小数点値の数と意味は、使う歪みメソッドによります。

次の歪みタイプから選びます:

メソッド 説明
ScaleRotateTranslate
SRT まず指定した 'center' を中心に拡大縮小・回転してから、その 'center' を新しい位置へ平行移動する、という順で画像を歪ませる。'Affine' タイプの歪みを指定する別の方法だが、せん断効果はない。小さい画像を回転・変位させて大きな背景上にタイル配置する(2 次元アニメーション)のにも適する。
引数の数によって、拡大縮小・回転・平行移動の各引数の具体的な意味が決まる。
2: Scale Angle
3: X,Y Angle
4: X,Y Scale Angle
5: X,Y ScaleX,ScaleY Angle
6: X,Y Scale Angle NewX,NewY
7: X,Y ScaleX,ScaleY Angle NewX,NewY
これは実際には 2 次元線形 'Affine' または 'AffineProjection' 歪みを指定する別の方法。
Affine 少なくとも 3 組以上の制御点(下記参照)を移動して画像を線形に歪ませる。理想的には 3 組(12 個の浮動小数点値)を与え、その 3 点に従って画像を線形に拡大縮小・回転・せん断・平行移動できる。関連する 'AffineProjection' と 'SRT' 歪みも参照。
3 組(12 個)を超える制御点対を与えると、線形アフィン歪みに最もよく合うよう最小二乗フィットされる。2 組(8 個)だけの場合、せん断・反転・アスペクト比変化なしの 2 点による平行移動・回転・拡大縮小が行われる。1 組だけなら平行移動のみ(浮動小数点の非整数平行移動もありうる)。
この歪みは透視歪みを一切含まない。
RigidAffine 剛体アフィン(ユークリッド変換とも呼ばれる)は Affine に似ているが、Sy = Sx かつ Ry = -Rx として歪みを 4 引数(S, R, Tx, Ty)に制限し、拡大縮小・回転・平行移動のみとする。スキューなし。最低 2 組の制御点対が必要。
AffineProjection ソース画像を出力画像にマップするアフィン方程式を成す、6 個の事前計算済み係数のアフィン行列で画像を線形に歪ませる。sx, rx, ry, sy, tx, ty。詳細とこれらの係数の意味は -affine 設定を参照。
歪み 'Affine' と 'SRT' はこの歪みを定義する別の方法を提供し、ImageMagick が必要な係数を生成する計算を行う。それらの別形式で -verbose 設定を使うと、内部生成された係数を見られる。
BilinearForward
BilinearReverse 双線形歪み。最低 4 組の座標対(16 値、下記参照)を与える。歪み後に線がまっすぐ見えないことがあるが、座標間の距離は一定に保たれる。
'BilinearForward' は矩形を任意の四辺形にマップし、'BilinearReverse' は任意の四辺形を矩形にマップする。いずれもまっすぐな辺を保つ。
'BilinearForward' は無効ピクセルを生成することがあり、それらは -mattecolor 色設定で着色される。また四辺形が「反転」すると画像が消えることがある。
将来的には、辺(と辺の距離比)を保ちつつ任意の四辺形を任意の四辺形にマップしようとする真の双線形歪みを作る計画がある。
Perspective 4 組以上の制御点(下記参照)で画像を透視歪みする。4 組(16 個)を超えると最小二乗フィットでより正確な歪みになる(画像レジストレーションやパノラマ効果用)。4 組未満の場合は 'Affine' 線形歪みにフォールバックする。
透視歪み画像は直線がまっすぐに保たれるが、歪み画像のスケールは変化する。地平線はアンチエイリアスされ、'sky'(空)色は -mattecolor 設定で設定できる。
PerspectiveProjection 8 個の事前計算済み係数に基づき 'Perspective' 歪みを行う。これらの係数は 'Perspective' 歪みの -verbose 出力を見るか、自分で計算して得られる。最後の 2 つの透視スケーリング係数が 0 なら、残り 6 個は転置された 'アフィン行列' を表す。
Polynomial 対応する制御点の組を使って N 次の 2D '多項式' 歪みを行う。多項式の次数が必要な最小制御点数を決める。次数 1 は -distort Affine と同じ。次数 1.5 は -distort BilinearReverse と同じ。典型的には 2 次歪みに使う。+distort polynomial はない。
Arc 円の周りで指定した角度にわたって画像を弧状にする(極マッピングの変種)。
arc_angle: 画像を左右にわたって弧状にする角度
rotate_angle: 結果画像を垂直中心から回転する角度
top_radius: ソース画像の上端をこの半径に設定する
bottom_radius: 下端をこの半径に設定する(半径方向のスケーリング)
結果画像は常に(+distort を使うかのように)最適にリサイズされ、ユーザー指定の引数で元画像のスケールとアスペクト比をできるだけ保とうとする。'Arc' した画像の全体のアスペクト比を変えるには 4 引数すべてが必要。
これは、直接的なデカルト→極座標変換ではなく画像のアスペクト比を保とうとするよう設計された極歪みの変種。
Polar 'Arc' に似ているが、画像の完全なデカルト→極座標マッピングを行う。つまり入力画像の高さが半径の範囲にマップされ、幅が角度の範囲に巻き付けられる。
引数: Rmax,Rmin CenterX,CenterY, start,end_angle
すべての引数は任意。Rmin は既定で 0、center は画像中心、角度は -180(上)から +180(上)。Rmax に特別値 '0' を与えると、中心から最も近い辺までの距離が出力画像の半径に使われ、画像全体が(縮小されつつ)見えるようになる。特別値 '-1' は中心から最も遠い隅までの距離を使う。これは入力矩形画像の隅を「クリップ」することがあるが、同じ引数の 'DePolar' のちょうど逆を生成する。
plus 形式(+distort)を使うと、出力画像中心は既定で仮想キャンバスの 0,0 になり、入力画像全体が仮想キャンバス上の出力画像で見えるよう画像サイズが調整される。
DePolar 'Polar' 歪みと同じ引数・意味を使うが、逆の極→デカルト歪みを生成する。
ただし特別な Rmax 設定 '0' は入力画像の隅をクリップすることがある。特別な Rmax 設定 '-1'(中心から隅への最大距離)を使うと歪み画像全体が結果に保たれ、'Polar' への同じ引数が歪みを逆転して元を再現する。この歪みは円弧の領域再サンプリングを要し、組み込みの EWA 再サンプリング関数では扱えない。そのため通常の EWA フィルタは無効になる。高品質な結果には何らかの「スーパーサンプリング」画像処理技術の使用を推奨する。
Barrel Helmut Dersch が定義した 4 係数(A,B,C,D)を与え、放射状レンズ歪みの補正に適した樽型・糸巻き型歪みを行う。つまり写真で曲がった直線を再びまっすぐにする。
引数: A B C [ D [ X , Y ] ]
または Ax Bx Cx Dx Ay By Cy Dy [ X , Y ]。関数 Rsrc = r * ( Ar³ + Br² + C*r + D ) を成す。X,Y は歪みの任意の中心(既定は画像中心)。
2 番目の形式は通常、レンズ歪みの補正ではなく画像の歪ませに使う。
BarrelInverse 'Barrel' に非常に似ており、引数のセットと扱いも同じ。ただし放射多項式の逆数を使い、関数 Rsrc = r / ( Ar³ + Br² + C*r + D ) を成す。これは 'Barrel' 歪みの逆ではなく、別の樽型に似た放射歪みメソッド。
Shepards 逆 2 乗距離補間法(Shepard 法)を使って、与えた制御点リスト(任意の数)で歪ませる。制御点は実質的に、各制御点の周りで画像を「局所的」に変位させる(制御点近傍の見た目と回転を保つ)。最良の結果には、隅・辺・その他の不変部分の位置を「固定」する追加制御点を加え、それらが動かないようにすべき。
この歪みは、釘を使った「タフィー引き」や、'ゼリー' の塊に刺した 'ピン' を新しい位置に動かしてゼリー表面を歪ませることに例えられる。
内部的には、同名の -sparse-color メソッドを使い、ソース画像の色ルックアップ用に変位マップ(-displace 参照)を生成するのと同等。
歪みメソッドの完全な一覧を表示するには -list distort を使います。

'Affine'、'Perspective'、'Shepards' などの上記の多くの歪みメソッドは、与えた画像のこれらの点を出力画像でどう歪ませるかを定義する制御点リストを使います。4 つの浮動小数点値の各組は、ソース画像座標と、それに続く出力画像座標を表します。これにより次のような値のリストになります...

U1,V1 X1,Y1 U2,V2 X2,Y2 U3,V3 X3,Y3 ... Un,Vn Xn,Yn

ここでソース画像上の U,V が出力画像上の X,Y にマップされます。

たとえば 'perspective' 歪みで画像を変形するには、最低 4 組の座標(16 個)のリストが必要です。次は組み込みの "rose:" 画像の透視歪みです。読みやすくするため、4 組の座標対をスペースでグループ化している点に注目してください。

magick rose:  -virtual-pixel black \
  -distort Perspective '0,0,0,0  0,45,0,45  69,0,60,10  69,45,60,35' \
   rose_3d_rotated.gif"

歪みに必要な数を超える座標対を与えると、与えたすべての座標対に最良の結果を生むよう歪みメソッドが「最小二乗」フィットされます。理想的な点数より少ないと、歪みは一般に、より少ない座標を扱えるより単純な歪み(通常は線形 'Affine' 歪み)にフォールバックします。

より多くの座標を使うと、画像レジストレーションツールで重なる画像内の一致する座標対を見つけ、歪みの「フィット」を改善できます。もちろん不正な座標対は「フィット」を悪化させることもあります。常に注意が必要です。

色は、EWA 再サンプリングと呼ばれる特別な技術を使い、円筒形の再サンプリング -filter に従ってソース画像から取得されます。これは特に出力で画像が小さくなる(縮小される)場合に非常に高品質な結果を生み、'perspective' 歪みでは非常に一般的です。たとえばここでは、地平線まで無限にタイル化された '平面' を見ます。

magick -size 90x90 pattern:checkerboard -normalize -virtual-pixel tile \
  -distort perspective  '0,0,5,45  89,0,45,46  0,89,0,89  89,89,89,89' \
   checks_tiled.jpg

地平線を含む無限タイルの透視画像は、'地平線' に近い各ピクセルを生成するために圧縮されるピクセル数のため、非常に遅くなることがある点に注意してください。特別な -filter 設定 'point' を指定すると EWA 再サンプリングを無効にできます(代わりにスーパーサンプリングを使う予定なら推奨)。

最後の例の '空' のように画像が_無効ピクセル_を生成する場合、-distort はこれらのピクセルに現在の -mattecolor 設定を使います。これらのピクセルを見せたくない場合は、地面の残りに合う色を設定してください。

出力画像サイズは既定で入力画像と同じです。つまり歪み画像の一部が '歪み空間' の表示領域の外に出ると、その部分はクリップされ失われます。ただし演算子の plus 形式(+distort)を使うと、画像レイヤリング用に正しい '仮想キャンバス' オフセットを保ちつつ、(可能なら)歪み画像全体を見せようとします。このオフセットが不要なら +repage で取り除く必要があるかもしれません。

-verbose 設定にすると、-distort は専門的な研究やデバッグのため、内部係数と歪みに相当する -fx を出力しようとします。すべての歪みで利用できるとは限りません。

代わりに特別な "-define distort:viewport={geometry_string}" 設定を指定すると、歪み画像空間の生成 'ビューポート' 画像のサイズとオフセットを指定できます。

"-define distort:scale=scale_factor" を設定すると、歪み画像の表示内容を変えずに出力画像(ビューポートその他)をその係数で拡大縮小します。これは、高品質な結果のための画像の 'スーパーサンプリング' や、(適切なビューポート変更や歪み後の切り抜き・リサイズによる)画像のパン・ズームに使えます。

"-define resample:verbose=1" を設定すると、EWA(楕円加重平均)再サンプリングアルゴリズムが作る円筒形フィルタのルックアップテーブルを出力します。このテーブルは半径の 2 乗のルックアップ値を使う点に注意してください。これは通常 EWA 再サンプリングのデバッグにのみ使われます。

-distribute-cache port

分散ピクセルキャッシュサーバーを起動します。

-dither method

オプションで一般的な減色が適用されるとき、または特定の形式への保存時に自動で、画像に Riemersma または Floyd-Steinberg 誤差拡散ディザを適用します。これは既定で有効です。

ディザリングは、目には画像の元の色により近い近似が再現されるよう、隣接ピクセルに 2 つ以上の色を配置します。これにより画像の再現に必要な色数が減りますが、低レベルの色パターンという代償があります。誤差拡散ディザは、任意の色セット(生成または ユーザー定義)を画像に使えます。

ディザリングは既定で有効です。無効にするには設定の plus 形式 +dither を使います。これはテキストやグラフィックのエイリアスなしで PostScript もレンダリングします。ディザリングを無効にすると、しばしば(常にではない)処理が速くなり色数が減りますが、よりアニメ調の画像着色になります。一般に、カラーグラデーションのある領域で 'カラーバンディング' 効果が生じます。

減色演算子 -colors, -monochrome, -remap, -posterize は、作成した縮小色セットを使って画像にディザリングを適用します。これらの演算子は、GIF:、XBM: など色対応が限られた形式に画像を保存する際の自動減色の一部としても使われるため、これらの場合にもディザリングが使われることがあります。

あるいは -random-threshold で純粋にランダムなディザを生成できます。または -ordered-dither で、特定のカラーマップではなく一様なカラーマップを使って、しきい値マップされたディザパターンを適用できます。

Floyd-Steinberg ディザの量を制御するには、たとえば "-define dither:diffusion-amount=35%" を使います。

-draw string

1 つ以上のグラフィックプリミティブで画像に注釈を付けます。

このオプションを使い、1 つ以上のグラフィックプリミティブで画像に注釈を付けたり装飾したりします。プリミティブには図形・テキスト・変換・ピクセル操作が含まれます。

図形プリミティブ:

point
x,y
line
x0,y0 x1,y1
rectangle
x0,y0 x1,y1
roundRectangle
x0,y0 x1,y1 wc,hc
arc
x0,y0 x1,y1 a0,a1
ellipse
x0,y0 rx,ry a0,a1
circle
x0,y0 x1,y1
polyline
x0,y0 ... xn,yn
polygon
x0,y0 ... xn,yn
bezier
x0,y0 ... xn,yn
path
specification
image
operator x0,y0 w,h filename

テキストプリミティブ:

text
x0,y0 string

テキスト gravity プリミティブ:

gravity
NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast

テキスト gravity プリミティブはテキストの配置にのみ影響し、他のプリミティブとは相互作用しません。-gravity コマンドラインオプションを使うのと同等ですが、それが現れる -draw オプション内にスコープが限定されます。

変換プリミティブ:

rotate
degrees
translate
dx,dy
scale
sx,sy
skewX
degrees
skewY
degrees

ピクセル操作プリミティブ:

color
x0,y0 method
matte
x0,y0 method

図形プリミティブは、直前の -fill 設定で指定された色で描画されます。塗りつぶさない図形には -fill none を使います。図形の「輪郭」であるストロークは、任意で -stroke と -strokewidth 設定で制御できます。

point プリミティブは、ピクセル平面内の単一の点、つまり整数座標の順序対 x,y で指定します。(単一ピクセルのみを扱うため、point プリミティブは -stroke や -strokewidth の影響を受けません。)

line プリミティブには開始点と終了点が必要です。

rectangle プリミティブは、左上隅と右下隅の点の対で指定します。

roundRectangle プリミティブは、rectangle と同じ隅の点に続けて、除去する角丸の幅と高さを取ります。

circle プリミティブは円盤(塗りつぶし)または円(塗りつぶしなし)を作ります。中心と周(境界)上の任意の点を与えます。なお、平行移動を使えば、円の縁の座標を計算する必要がなくなり、半径を直接与えられます:

magick -size 100x60 xc: -stroke SeaGreen  -fill PaleGreen -strokewidth 2 -draw 'translate 50,30 circle 0,0 25,0' circle.gif

arc プリミティブは、指定した矩形に楕円の一部を内接させるのに使います。arc には rectangle で使う 2 隅(上記参照)に続けて、その弓形の弧の開始角と終了角が必要です(例: 130,30 200,100 45,90)。生成された開始点と終了点が線分で結ばれ、得られた楕円の弓形が塗りつぶされます。

部分(または全体)の楕円を描くには ellipse を使います。中心点、水平・垂直の「半径」(楕円の半軸)、開始角と終了角(度)を与えます(例: 100,100 100,150 0,360)。

polyline と polygon プリミティブは、周を定義するのに 3 点以上が必要です。polyline は、最後の点が開始点へストロークされない polygon にすぎません。塗りつぶさない場合は折れ線です。-stroke 設定が none(既定)なら、polyline は polygon と同一です。

座標は、スペースまたは任意のカンマで区切られた整数の対です。

例として、100,100 を中心とし 150,150 まで広がる円を定義するには:

-draw 'circle 100,100 150,150'

bezier プリミティブはスプライン曲線を作り、形状の定義に 3 点以上が必要です。最初と最後の点はノット(節点)で曲線が通り、中間の座標は制御点です。制御点が 2 つ指定されると、各端ノットとそれに順に対応する制御点の間の線が、その端での曲線の接線方向を決めます。制御点が 1 つなら、端ノットからその 1 つの制御点への線が各端の接線方向を決めます。制御点が 2 つを超えると、追加の制御点が組み合わさって曲線の中間形状を決めます。複雑な曲線を描くには、path プリミティブを使うか、各連続セグメントの開始・終了ノットを繰り返した複数の 4 点ベジエセグメントを描くことを強く推奨します。例:

-draw 'bezier 20,50 45,100 45,0 70,50'
-draw 'bezier 70,50 95,100 95,0 120,50'

path はオブジェクトの輪郭を表し、moveto(新しい現在点を設定)、lineto(直線を描く)、curveto(ベジエ曲線を描く)、arc(楕円または円の弧)、closepath(最後の moveto まで線を引いて現在の図形を閉じる)の要素で定義されます。複合パス(つまり、それぞれ単一の moveto に続く 1 つ以上の線・曲線操作から成るサブパスを持つパス)も可能で、オブジェクトのドーナツ穴のような効果を実現できます。(Paths を参照。)

別の画像と画像を合成するには image を使います。image キーワードに続けて、合成演算子、画像位置、画像サイズ、ファイル名を指定します:

-draw 'image SrcOver 100,100 225,225 image.jpg'

画像サイズに 0,0 を使うと、画像ヘッダにある実際の寸法を使います。それ以外なら指定寸法に拡大縮小されます。利用可能なアルファ合成メソッドの詳しい議論は アルファ合成 を参照してください。

引数を必要とする "dissolve" などの「特別な拡張合成演算子」は、現在 -draw image オプションでは使えません。

テキストで画像に注釈を付けるには text を使います。テキスト座標に続けて文字列を指定します。文字列に空白が含まれる場合は、シングルまたはダブルクォートで囲みます。

たとえば、次は bird.miff という画像に Works like magick! と注釈します。

-draw "text 100,100 'Works like magick!'"

テキストで画像に注釈を付ける別の便利な方法は -annotate オプションを参照してください。

rotate プリミティブは、後続の図形・テキストプリミティブをメイン画像の原点を中心に回転します:

-draw "rotate 45 text 10,10 'Works like magick!'"

translate プリミティブは後続の図形・テキストプリミティブを平行移動します。

scale プリミティブはそれらを拡大縮小します。

skewX と skewY プリミティブは、メイン画像または領域の原点を基準にそれらをせん断します。

これらの変換は現在のアフィン行列を変更します。これは -affine オプションで定義される初期アフィン行列から初期化されます。変換は -draw オプション内で累積されます。初期アフィン行列は影響を受けず、別の -affine オプションの出現でのみ変わります。別の -draw オプションが現れると、現在のアフィン行列は初期アフィン行列から再初期化されます。

ピクセルの色を塗りつぶし色(-fill 参照)に変えるには color プリミティブを使います。ピクセル座標に続けてメソッドを指定します:

point
replace
floodfill
filltoborder
reset

対象ピクセルを座標で指定したものとします。point メソッドは対象ピクセルを再着色します。replace メソッドは対象ピクセルの色に一致する任意のピクセルを再着色します。floodfill は対象ピクセルの色に一致し隣接する任意のピクセルを再着色し、filltoborder は枠色でない任意の隣接ピクセルを再着色します。最後に reset はすべてのピクセルを再着色します。

ピクセルのマット値を透明に変えるには matte を使います。ピクセル座標に続けてメソッドを指定します(メソッドの説明は color プリミティブを参照)。point メソッドは対象ピクセルのマット値を変えます。replace は対象ピクセルの色に一致する任意のピクセルのマット値を変えます。floodfill は対象ピクセルの色に一致し隣接する任意のピクセルを、filltoborder は枠色(-bordercolor)でない任意の隣接ピクセルのマット値を変えます。最後に reset はすべてのピクセルのマット値を変えます。

プリミティブの色・フォント・フォント外接矩形の色は、それぞれ -fill、-font、-box で設定できます。オプションはコマンドライン順に処理されるので、これらは必ず -draw オプションの前に使ってください。

数字で始まる文字列は引用符で囲む必要があります(例: 1.png ではなく '1.png')。

描画プリミティブは Magick Vector Graphics 形式に準拠します。

なお、描画にはアルファチャンネルが必要です。なければ、すべて不透明なアルファチャンネルが暗黙的に作られます。

-duplicate count,indexes

画像を 1 回以上複製します。

count と、複製する画像をシーケンス内のインデックスで指定します。最初の画像はインデックス 0 です。負のインデックスはシーケンスの末尾からの相対で、たとえば -1 は最後の画像を表します。画像の範囲はダッシュで指定します(例: 0-4)。インデックスはカンマで区切ります(例: 0,2)。現在の画像シーケンスの最後の画像を複製するには +duplicate を使います。

-edge radius

画像内のエッジを検出します。

-emboss radius{xsigma

画像をエンボス加工します。

-encipher filename

後で -decipher で復号するためにピクセルを暗号化します。

パスフレーズは filename で指定したファイルから取得します。

詳細は ImageMagick: 画像の暗号化・復号 のページを参照してください。

-encoding type

テキストのエンコーディングを指定します。

次から選びます:

AdobeCustom     AdobeExpert
AdobeStandard   AppleRoman
BIG5            GB2312
Latin 2         None
SJIScode        Symbol
Unicode         Wansung

-endian type

画像のエンディアン(MSB または LSB)を指定します。

エンディアンタイプの完全な一覧を表示するには -list endian オプションを使います。

未指定のエンディアンに戻すには +endian を使います。

-enhance

デジタルフィルタを適用してノイズの多い画像を補正します。

-equalize

画像にチャンネルごとのヒストグラム平坦化を行います。

すべてのチャンネルを協調させてヒストグラム平坦化を行うには、画像を HSL・OHTA・YIQ・YUV などの別の色空間に変換し、適切な輝度に相当するチャンネルを平坦化してから、RGB に戻します。

たとえば HSL を使う場合: ... -colorspace HSL -channel lightness -equalize -colorspace sRGB ...

YIQ・YUV・OHTA では red チャンネルを使います。たとえば OHTA は主成分変換で、情報の大半を第 1 チャンネルに置きます。次のようにします: ... -colorspace OHTA -channel red -equalize -colorspace sRGB ...

-evaluate operator value

算術・関係・論理式を評価してチャンネルピクセルを変更します。

(複数パラメータの関数は -function 演算子を、より精巧な計算が必要なら -fx 演算子を参照してください。)

各演算子の挙動を以下の一覧にまとめます。簡潔にするため、以下で言う「ピクセル」の数値はそのピクセルの対応チャンネルの値で、「正規化ピクセル」はその数値を最大値(インストール依存)QuantumRange で割ったものです。(正規化ピクセルを使う場合、他の計算の後、QuantumRange を掛けて全範囲に復元されます。)

演算子 概要(詳細は後述)
Abs ピクセルに value を加えて絶対値を返す。
Add ピクセルに value を加える。
AddModulus ピクセルに value を QuantumRange を法として加える。
And ピクセルと value のビット AND。
Cos, Cosine 周波数 value のコサインを 50% バイアスを加えてピクセルに適用する。
Divide ピクセルを value で割る。
Exp e を底とする指数関数
Exponential e を底とする指数関数
Gaussian-noise
Impulse-noise
InverseLog 正規化ピクセルに逆スケール対数を適用する。
Laplacian-noise
LeftShift ピクセル値を value ビット左シフトする(つまりピクセルを 2^value 倍する)。
Log 正規化ピクセルにスケール対数を適用する。
Max ピクセルを value と現在値の最大に設定(つまり value 未満のピクセルを value にする)。
Mean value を加えて 2 で割る。
Median 画像シーケンスから中央値を選ぶ。
Min ピクセルを value と現在値の最小に設定(つまり value より大きいピクセルを value にする)。
Multiplicative-noise (これらは対応する -noise 演算子と同等。)
Multiply ピクセルを value 倍する。
Or ピクセルと value のビット OR。
Poisson-noise
Pow 正規化ピクセルを value 乗する。
RightShift ピクセル値を value ビット右シフトする(つまりピクセルを 2^value で割る)。
RMS ピクセルを 2 乗して value を加える。
RootMeanSquare ピクセルを 2 乗して value を加える。
Set ピクセルを value に等しく設定する。
Sin, Sine 周波数 value のサインを 50% バイアスを加えてピクセルに適用する。
Subtract ピクセルから value を引く。
Sum
Threshold value より大きいピクセルをしきい値処理する。
ThresholdBlack value 以下のピクセルを 0 にしきい値処理する。
ThresholdWhite value を超えるピクセルを最大値にしきい値処理する。
Uniform-noise
Xor ピクセルと value のビット XOR。

指定した関数は、画像の事前に設定された各 -channel にのみ適用されます。必要に応じて、計算結果は区間 [0, QuantumRange] に収まるよう切り詰め(クリップ)られます。画像の透明度チャンネルは 'alpha' 値(0 = 完全透明)で表されるので、たとえばアルファチャンネルを 2 で Divide すると画像が半透明になります。value を QuantumRange のパーセンテージとして指定するにはパーセント記号 '%' を付けます。

-evaluate 演算子の完全な一覧を表示するには -list evaluate を使います。

Add・Subtract・Multiply メソッドの結果は、適切な引数を与えた -level や +level 演算子でも、色値の全体範囲を線形に変更することで得られます。ただし、-level は透明度を 'matte' 値(0 = 不透明)として扱い、-evaluate は 'alpha' 値で動作する点に注意してください。

AddModulus は ImageMagick 6.4.8-4 で追加され、QuantumRange を法とする加算を提供します。したがって、結果のピクセル値が区間 [0, QuantumRange] の外にならない限り Add と同等です。

Exp(Exponential)は ImageMagick 6.6.5-1 で追加され、正規化ピクセル値で動作します。Exp に使う value は、減衰指数関数を生むよう負にすべきです。非負の値は常に 1 より大きい結果、つまり区間 [0, QuantumRange] の外を生みます。式は下記のとおりです。

exp(value × u)

たとえば -function polynomial "2 0 0" で入力画像を 2 乗すると、結果は減衰ガウス関数になります。

Log は ImageMagick 6.4.2-1 で追加され、正規化ピクセル値で動作します。これはスケール対数関数です。Log に使う value は、対数関数のグラフの曲率を調整するスケーリング係数を提供します。正規化値 u に適用される式は下記です。

log(value × u + 1) / log(value + 1)

Pow は ImageMagick 6.4.1-9 で追加され、正規化ピクセル値で動作します。Pow は -gamma 演算子に関連します。たとえば -gamma 2-evaluate pow 0.5、つまり '平方根' 関数と同等です。-gamma に使う value は、単に Pow に使う value の逆数です。

Cosine・Sine は IM v6.4.8-8 で追加され、画像の値を(コ)サイン波関数に従う値に変換します。同義語 Cos・Sin も使えます。出力はそれぞれの色値範囲に収まるよう 50% バイアスされ 50% で正規化されます。value は関数の周期(周波数)をスケーリングし、入力色範囲にわたって生成される '波' の数を決めます。たとえば value が 1 なら実効周期は単に QuantumRange ですが、value が 2 なら実効周期は QuantumRange の半分です。

0.5 + 0.5 × cos(2 π u × value).

評価値をクランプするには -set 'option:evaluate:clamp=true' を使います。

evaluate のマルチ値版である -function 演算子も参照してください。

-evaluate-sequence operator

画像シーケンスにわたって算術・関係・論理式を評価し、チャンネルピクセルを変更します。シーケンス内のすべての画像が同じ色空間にあることを確認してください。さもないと予期しない結果になることがあります(例: コマンドラインに -colorspace sRGB を加える)。

-evaluate-sequence 演算子の完全な一覧を表示するには -list evaluate を使います。

-exit

この時点で処理を停止します。

このオプションの後はそれ以上のオプションは処理されません。スクリプトで、オプションを処理しているパイプラインを実際には閉じずに magick コマンドを終了させるのに便利です。また、暗黙の出力画像の代わりに magick コマンドラインの_最後_のオプションとして使い、画像の書き出しを完全に抑止することもできます。なお、NULL: コーダでさえ「書き出さない」ために少なくとも 1 枚の画像を必要とします。このオプションは画像をまったく必要としません。

-extent geometry

画像のサイズとオフセットを設定します。

画像が拡大される場合、未充填の領域は背景色に設定されます。画像を配置するには、ジオメトリ指定のオフセットを使うか、-gravity 設定を前に置きます。画像を背景とどう合成するかを指定するには -compose を使います。

次のコマンドは JPEG 画像を 800x600 ディスプレイに収まるよう縮小・拡大します。入力画像のアスペクト比がちょうど 4:3 でない場合、画像は 800x600 の黒いキャンバスの中央に配置されます:

magick input.jpg -resize 800x600 -background black -compose Copy \
  -gravity center -extent 800x600 -quality 92 output.jpg

このコマンドは比率でも使えます。画像がすでにその比率でない場合、収まるよう切り抜かれます。-gravity 設定は期待どおりの効果を持ちます。

次のコマンドは JPEG 画像を 4:3 比率になるよう切り抜きます:

magick input.jpg -extent 4:3 -quality 92 output.jpg

画像が指定サイズより小さい場合のみパディングし、大きい場合は切り抜かない(つまり何もしない)には < を付けます。画像が指定サイズより大きい場合のみ切り抜き、小さい場合は拡張しない(つまり何もしない)には > を付けます。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

-extract geometry

画像から指定領域を抽出します。

このオプションは、非常に大きな生画像のサブ領域を抽出するのに最も便利です。次の 2 つのコマンドは同等である点に注意してください:

magick -size 16000x16000 -depth 8 -extract 640x480+1280+960 \
  image.rgb image.png",
convert -size 16000x16000 -depth 8 'image.rgb[640x480+1280+960]' \
  image.rgb image.png"

次のようにオフセットを省略すると

magick -size 16000x16000 -depth 8 -extract 640x480 \
  image.rgb image.png

画像は代わりに指定寸法にリサイズされ、次と同等になります:

magick -size 16000x16000 -depth 8 -resize 640x480 image.rgb image.png

geometry 引数の詳細は 画像ジオメトリ を参照してください。

-family fontFamily

テキストのフォントファミリを設定します。

この設定は、ImageMagick がテキストのレンダリングに使おうとすべきフォントファミリを示します。ファミリが見つかればそれが使われ、見つからなければ既定フォント(例: "Arial")や類似と分かっているファミリが代用されます(例: "System" が要求されて見つからない場合 "Courier" が使われることがある)。なお、ファミリは CSS スタイルのフォントリストでも構いません。

フォントに影響する他の設定は、-font, -pointsize, -stretch, -style, -weight オプションを参照してください。

-features distance

指定した距離について、画像の各チャンネルの(同時生起行列の)テクスチャ測定特徴を、4 方向(水平、垂直、左右の対角)それぞれで表示します。

Angular Second Moment       Sum Entropy
Contrast                    Entropy
Correlation                 Difference Variance
Sum of Squares Variance     Difference Entropy
Inverse Difference Moment   Information Measure of Correlation 1
Sum Average                 Information Measure of Correlation 2
Sum Variance                Maximum Correlation Coefficient

-fft

順方向の離散フーリエ変換(DFT)を実装します。

このオプションは ImageMagick 6.5.4-3 で新たに追加されました(ImageMagick 6.6.0-9 で Windows ユーザーでも動作するようになりました)。画像を通常の(空間)領域から周波数領域へ変換します。周波数領域では、画像は振幅の異なる複素正弦波の重ね合わせとして表されます。画像の x・y 座標はそれぞれ x・y 方向の取りうる周波数で、ピクセル強度値は正弦波の振幅に対応する複素数です。例として フーリエ変換離散フーリエ変換高速フーリエ変換 を参照してください。

このオプションの出力には単一の画像名を与えます。ただし出力結果は 2 つの成分を持ちます。指定した画像形式がマルチフレーム画像をサポートするかどうかに応じて、2 フレーム画像か 2 つの別画像になります。二重の出力になるのは、周波数領域が複素数で画像を表し、それを直接可視化できないためです。そのため、複素値は自動的に 2 成分の画像表現に分離されます。第 1 成分は複素数の大きさ(magnitude)、第 2 成分は複素数の位相(phase)です。例として 複素数 を参照してください。

magnitude と phase の成分画像は、色を制限したり画像を圧縮したりしない画像形式で指定する必要があります。したがって MIFF、TIF、PFM、EXR、PNG が推奨形式です。PNG を除くこれらの形式はマルチフレーム画像をサポートします。たとえば

magick image.png -fft fft_image.miff

は magnitude 画像を fft_image.miff[0]、phase 画像を fft_image.miff[1] として生成します。同様に

magick image.png -fft fft_image.png

は magnitude 画像を fft_image-0.png、phase 画像を fft_image-1.png として生成します。この表現が好みなら、コマンドラインで -fft の後に +adjoin を含めることで、他の形式でも 2 つの出力画像を強制できます。

入力画像は任意のサイズで構いませんが、正方形で偶数次元でない場合、入力画像の幅・高さの大きい方かつ偶数ピクセルに自動でパディングされます。パディングは入力画像の下端・右端で行われます。結果の magnitude・phase 画像はこのサイズの正方形になります。パディングの種類は -virtual-pixel 設定に依存します。

両出力成分は [0, QuantumRange] に収まるダイナミックレンジを持つので、HDRI を有効にする必要はありません。phase 値は名目上 0〜2*π の範囲ですが、全ダイナミックレンジに広がるようスケールされます。magnitude 画像はスケールされないため、一般に非常に小さい値を含みます。そのため画像は通常まったく黒く見えます。詳細を見るには、magnitude 画像を通常 log 関数で強調し、いわゆるスペクトルにします。log 関数は明るい値に比べて暗い値をより強調します。たとえば次のようにします:

magick fft_image.miff[0] -contrast-stretch 0 \
  -evaluate log 1000 fft_image_spectrum.png"

ここでは、まず -contrast-stretch 0 または -auto-level で画像を全ダイナミックレンジにスケールします。-evaluate log の引数は、スペクトルでどれだけ詳細を引き出したいかに応じて、通常 100〜10,000 を指定します。大きい値ほど詳細が見えます。ただし詳細が多すぎると重要な特徴が隠れることがあります。

-fft の使用には FFTW デリゲートライブラリが必要です。

複素フーリエ変換の実部・虚部成分である 2 つの出力画像を生成するには +fft を使います。

ただし、実部・虚部成分は負の値を含みうるため、IM を HDRI 有効で構成する必要があります。この場合、実部・虚部の結果には MIFF、TIF、PFM、MPC のいずれかの形式を使う必要があります。これらは負の値も小数値もクリップや小数部の切り捨てなく保持する形式だからです。MIFF か TIF では、それらの画像タイプが HDRI モードでクリップなく正しく動作するよう -define quantum:format=32 を加えるべきです。

+fft で得られる実部・虚部成分画像も、magnitude・phase 成分画像で前述したのと同じパディングにより、正方形で偶数次元の画像になります。

ImageMagick の HDRI 実装に関する議論は HDR 画像 のページを参照してください。HDRI の詳細は ImageMagick の Usage ページ、Fred のフーリエ処理ページ、または Wikipedia の項目を参照してください。

既定では FFT は正規化されます(IFT は正規化されません)。FFT を明示的に正規化し IFT を非正規化するには "-define fourier:normalize=forward" を使います。

-fill color

グラフィックプリミティブの塗りつぶしに使う色。

このオプションは、色名、16 進色、または数値の RGB・RGBA・HSL・HSLA・CMYK・CMYKA 指定を受け付けます。color 引数の適切な指定方法は 色名 を参照してください。

シェルが "#" や括弧を解釈しないよう、色指定を引用符で囲んでください。

たとえば、

-fill blue
-fill "#ddddff"
-fill "rgb(255,255,255)"

詳細は -draw を参照してください。

色名の完全な一覧を表示するには -list color オプションを使います。

-filter type

画像のリサイズや歪み処理の際に、このタイプのフィルタを使います。

-resize や -distort などの操作中の画像のリサイズ処理に影響を与えるにはこのオプションを使います。たとえば次のような単純なリサイズフィルタを使えます:

Point       Hermite       Cubic
Box         Gaussian      Catrom
Triangle    Quadratic     Mitchell
CubicSpline

CubicSpline フィルタのフィルタリングのサポートサイズを指定するには -define filter:lobes={2,3,4} を使います。

Bessel・Sinc フィルタ(およびより高速な同等形式 SincFast)も提供されます。ただしこれらのフィルタは、フィルタのサポートサイズにクリップされる無限フィルタであるため、それ単体では一般に役に立ちません。エキスパート設定(下記参照)以外での直接使用は推奨されません。

代わりに、これらの特殊フィルタ関数は通常、-filter 設定が定義する窓関数で窓掛けされます。つまりこれらの関数を使うと、関係する演算子に適した 'Windowed'(窓掛け)フィルタが定義されます。窓掛けフィルタには次が含まれます:

Lanczos       Hamming       Parzen
Blackman      Kaiser        Welsh
Hanning       Bartlett      Bohman

また、現在の 'support' や 'lobes' エキスパート設定(下記参照)に応じて自動的に関数を再調整する、特別な自己窓掛けフィルタ Lagrange も 1 つ提供されます。

このオプションでフィルタを選ばない場合、カラーマップ画像・マットチャンネル付き画像・拡大される画像では既定で Mitchell に、それ以外では既定で Lanczos になります。

リサイズフィルタの完全な一覧を表示するには -list filter オプションを使います。

これらのエキスパート設定(-define と -set も参照)を使って、フィルタが画像をスケールする際の挙動を変更できます:

-define filter:blur=factor フィルタ(とその窓)の X 軸をスケールする。ぼかすには > 1.0、シャープにするには < 1.0 を使う。これは Gaussian および Gaussian 系の単純フィルタでのみ使うべきで、さもないと期待した結果にならないことがある。
-define filter:support=radius フィルタのサポート半径を設定する。フィルタの大きさ、ひいてはフィルタ再サンプリング処理の遅さを直接決める。すべてのフィルタには既定の '推奨' サポートサイズがある。Lagrange や窓掛けフィルタなどはこの値に応じて自己調整する。単純フィルタではこの値は何もしない(再サンプリングを遅くするだけ)か、フィルタ関数を有害な形でクリップする。
-define filter:lobes=count Sinc/Bessel フィルタに使うローブ数を設定する。フィルタの 'support' 範囲を指定する別の方法で、特に画像歪みに使う場合、窓掛けフィルタにより適するよう設計されている。
-define filter:sigma=value Gaussian フィルタを定義するのに使う 'sigma' 値。既定 sigma 値は '0.5'。Gaussian にのみ影響し、フィルタの 'support' を縮小しない(拡大はしうる)。小さなサポート設定でフィルタがピクセルを '取りこぼす' ことなく、非常に小さなぼかしを生成するのに使える。'0.707'('1/sqrt(2)' の値)という大きめの値も一般的な設定。
-define filter:b=b-spline_factor
-define filter:c=keys_alpha_factor Cubic, Catrom, Mitchell, Hermite などの cubic フィルタや Parzen cubic 窓関数に使う値を再定義する。一方の値だけ定義すると、他方は 'Cubic-Keys' フィルタを生成するよう設定される。値の意味は Mitchell-Netravali の研究論文で定義された。
-define filter:kaiser-beta=value Kaiser 窓関数の一部として使う 'alpha' 値。既定値は '6.5'。Kaiser 窓関数にのみ影響し、他の属性には影響しない。ImageMagick v6.7.6-10 より前は "filter:alpha" として知られていた(非常に古い "zoom" プログラムからの継承)。より現代的な学術研究の用法に合わせ、より明確にするため変更された。
-define filter:kaiser-alpha=value この値に 'PI' を掛けたものは "kaiser-beta" と同等で、その設定を上書きする。Kaiser 窓関数にのみ影響し、他の属性には影響しない。
-define filter:filter=filter_function この関数を重み付けフィルタとして直接使う。Blackman などの窓関数を、通常の窓関数としての用法ではなく、再サンプリングフィルタとして直接使えるようにする。定義され、窓関数が定義されていない場合、窓関数は Box に設定される。Sinc や Jinc をフィルタとして直接指定してもこうなる。
-define filter:window=filter_function IIR(無限インパルス応答)フィルタ Sinc・Jinc を、指定したフィルタで窓掛けする(定義されたサポート範囲で 0 まで下げる)。これにより、これらの IIR フィルタの窓関数として使うフィルタ関数を指定できる。定義済みフィルタの多くは実際これらの IIR フィルタの窓関数。典型的な選択は Box(事実上窓関数を無効にする)。
-define filter:win-support=radius 代わりに窓関数をこのサイズにスケールする。これにより、窓掛け(または自己窓掛けの Lagrange フィルタ)が、呼び出し演算子に実際に供給されるより大きなサポート窓であるかのように振る舞う。ただしフィルタは指定された実サポートサイズにクリップされる。未設定なら通常のフィルタサポートサイズに等しい。
-define filter:verbose=1 IM が最終的な内部フィルタ選択の情報を標準出力に表示する。これには使われるフィルタ設定のコメント付きヘッダと、フィルタ重みを容易にグラフ化できるデータが含まれる。ただし一部のフィルタは内部的に他のフィルタで定義される点に注意。たとえば Lanczos フィルタは SincFast で窓掛けした SincFast フィルタとして、Mitchell は特定の 'B'・'C' 設定を持つ一般的な Cubic 系フィルタとして定義される。

たとえば、8 ローブの jinc 窓掛け sinc フィルタ(Genseng フィルタ?)を得るには:

magick image.png \
  -filter sinc \
  -set filter:window=jinc \
  -set filter:lobes=8 \
  -resize 150% image.jpg"

または 4 ローブの生の窓なし Sinc フィルタ:

magick image.png \
  -set filter:filter=sinc \
  -set filter:lobes=4 \
  -resize 150% image.jpg"

生の窓関数のデータを抽出するには、'Box' フィルタと組み合わせます。たとえば 'Welch' 放物窓関数:

magick null: -define filter:filter=Box \
  -define filter:window=Welch \
  -define filter:support=1.0 \
  -define filter:verbose=1 \
  -resize 2 null: > window_welch.dat
gnuplot
  set grid
  plot \"window_welch.dat\" with lines

なお、エキスパートオプションは、リサイズフィルタの動作を学び理解した画像処理の専門家向けに提供されています。この知識と、関係する実フィルタの定義の理解がないと、エキスパート設定を使うことはむしろ画像リサイズに有害になりがちです。

-flatten

これは -layers の "flatten" メソッドの単純なエイリアスです。

-flip

鏡像を作成します。

走査線を垂直方向に反転します。画像は上下が反転されます。

-floodfill {+-}x{+-}y color

指定したオフセットの位置から、画像を color でフラッドフィルします。

フラッドフィルは、gravity の影響を受けない指定の 'シードポイント' から始まります。指定した color 引数と -fuzz 色距離内で一致し、その 'シードポイント' に連結した任意の色が、現在の -fill 色で置き換えられます。

なお、'シードポイント' のピクセル自体が(-fuzz に従って)指定 color に一致しない場合、何も行われません。

この演算子は、'シードポイント' で一致色を直接読む一般的なフラッドフィルというより、-opaque オプションに近い動作をします。この形式のフラッドフィルには、-draw とその 'color floodfill' 描画メソッドを参照してください。

-flop

鏡像を作成します。

垂直の鏡に映る画像のように、走査線を水平方向に反転します。

-font name

テキストでの画像注釈やラベル作成時に使うフォントを設定します。

フォントの完全な一覧を表示するには -list font オプションを使います(6.3.6 より前のバージョンでは 'font' の代わりに 'type' を使う)。

上記の事前定義リストで指定されるフォントに加えて、特定のソースからフォントを指定することもできます。たとえば Arial.ttf は TrueType フォントファイル、ps:helvetica は PostScript フォント、x:fixed は X11 フォントです。

フォントに影響する他の設定は、-family, -stretch, -style, -weight オプションを参照してください。

明示的なフォントファイル名やコレクションを指定するには、フォントパスの前に @ を付けます(例: @arial.ttf)。フォントコレクションのフォントフェイスインデックスを指定できます(例: @msgothic.ttc[1])。

-foreground color

メニューや display の前景色を定義します。

色は -fill オプションで説明される形式で指定します。

既定の前景色は黒です。

-format type

画像フォーマットのタイプ。

mogrify ユーティリティと併用すると、このオプションは任意の画像を指定した画像フォーマットに変換します。ImageMagick がサポートする画像フォーマットタイプの一覧は -list format を使います。

既定ではファイルは元の名前で書き出されます。ただし、ファイル名の拡張子がサポート形式に一致する場合、拡張子は -format で指定した画像フォーマットタイプに置き換えられます。たとえば format タイプに tiff を指定し、入力画像ファイル名が image.gif なら、出力画像ファイル名は image.tiff になります。

-format expression

整形した画像特性を出力します。

このオプションの引数の指定方法の説明は 画像プロパティの整形と表示 を参照してください。

-frame geometry

画像を枠またはベベル(面取り)フレームで囲みます。

枠の色は -mattecolor コマンドラインオプションで指定します。

geometry 引数の詳細は 画像ジオメトリ を参照してください。ジオメトリ引数の size 部分は、画像の寸法に追加される余分な幅・高さの量を示します。ジオメトリ引数にオフセットがない場合、追加される枠は単色です。オフセット x と y があれば、枠の幅・高さが、厚さ x ピクセルの外側ベベルと厚さ y ピクセルの内側ベベルを成すよう分割されます。負のオフセットはフレーム引数として意味をなしません。

-frame オプションは現在の -compose 設定の影響を受け、既定の 'Over' 合成方式を使うことを前提とします。現在の -bordercolor 設定で適切なサイズの画像を生成し、現在の -mattecolor に近い 4 つの異なる色でフレームを描きます。次に元画像がこの画像の中央に重ねられます。つまり既定の 'Over' 合成方式では、透明部分が現在の -bordercolor 設定で置き換わることがあります。

画像合成は -gravity オプションの影響を受けません。

-frame

取り込んだ画像に X ウィンドウのフレームを含めます。

-function function parameters

チャンネル値に関数を適用します。

この演算子は、与えた引数に基づき計算を行い、画像の事前に設定された各 -channel の各色値を変更します。計算結果の扱いの詳細は -evaluate を参照してください。

これは -evaluate 演算子のマルチ引数版と考えられます。(ImageMagick 6.4.8−8 で追加。)

ここで parameters はカンマ区切りの数値リストです。値の数は選んだ関数によります。次から関数を選びます:

Polynomial
Sinusoid
Arcsin
Arctan

-function 演算子の完全な一覧を表示するには -list function を使います。以下に説明します。

Polynomial

Polynomial 関数は任意個のパラメータを取り、これらは次数の降順に並べた多項式の係数です。つまり、

-function Polynomial an,an-1,...a1,a0

と入力すると、次の多項式関数が呼び出されます。

a_n u^n + a_(n-1) u^(n-1) + ··· a_1 u + a_0,

ここで u はピクセルの元の正規化チャンネル値です。

Polynomial 関数は、-evaluate 演算子の Set(定数多項式)や Add・Divide・Multiply・Subtract(いくつかの線形多項式)の代わりに使えます。-level 演算子もチャンネルを線形に変えます。いくつかの対応を示します。

-evaluate Set value -function Polynomial value (定数関数。チャンネルが RGB のとき value×100% グレーに設定。)
-evaluate Add value -function Polynomial 1,value
-evaluate Subtract value -function Polynomial 1,−value
-evaluate Multiply value -function Polynomial value,0
+level black% x white% -function Polynomial A,B (コントラストを下げる。ここで A=(white-black)/100、B=black/100。)

多項式は任意の連続曲線を望む精度で当てはめられるため、Polynomial 関数は非常に汎用的です。

Sinusoid

Sinusoid 関数は、周波数・位相シフト・振幅・バイアスを設定して、チャンネル値を正弦波状に変化させるのに使えます。これらの値は次のように 1〜4 個のパラメータで与えます。

-function Sinusoid freq,[phase,[amp,[bias]]]

phase は度です。(関数の定義域 [0,1] は 0〜freq×360 度に対応します。)結果として、ピクセルの正規化チャンネル値が元々 u なら、結果の正規化値は次で与えられます。

amp * sin(2*π* (freq * u + phase / 360)) + bias

たとえば次は、0.9 で始まり 0.9 で終わり(それぞれ u=0 と 1 のとき)、.7−.2=.5 と .7+.2=.9 の間を 3 回振動する曲線を生成します。

-function Sinusoid 3,-90,.2,.7

amp と bias の既定値はともに .5、phase の既定は 0 です。

Sinusoid 関数は、振幅・位相・バイアスを変えられるようにすることで、-evaluate 演算子の Sin・Cos を一般化します。対応は次のとおりです。

-evaluate Sin freq -function Sinusoid freq,0
-evaluate Cos freq -function Sinusoid freq,90

ArcSin

ArcSin 関数は Sinusoid の逆曲線を生成し、円筒歪みや変位マップの生成に使えます。曲線は入力値と出力値の範囲の両方に対して調整できます。

-function ArcSin width,[center,[range,[bias]]]

すべての値は正規化色値(黒が 0.0、白が 1.0)で与えます。既定は入力(width)・出力(width)値とも 0.0〜1.0 の全範囲を覆う '1.0,0.5,1.0,0.5' です。

range/π * asin( 2/width * ( u - center ) ) + bias

ArcTan

ArcTan 関数は、指定した slope 値を使い、中心を通って無限大での極限値から滑らかに渡る曲線を生成します。これらの値はすべて引数で調整できます。

-function ArcTan slope,[center,[range,[bias]]]

既定は '1.0,0.5,1.0,0.5'。

range/π * atan( slope*π * ( u - center ) ) + bias

-fuzz distance{%}

この距離内の色は同一とみなされます。

多くのアルゴリズムが目標色を検索します。既定では色は正確に一致する必要があります。RGB 空間で目標色に近い色を一致させるにはこのオプションを使います。たとえば -trim で画像の縁を自動トリミングしたいが、画像がスキャンされ目標背景色がわずかに異なりうる場合、このオプションがその差を考慮できます。

distance は絶対強度単位、または % を付けると最大可能強度(255、65535、4294967295)に対するパーセンテージで指定できます。

fuzz 値を 0 にリセットするには +fuzz を使います。

-fx expression

画像または画像チャンネルに数式を適用します。

expression の最初の文字が @ の場合、式は残りの文字を名前とするファイルから読み込まれます。

このオプションの詳しい議論は FX、特殊効果画像演算子 を参照してください。

-gamma value

ガンマ補正のレベル。

同じカラー画像でも、2 つの異なるワークステーションで表示すると、ディスプレイモニターの違いにより異なって見えることがあります。この色の違いを調整するにはガンマ補正を使います。妥当な値は 0.8〜2.3 です。1.0 未満のガンマは画像を暗くし、1.0 より大きいガンマは明るくします。ピクセルの量子サイズが 8 ビット(量子範囲 0〜255)しかない場合、画像ガンマの大きな調整は画像情報の一部を失うことがあります。

ガンマは、べき乗則 pow(pixel,1/gamma) または pixel^(1/gamma) に従ってピクセル単位で画像のチャンネル値を調整します。ここで pixel は正規化(0〜1)の色値です。たとえば gamma=2 を使うのは、画像の平方根を取るのと同じです。

実際に画像ピクセルを調整せずに画像のガンマレベルを設定するには +gamma value を使います。このオプションは、画像のガンマが既知だが画像属性として設定されていない場合(PNG 画像など)に便利です。表示ガンマの逆数である「ファイルガンマ」を書きます。たとえば画像が sRGB で PNG の gAMA チャンクを書きたい場合:

magick input.png +gamma .45455 output.png

(0.45455 は 1/2.2)

ガンマ調整は -level 演算子でも利用できる点に注意してください。

-gaussian-blur radius

-gaussian-blur radius{xsigma}

ガウス演算子で画像をぼかします。

指定した Sigma 値を使い、画像をガウス分布(正規分布)で畳み込みます。式は次のとおりです:

gaussian distribution

sigma 値が重要な引数で、実際にどの程度ぼかすかを決めます。

radius は、計算されたガウス分布を保持する配列のサイズを決めるためにのみ使われます。整数であるべきです。指定しないか 0 に設定すると、IM はガウス分布に意味のある結果を与える最大の radius を計算します。

Radius が大きいほど処理は遅くなります。ただし Radius が小さすぎると、深刻なエイリアシング効果が生じることがあります。目安として、Radius は Sigma 値の少なくとも 2 倍にすべきですが、3 倍にするとより正確な結果になります。

これは、近傍ピクセルの加重平均を生成するのに完全な 2 次元畳み込みを使う点が、より高速な -blur 演算子と異なります。

画像本体の外側にあるピクセルが最終結果にどうぼかされるかは、-virtual-pixel 設定で決まります。

-geometry geometry

画像の希望するサイズと位置を設定します。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

-gravity type

さまざまな他の設定やオプションのための現在の gravity(位置の手がかり)を設定します。

選択肢には次があります: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast。お使いの ImageMagick で利用可能な -gravity 設定の完全な一覧は -list gravity で取得します。

選んだ方向は、テキストやサブ画像をどこに配置するかを指定します。たとえば gravity が Center だと、テキストは画像内の中央に配置されます。既定では画像の gravity は未定義です。グラフィックプリミティブの詳細は -draw を参照してください。-draw のうち text プリミティブのみが -gravity オプションの影響を受けます。

-gravity オプションは、-geometry 設定や、-crop オプションなどジオメトリを引数に取る他の設定・オプションと協調して使われます。

オフセットを指定するジオメトリ引数を持つ別のオプション・設定の前に -gravity 設定が来ると、オフセットは通常、-gravity 引数が示す画像内の点に適用されます。たとえば次のコマンドで、ファイル image.png の寸法が 200x100 だとします。-region の引数で指定したオフセットは (−40,+20) です。-gravity の引数は Center で、画像の中点 (100,50) を示します。オフセット (−40,20) がその点に適用され、(100−40,50+20)=(60,70) となり、指定した 10x10 領域はその点に配置されます。(加えて、-gravity は領域自体にも影響し、ピクセル座標 (60,70) を中心とします。geometry 引数の詳細は 画像ジオメトリ を参照してください。)

magick image.png -gravity Center -region 10x10-40+20 \
  -negate output.png

composite のオプションとして使うと、-gravity は画像が合成内のどこへ引き寄せられるかの方向を与えます。

montage のオプションとして使うと、-gravity は画像がタイル内のどこへ引き寄せられるかの方向を与えます。この用途の既定 gravity は Center です。

gravity を既定値に戻すには +gravity を使います。

-grayscale method

画像をグレースケールに変換します。

-intensity メソッドの 1 つを使って、与えた画像をグレースケール画像に変換します。

たとえば、画像を(線形の)Rec709Luminance グレースケールに変換するには:

magick in.png -grayscale Rec709Luminance out.png

これは次と同等です:

magick in.png -colorspace LinearGray out.png

同様に、画像を(非線形の)Rec709Luma グレースケールに変換するには:

magick in.png -grayscale Rec709Luma out.png

これは次と同等です:

magick in.png -colorspace Gray out.png

なお、'colorspace' 系の強度メソッドは画像の現在の色空間に関わらず同じ結果を生みます。一方 'mathematical' 系の強度メソッドは、画像が現在使っている色空間に依存します。

この操作は -intensity メソッドを使いますが、-intensity 設定を使ったり設定したりはしないので、その設定を使う他の操作には影響しません。

-green-primary x,y

緑の色度原色点。

-hald-clut

Hald カラールックアップテーブルを画像に適用します。

Hald カラールックアップテーブルは、2 次元にマップされた 3 次元のカラーキューブです。HALD: 接頭辞(例: HALD:8)で作成します。Hald 画像に任意の色変換を適用してから、このオプションでその変換を画像に適用できます。

magick image.png hald.png -hald-clut transform.png

このオプションは、Gimp や Photoshop で Hald CLUT 画像に色補正を行い、その後 ImageMagick スクリプトで複数画像にそれらを適用する便利な方法を提供します。

なお、表現は通常の RGB 色空間のみで、表現された Hald カラーキューブ画像の補間ルックアップには色値の三つ組全体が使われます。このため、この操作は -channel 設定の影響を受けず、画像の透明度やアルファ/マットチャンネルを調整・変更することもできません。

個々の色チャンネルの色値置換(通常はより単純なグレースケール画像を伴う)を提供する -clut も参照してください。例: グレースケールから色への置換、ヒストグラムマッピングによる変更。

-help

使用方法の説明を表示します。

-highlight-color color

画像比較時に、この色でピクセルの差分を強調します。

-hough-lines widthxheight{+threshold}

画像内の直線を識別します(例: -hough-lines 9x9+195)。

任意の 2 値エッジ抽出画像に Hough 直線検出器を使い、見つかった直線を特定して描画します。

この処理は、2 値エッジ画像の各白ピクセルについて、取りうるすべての向き(0〜179 度を 1 度刻み)と画像中心から隅までの距離(1 px 刻み)のカウントを累積します。カウントを角度対距離のアキュムレータ行列に格納します。アキュムレータのサイズは 180x(対角線/2) です。次にアキュムレータでカウントのピークを探し、ピークの位置を通常の x,y 入力画像空間での傾きと切片に変換します。アルゴリズムは傾き・切片を使い、画像の境界にクリップした端点を求めます。線は与えた端点から描かれます。カウントは線の長さの尺度です。

.

WxH 引数は、Hough アキュムレータのピークを探すフィルタサイズを指定します。threshold は、カウントがしきい値未満の線を除外します。

線を描く背景の色を指定するには -background を使います。既定は黒です。

線の色を指定するには -fill を使います。既定は黒です。

線の太さを指定するには -stroke と -strokewidth を使います。既定は黒で strokewidth なしです。

出力画像に拡張子 .mvg を使うと、端点とカウントを列挙したテキストファイルを作成できます。

線画像に加えてアキュムレータ画像を返すには -define hough-lines:accumulator=true を使います。

-iconGeometry geometry

アイコンのジオメトリを指定します。

ジオメトリ指定にオフセットがある場合、負のオフセットを X11 スタイルで扱う点も含め、-geometry オプションと同じ方法で扱われます。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

-iconic

X Windows でアイコンモードで起動します(animate、display 用)。

-identify

画像のフォーマットと特性を識別します。

既定では次の情報が表示されます:

  • 画像のシーン番号(0 でない場合)
  • 画像名
  • 画像フォーマット
  • 画像サイズ
  • 仮想ページオフセット
  • 色深度
  • 色空間
  • バイト単位のファイルサイズ
  • 画像識別に費やしたユーザー時間
  • 画像識別の経過時間

識別したい属性をカスタマイズするには -format を使います。

-colors も指定すると、画像内のユニーク色の総数と減色誤差値が表示されます。これらの値の説明は 減色アルゴリズム を参照してください。

このオプションの前に -verbose があると、画像統計・プロファイル・画像ヒストグラムなど、大量の画像プロパティが表示されます。

-ift

逆離散フーリエ変換(DFT)を実装します。

このオプションは ImageMagick 6.5.4-3 で新たに追加されました(ImageMagick 6.6.0-9 で Windows ユーザーでも動作するようになりました)。magnitude と phase の画像のペアを周波数領域から、通常(空間)領域の単一画像へ変換します。例として フーリエ変換離散フーリエ変換高速フーリエ変換 を参照してください。

たとえば、-fft の結果を格納するのに使った画像形式に応じて、次のいずれかを使います

magick fft_image.miff -ift fft_image_ift.png

または

magick fft_image-0.png fft_image-1.png -ift fft_image_ift.png

-fft や +fft の前に元画像が正方形でない、または偶数次元でなかった場合に導入されるパディングのため、結果画像は切り抜きが必要なことがあります。パディングは画像の右・下端にあります。

-ift の使用には FFTW デリゲートライブラリが必要です。

(HDRI 有効で)実部・虚部の画像のペアを周波数領域から通常(空間)領域の単一画像へ変換するには +ift を使います。

既定では IFT は正規化されません(FFT は正規化されます)。IFT を明示的に正規化し FFT を非正規化するには "-define fourier:normalize=inverse" を使います。

-illuminant method

基準光源。A, B, C, D50, D55, D65, E, F2, F7, F11 から選びます。

-immutable

画像を不変(immutable)にします。

-implode factor

中心に向かって画像ピクセルを内破させます。

-insert index

最後の画像を画像シーケンスに挿入します。

このオプションは、現在の画像シーケンスの最後の画像を取り、指定したインデックスに挿入します。負のインデックスを使う場合、挿入位置はシーケンスから最後の画像が取り除かれる前に計算されます。そのため -insert -1 は画像シーケンスに変化を生みません。

+insert オプションは -insert -1 と同等です。つまり、最後の画像を現在の画像シーケンスの末尾に挿入します。したがって画像シーケンスの順序に影響しません。

-intensity method

ピクセルから強度値を生成するメソッド。

ImageMagick は、赤・緑・青のピクセル成分を持つ画像から、何らかの目的のために単一のグレースケール値を決める必要がある場面で使うメソッドを多数提供します。通常は Rec709Luma の式が使われ、これは -colorspace gray へ画像を変換する際に使う式と同じです。

現在提供される式は次のとおりで、最終的なグレースケール値を計算する前に、まずピクセル値を線形 RGB または非線形 sRGB 色空間に変換します。

Rec601Luma
0.298839R' + 0.586811G'+ 0.114350B'
Rec601Luminance
0.298839R + 0.586811G + 0.114350B
Rec709Luma
0.212656R' + 0.715158G' + 0.072186B'
Rec709Luminance
0.212656R + 0.715158G + 0.072186B
Brightness
max(R', G', B')
Lightness
(min(R', G', B') + max(R', G', B')) / 2.0

上記の R,G,B 値は画像の線形 RGB 値で、R',G',B' は sRGB 非線形値である点に注意してください。

これらの強度メソッドは数学的な性質を持ち、その値が何であれ、画像が現在どの色空間を使っていようと、画像のそれぞれの R,G,B チャンネルの現在値を使います。

Average
(R' + G' + B') / 3.0
MS
(R'^2 + G'^2 + B'^2) / 3.0
RMS
sqrt( (R'^2 + G'^2 + B'^2) / 3.0 )

これらのメソッドは、2 つのカラー画像間のグレースケール差分画像の生成(-compose 'Difference' 合成を使用)など、他の目的にもよく使われます。

たとえば 'MS'(平均二乗)設定は色誤差の比較を最小化するのに適しています。一方、'RMS'(二乗平均平方根)メソッドは、色差分画像から色ベクトル距離を計算するのに適しています。これは -fuzz 係数の色比較設定の色のみの成分と同等です。

-intensity 設定を設定せずに上記のグレースケール化の式の 1 つを画像に直接適用する -grayscale も参照してください。

-colorspace gray の画像変換も現在の intensity 設定を使いますが、上記の関数を適用する前に必ず画像を適切な sRGB または線形 RGB 色空間に変換します。

可能なピクセル強度設定メソッドの完全な一覧を表示するには -list intensity を使います。

-intensity 設定の影響を受ける演算子には次が含まれます:

-adaptive-blur
-adaptive-sharpen
-black-threshold
-clut-channels で設定された場合、グレースケール CLUT 画像をアルファチャンネルにマップするとき)
-colorsgray 色空間の場合)
-compose {LightenIntensity, DarkenIntensity, CopyOpacity, CopyBlack}
-contrast-stretch
-distort {ErodeIntensity, DilateIntensity}
-normalize
-random-threshold
-range-threshold
-selective-blur
-shade
-threshold
-tint
-white-threshold

-intent type

画像の色を管理する際に、このタイプのレンダリングインテントを使います。

画像のカラーマネジメント操作に影響を与えるにはこのオプションを使います(-profile 参照)。次のインテントから選びます: Absolute, Perceptual, Relative, Saturation。

既定のインテントは、sRGB 色空間では Perceptual、RGB・gray 色空間では未定義です。

レンダリングインテントの完全な一覧を表示するには -list intent を使います。

-interlace type

インターレース方式のタイプ。

次から選びます:

none
line
plane
partition
JPEG
GIF
PNG

このオプションは、RGB や YUV などの生画像形式のインターレース方式のタイプを指定するために使います。

None はインターレースしない(RGBRGBRGBRGBRGBRGB...)、

Line は走査線インターレース(RRR...GGG...BBB...RRR...GGG...BBB...)、

Plane はプレーンインターレース(RRRRRR...GGGGGG...BBBBBB...)を使います。

Partition は plane に似ていますが、異なるプレーンが個別のファイルに保存されます(例: image.R、image.G、image.B)。

インターレース PNG・GIF やプログレッシブ JPEG 画像を作るには Line または Plane を使います。

インターレース方式の完全な一覧を表示するには -list interlace を使います。

-interline-spacing value

2 行のテキスト間の間隔。

-interpolate type

浮動小数点(実数)値に基づいて色をルックアップする際に使う、ピクセル色の補間方法を設定します。

非整数の浮動小数点値でピクセルの色をルックアップすると、通常はソース画像が定義するピクセル色の間に位置します。この設定は、その点の周囲のピクセル色からどう色を決めるかを決定します。つまり、2 つ(あるいは 4 つ)の異なる色のピクセルの間に位置する点の色をどう決めるかです。

average
周囲 4 ピクセルの平均色
average4
周囲 4 ピクセルの平均色
average9
周囲 9 ピクセルの平均色
average16
周囲 16 ピクセルの平均色

background

bilinear
ピクセルの二重線形補間(既定)

blend

catrom
周囲 16 ピクセルを当てはめた双三次スプライン
integer
左上ピクセルの色(floor 関数)
mesh
領域を 2 つの平坦な三角形補間に分割する
nearest-neighbor
ルックアップ点に最も近いピクセル(四捨五入関数)
spline
直接のスプライン曲線(色がぼける)

これは -distort、-implode、-transform、-fx などの歪み演算子で最も重要です。

補間方法の完全な一覧を表示するには -list interpolate を使います。

画像境界の外側の位置のルックアップ制御については -virtual-pixel も参照してください。

-interpolative-resize geometry

補間を使ってリサイズします。-interpolate 設定を参照してください。

-interword-spacing value

2 単語間の間隔。

-integral

画像内の値(ピクセル値)の総和を計算します。

-kerning value

2 文字間の間隔。

-kmeans colors{xiterations}{+tolerance}

Kmeans(反復)減色(例: -kmeans 5x300+0.0001)。colors は希望する色数です。初期色は色量子化で見つけます。iterations は反復停止数(既定 300)です。収束は反復間の色変化に対する停止しきい値(既定 0.0001)です。iterations か tolerance のいずれかに達すると処理が終わります。色を初期化するには -define kmeans:seed-colors=color-list を使います。color-list はセミコロン区切りのシード色リストです(例: -define kmeans:seed-colors="red;sRGB(19,167,254);#00ffff")。色リストは色量子化を上書きします。空でない色リストは色数を上書きします。割り当てられなかった初期色には、画像からランダムな色が割り当てられます。

-kuwahara radius

-kuwahara radius{xsigma}

エッジ保持型のノイズ低減フィルタ。

radius は sigma より重要です。sigma を省略すると、radius から自動的に sigma=radius-0.5 として計算されます。sigma は追加の平滑化制御を少し提供します。

-label name

画像にラベルを割り当てます。

読み込みまたは作成時に、画像に特定のラベルを割り当てるにはこのオプションを使います。すでに読み込んだ画像のラベルを再割り当てするには -set 操作を使えます。TIFF・PNG・MIFF などの画像形式は、ラベル情報を画像とともに保存できます。

画像を PostScript ファイルに保存する際、画像に割り当てられたラベルは、PostScript 画像の上に印刷するヘッダ文字列として使われます。

特殊フォーマット文字を埋め込むことで、画像のファイル名・タイプ・幅・高さなどの画像属性を含められます。パーセントエスケープコードの詳細は 画像プロパティの整形と表示 を参照してください。

たとえば、

-label "%m:%f %wx%h"  bird.miff

は、読み込み時に "bird.miff"(幅 512、高さ 480)画像に MIFF:bird.miff 512x480 という画像ラベルを割り当てます。代わりに +label オプションを使うと、画像に存在する既存のラベルが使われます。空文字列を割り当てると、画像からすべてのラベルを除去できます。

ラベルは画像上に描画されず、Label タグや類似の仕組みで画像データストリームに埋め込まれます。ラベルを画像自体に見えるようにしたい場合は、-draw オプションを使うか、画像モンタージュ作成の最終処理中に行います。

string の最初の文字が @ の場合、画像ラベルは残りの文字を名前とするファイルから読み込まれます。ファイル内のラベルはそのまま扱われ、埋め込みフォーマット文字は認識されません。

-lat width

-lat widthxheight{+-}offset{%}

局所適応しきい値処理を行います。

各ピクセルを、周囲の窓内のピクセル値に基づいて適応的にしきい値処理します。現在のピクセルがこの平均に任意のオフセットを足した値より明るければ白に、そうでなければ黒にします。スキャン文書に見られるようなピクセル値の小さな変動は、offset が正なら無視できます。負の offset はそうした小さな変動により敏感にします。

これは背景が一様でない画像のしきい値処理によく使われます。小さな窓の平均色が局所的な背景色であり、そこから前景色を分離するという仮定に基づいています。

-layers method

画像レイヤーやアニメーションフレームのセットを成す複数の画像を扱います。

重ね合わされた 'image layers'、GIF 破棄アニメーション、または完全に 'coalesce' されたアニメーションシーケンスを表しうる、順序付き画像シーケンスに対して、さまざまな画像操作メソッドを実行します。

メソッド 説明
compare-any 2 番目以降のフレームを、2 画像間のすべての差分を含む最小の矩形に切り抜く。GIF の -dispose メソッドは考慮されない。
これは -deconstruct 演算子とまったく同じで、特にアニメーションが 'Previous' や 'Background' などのレイヤー破棄メソッドを使う場合、アニメーションの通常の動作を保たない。
compare-clear 'compare-any' と同様だが、2 番目のフレームで透明になる不透明ピクセルの境界に切り抜く。つまり次のフレームのためにピクセルをマスク・消去するのに必要な最小の画像。
compare-overlay 'compare-any' と同様だが、色ピクセルの重ね合わせの結果として次の画像に色を追加するピクセルに切り抜く。つまり色を追加・変更する最小の単一の重ね画像。
これは -compose のアルファ合成メソッド 'change-mask' と併用し、画像を重ねる必要のあるピクセルだけに減らせる。
coalesce -coalesce 演算子の呼び出しと同等。現在の画像シーケンスに設定されたレイヤー破棄メソッドを適用し、表示されるべき完全に定義されたアニメーションシーケンスを形成する。事実上、GIF アニメーションを 'フィルムストリップ' 風のアニメーションに変換する。
composite "null:" 画像で区切られた 2 つの画像リストのアルファ合成。出力先画像リストが先、ソース画像が後。各リストから画像が、一方のリストが終わるまで合成される。区切り画像とソース画像リストは取り除かれる。
-geometry オフセットは、各リストの最初の画像の仮想キャンバスサイズに従い -gravity に応じて調整される。通常の -composite と違い、キャンバスオフセットも各画像の最終合成位置に加算される。
一方の画像リストが 1 枚だけの場合、その画像は(どちらのリストかに関わらず)もう一方のリストのすべての画像に適用される。この場合、保持されるのはそのリストの画像メタデータ。
dispose 'coalesce' に似ているが、次のサブフレーム画像が重ねられる前に、レイヤー破棄メソッドが適用された後のアニメーションの見た目を示す。つまり GIF の -dispose メソッドの適用で得られる 'dispose' 画像。開発中のアニメーションで何がうまくいっていないかを確認できる。
flatten 現在の -background 色で最初の画像の仮想キャンバスサイズのキャンバスを作り、各画像を順にそのキャンバスへ -compose する。そのキャンバスの外に出る画像は切り抜かれる。最終画像の仮想キャンバスオフセットは 0 になる。
通常、準備したすべての画像レイヤーを最終画像に重ねる最終的な 'image layering' 操作の 1 つとして使われる。
単一画像では、このメソッドは仮想キャンバスを実ピクセルで埋めたり、不透明色を下敷きにして画像から透明度を除去したりするのにも使える。
merge 'flatten' と同様だが、与えたすべての画像レイヤーをマージし、切り抜きや余分な空間なしにすべての画像を保持できるちょうどの大きさの新しいレイヤー画像を作る。新しい画像の仮想オフセットは、たとえ負でも新レイヤーの位置を保つ。最初の画像の仮想キャンバスサイズは保たれる。
負のオフセットを持つ画像レイヤーを扱う際は注意が必要。正しく扱える画像形式は少ない。この操作の後に +repage を続けるとレイヤーオフセットが除去され、重ねたすべての画像の相対位置が保たれた画像が作られる(ただし必ずしも指定どおりの位置とは限らない)。
密接に関連するが画像をマージする 'flatten' を行わない、下記の 'trim-bounds' も参照。
mosaic 'flatten' と同様だが、すべての画像レイヤーを保持するよう最初の画像の初期キャンバスサイズを正方向にのみ拡張する。ただし仮想キャンバスはその定義上、原点に '固定' されるため、負のオフセットを持つ画像レイヤーは上端・左端で切り抜かれる。問題になりうる場合は 'merge' か 'trim-bounds' を参照。
このメソッドは、最終キャンバスサイズを知らずに、さまざまなオフセットで個々の画像を配置するのによく使われる。結果画像は 'flatten' と同様に仮想オフセットを持たないので、任意の画像形式に保存できる。
optimize coalesce されたアニメーションを、多くの一般的技術を使って GIF アニメーションに最適化する。現在は 'optimize-frame' と 'optimize-transparency' の両メソッドを適用するショートカットだが、他の最適化メソッドが開発されれば拡張されうる。
optimize-frame coalesce されたアニメーションを、結果が正しくアニメーションし続けることを保証しつつ、最適なレイヤー破棄メソッドを選ぼうとしてフレームあたりのピクセル数をできるだけ減らすことで、GIF アニメーションに最適化する。
最良の最適化が見つかる保証はない。だがそもそも、合理的に高速な GIF 最適化アルゴリズムでこれを行えるものはない。ただし、これは他の多くの GIF フレーム最適化より良い結果を出すようだ。
optimize-plus 'optimize-frame' と同様だが、アニメーションの最終的な見た目やタイミングを変えずに、余分なフレームをアニメーションに追加して全体の最適化を改善しようとする。フレームは、あるフレームから次へのピクセルのクリアと新しい追加ピクセルの重ねを分離しようとして追加される。これが(次フレームのみの)最適化を改善しない場合、通常の 'optimize-frame' 技術の結果にフォールバックする。
破棄スタイルの変更が後のフレームの最適化を悪化させる可能性もあるが、これは起こりにくい。つまり通常の 'optimize-frame' 技術より良い保証はない。ただし一部のアニメーションでは、最終的なアニメーションサイズが大幅に改善されることがある。
optimize-transparency GIF アニメーションについて、サブフレーム重ね画像の任意のピクセルを、結果のアニメーションが現在の -fuzz 係数以上に変わらない限り、透明に置き換える。
これにより、既存のフレーム最適化済み GIF アニメーションが、最後のフレームの現在の破棄画像を繰り返す複数色のパターンではなく、より大きな単一(透明)色の領域となるため、より小さいファイルサイズに圧縮できるはず。
remove-dups 連続する重複画像を除去(し時間遅延をマージ)して、coalesce されたアニメーションのレイヤー重ねを簡素化する。
通常これは、アニメーション全体で一定の時間遅延を使った結果や、大きなアニメーションを小さなサブアニメーションに分割した後に生じる。重複フレームは一部のフレーム最適化メソッドの一部として使われたものかもしれない。
remove-zero 時間遅延が 0 の画像を除去する。ただしすべての画像の時間遅延が 0 の場合(適切な時間付きアニメーションでないため、警告が出る)は除く。
GIF アニメーションでは、こうした画像は通常、実際にユーザーに表示されるフレーム間の部分的な中間更新を提供するフレーム。これらのフレームは通常、GIF アニメーションのフレーム最適化改善のために追加される。
trim-bounds 現在の画像シーケンスのすべての画像の境界を求め、すべての画像が最小の正のキャンバスに収まるようオフセットを調整する。画像データは変更・マージされず、各画像の仮想キャンバスサイズとオフセットのみが変わる。すべての画像は同じキャンバスサイズになり、正のオフセットを持つが、互いの相対位置は保たれる。最小キャンバスサイズの結果、少なくとも 1 枚の画像がそのキャンバスの各辺に接する。ただしそれらの辺に接する画像データは透明かもしれない。
結果は、すべての画像を別々に保つ点を除けば、'merge' の後に +repage オプションを使った場合とほぼ同じ。'trim-bounds' の後に 'flatten' を使うと同じ結果になる。

レイヤータイプの完全な一覧を表示するには -list layers を使います。

演算子 -coalesce, -deconstruct, -flatten, -mosaic は上記メソッドのエイリアスにすぎず、将来非推奨になる可能性があります。-page, -repage 演算子、-compose 設定、GIF の -dispose・-delay 設定も参照してください。

-level black_point{,white_point}{%}{,gamma}

画像チャンネルのレベルを調整します。

カンマで区切った 1〜3 個の値: black-point, white-point, gamma(例: 10,250,1.0 や 2%,98%,0.5)を与えます。black・white 点は 0〜QuantumRange、または 0〜100% の範囲です。white 点を省略すると、コントラスト変化を中央化するよう (QuantumRange − black_point) に設定されます。文字列のどこかに % があると、black・white 点はともに全色範囲のパーセンテージになります。gamma は値に対して -gamma 調整を行います。省略すると既定の 1.0(ガンマ補正なし)が仮定されます。

通常の使い方(-level)では、元画像の指定 'black_point' 値が 0(黒)に、指定 'white_point' 値が QuantumRange(白)に設定されるよう、画像値が引き伸ばされます。これにより画像のコントラストを直接調整できます。その後、結果画像の 'gamma' が調整されます。

ImageMagick v6.4.1-9 以降、演算子の plus 形式(+level)を使うか、引数リストのどこかに特別な '!' フラグを加えると、演算子はレベル調整の逆を行います。つまり、元画像の 0 または QuantumRange 値(それぞれ黒・白)が指定したレベル値に調整され、画像内のチャンネル値をデコントラスト(圧縮)できます。'gamma' は、画像をデコントラストするレベル調整の前に調整されます。

現在の -channel 設定で定義されたチャンネルのみが調整されます(既定は RGB カラーチャンネルのみ)。これによりこの演算子の効果を限定できます。

透明度チャンネルは 'alpha' 値(0 が透明)ではなく 'matte' 値(0 が不透明)として扱われる点に注意してください。

-level-colors {black_color}{,}{white_color}

ダッシュ区切りで提供した色を使って画像のレベルを調整します。

この関数は -level とまったく同じですが、各カラーチャンネルの値が、与えた 'black_color'・'white_color'(-fill オプションで説明される形式)で決まる点が異なります。

これは実質的に、-level-colors に与えた色がそれぞれ '黒'・'白' になるようマップされ、他のすべての色がその変化に合わせて線形に調整(またはクリップ)されることを意味します。各チャンネルは、指定した色のチャンネル値を使って別々に調整されます。

一方、演算子の plus 形式(+level-colors)は、画像の色 '黒'・'白' をそれぞれ与えた色にマップし、画像をそれらの色へグラデーション(デコントラスト)着色します。これは、単純なグレースケール画像を、指定した色のグラデーションを使ったものに変換するのにも使えます。

色の前か後にカンマ区切りを付けて単一の色を与えると、それぞれ '黒' または '白' 点だけを置き換えます。カンマ区切りがない場合、与えた色が黒・白の両色点に使われ、演算子はその色の周りで画像をしきい値処理(- 形式)するか、すべての色をその色に設定(+ 形式)します。

-limit type value

ピクセルキャッシュのリソース上限を設定します。

次から選びます: width, height, area, memory, map, disk, file, thread, throttle, time。

file の値はファイル数です。他の上限はバイト単位です。memory・map・area・disk のリソース上限の引数は SI 接頭辞で定義します(例: 100MB)。

既定の上限は、768 ファイル、3GB の画像面積、1.5GiB のメモリ、3GiB のメモリマップ、18.45EB のディスクです。これらの上限は、情報が得られればコンピューターの利用可能リソースに応じて調整されます。いずれかの上限に達すると、ImageMagick は何らかの形で失敗しますが、可能なら補償的な動作を取ろうとします。たとえば次はメモリを制限します:

-limit memory 32MiB -limit map 64MiB

現在の上限を一覧表示するには -list resource を使います。たとえば、あるシステムでは次の上限が表示されます:

-> identify -list resource
Resource limits:
  Width: 100MP
  Height: 100MP
  Area: 25.181GB
  Memory: 11.726GiB
  Map: 23.452GiB
  Disk: unlimited
  File: 768
  Thread: 12
  Throttle: 0
  Time: unlimited

中間画像を保持するピクセルストレージの要求は、-limit 設定とシステムがリソース要求を尊重するかどうかに応じて、3 つのリソースカテゴリ(メモリ内プール、メモリマップファイルプール、ディスクプール、この順)のいずれかで満たされます。あるプールで確保済みのピクセルストレージの合計サイズが対応する上限に達すると、要求は次のプールへ渡されます。さらに、area 上限を超える要求は自動的にディスクに確保されます。

ImageMagick がリソース上限をどう利用するかを示すため、典型的な画像リソース要求を考えます。まず、ImageMagick はメモリにピクセルを確保しようとします。リソース要求が memory 上限を超えるか、システムが要求を尊重しない場合、要求は拒否されることがあります。メモリ要求が尊重されない場合、ピクセルはディスクに確保され、ファイルがメモリマップされます。ただし確保要求が map 上限を超えると、リソース確保はディスクへ行きます。いずれの場合も、リソース要求が area 上限を超えると、ピクセルは自動的にディスクにキャッシュされます。ディスクにハード上限があれば、プログラムは失敗します。

ほとんどの場合、リソース上限を気にする必要はありません。ImageMagick は妥当な既定を選び、ほとんどの画像はコンピューターリソースに負担をかけません。上限が役立つのは、大きな画像を処理する場合や、ImageMagick が利用可能メモリのすべて・大半を消費しうる共有システムの場合です。この場合、ImageMagick のワークフローは他のプロセスを遅くし、極端な場合システムを停止させます。こうした状況で上限を設定すると、ImageMagick のワークフローがコンピューターの他の同時利用を妨げないという保証がある程度得られます。たとえば、インターネットからアップロードされた画像を処理する Web インターフェースがあるとします。ImageMagick が 10MiB のメモリを超えないようにするには、area 上限を 10MiB に設定するだけです:

-limit area 10MB

これで大きな画像が処理されるたびに、ピクセルはメモリではなく自動的にディスクにキャッシュされます。もちろんこれは、メモリ内のピクセル処理がディスク上より桁違いに速いため、大きな画像は通常非常に遅く処理されることを意味します。Web サイトのユーザーがうっかり巨大な画像を処理用にアップロードするかもしれないので、disk 上限も設定すべきです:

-limit area 10MB -limit disk 500MB

ここでは、画像が 500MB を超えるディスクストレージを要する場合、ImageMagick は処理を停止します。

コマンドラインのリソース上限オプションに加えて、リソースは環境変数で設定できます。画像面積・ディスク容量・開いているファイル・ヒープメモリ・メモリマップ・実行スレッド数・最大経過秒数の上限には、それぞれ環境変数 MAGICK_AREA_LIMIT, MAGICK_DISK_LIMIT, MAGICK_FILE_LIMIT, MAGICK_MEMORY_LIMIT, MAGICK_MAP_LIMIT, MAGICK_THREAD_LIMIT, MAGICK_TIME_LIMIT を設定します。

なお、セキュリティポリシーに対して上限を厳しくできますが、緩めることはできません。

詳しく知りたいユーザーは、コマンドに -debug cache を加え、生成された出力からピクセルキャッシュへの参照を精査して、ピクセルキャッシュがどう確保され、リソースがどう消費されたかを判断できます。上級の Linux ユーザーは、その出力を grep memory|open|destroy|disk に通すとより読みやすく選別できます。

ImageMagick のリソース利用の詳細は、Architecture ページの Cache Storage and Resource Requirements セクションを参照してください。

-linear-stretch black-point

-linear-stretch black-point{xwhite-point}{%}

飽和を伴う線形引き伸ばし。

これは -contrast-stretch に非常に似ており、引き伸ばす必要のある色値の範囲を決めるのに 'ヒストグラムビン' を使います。ただし、その後 -level 演算子を使ってそれらの色を引き伸ばします。

そのため、初期の判定には 'ビニング' の丸め効果があるかもしれませんが、画像の色はヒストグラムビンではなく数学的に引き伸ばされます。これにより演算子はより正確になります。

ただし -linear-stretch の '0' は何もせず、値 '1' は色範囲をほぼ完璧に引き伸ばす点に注意してください。

数学的画像の '完璧な' 正規化には -auto-level も参照してください。

この演算子は再開発のため見直し中です。

-linewidth

後続の描画操作の線幅。

-liquid-rescale geometry

シームカービングで画像をリスケールします。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

-list type

さまざまなオプションや設定でサポートされる引数の一覧を表示します。次のリストタイプから選びます:

Align
Alpha
Boolean
Cache
Channel
Class
ClipPath
Coder
Color
Colorspace
Command
Complex
Compose
Compress
Configure
DataType
Debug
Decoration
Delegate
Direction
Dispose
Distort
Dither
Endian
Evaluate
FillRule
Filter
Font
Format
Function
Gravity
Intensity
Intent
Interlace
Interpolate
Kernel
Layers
LineCap
LineJoin
List
Locale
LogEvent
Log
Magic
Method
Metric
Mime
Mode
Morphology
Module
Noise
Orientation
PixelIntensity
Policy
PolicyDomain
PolicyRights
Preview
Primitive
QuantumFormat
Resource
SparseColor
Statistic
Storage
Stretch
Style
Threshold
Type
Units
Validate
VirtualPixel

これらのリストは ImageMagick のバージョンによって異なります。利用可能なすべての "-list" 引数の完全な一覧を取得するには "-list list" を使います:

magick identify -list list

-log string

デバッグログの書式を指定します。

このオプションは、-debug オプションが有効なときに表示されるログの書式を指定します。

特殊フォーマット文字を埋め込むことで、次の構成要素を表示できます:

%d
ドメイン
%e
イベント
%f
関数
%l
%m
モジュール
%p
プロセス ID
%r
実 CPU 時間
%t
実時間(壁時計時間)
%u
ユーザー CPU 時間
%%
パーセント記号
\n
改行
\r
復帰

たとえば:

magick -debug coder -log "%u %m:%l %e" in.gif out.png

既定の動作はすべての構成要素を表示します。

-loop iterations

GIF アニメーションに Netscape ループ拡張を追加します。

iterations を 0 に設定するとアニメーションを無限に繰り返し、そうでなければ最大 iterations 回繰り返します。

-lowlight-color color

画像比較時に、この色でピクセルの差分を目立たなくします。

-magnify

ピクセルアートスケーリングで画像のサイズを 2 倍または 3 倍にします。別のスケーリングメソッドを指定するには -define magnify:method=method を使います。次のメソッドから選びます: eagle2X, eagle3X, eagle3XB, epb2X, fish2X, hq2X, scale2X, scale3X, xbr2X。既定は scale2X です。

-map type

このタイプを使って画像を表示します。

次の Standard Colormap タイプから選びます:

best
default
gray
red
green
blue

X サーバーは選んだ Standard Colormap をサポートする必要があります。さもないとエラーになります。タイプに list を使うと、display は見つかるまでカラーマップタイプの一覧を上から下へ検索します。Standard Colormap の作成方法の一例は xstdcmap(1) を参照してください。

-map components

ピクセルマップ。

マップの有効な構成要素は次のとおりです:

r
赤ピクセル成分
g
緑ピクセル成分
b
青ピクセル成分
a
アルファピクセル成分(0 が透明)
o
不透明度ピクセル成分(0 が不透明)
i
グレースケール強度ピクセル成分
c
シアンピクセル成分
m
マゼンタピクセル成分
y
イエローピクセル成分
k
ブラックピクセル成分
p
パッド成分(常に 0)

必要なだけこれらの成分を任意の順序で指定できます(例: bgr)。成分は繰り返すこともできます(例: rgbr)。

-mattecolor color

-frame オプションで使う色を指定します。

色は -fill オプションで説明される形式で指定します。

既定のマット色は #BDBDBD(このグレーの濃淡)です。

-maximum

画像シーケンスの最大強度を返します。

周囲のすべてのピクセルから 'maximum'(最大)値を選びます。

これは同名のメソッドからのレガシーオプションです。

-median geometry

画像にメディアンフィルタを適用します。

周囲のすべてのピクセルから 'middle'(中央)値を選びます。

これは同名のメソッドからのレガシーオプションです。

-mean-shift widthxheight{+distance{%}

画像のノイズ除去と減色・セグメンテーション(例: -mean-shift 7x7+10%)。

widthxheight は窓サイズ、distance は 0〜1 または 0〜100% の範囲で測る色距離です。

平均値シフトアルゴリズムは反復的なので、窓サイズが大きいほど遅くなります。各ピクセルについて、そのピクセルを中心とする窓内の全ピクセルを取得し、半径 radius=sqrt((width-1)(height-1)/4) の外側にあるものを除外します。それらのピクセルから、現在の平均から指定した色距離の 2 乗以内にあるものを見つけます。次にそれらの座標から新しい x,y 重心と新しい平均を計算します。この新しい x,y 重心が新しい窓の中心として使われます。この処理は収束するまで反復され、最終的な平均が元のピクセル値の置換に使われます。次のピクセルについても同じ処理を繰り返し、画像のすべてのピクセルを処理するまで続けます。RGB より他の色空間を使う方が結果が良くなります。同等の結果を出すと思われる YIQ・YUV・YCbCr を推奨します。

-metric type

指定したタイプの指標に従って、画像間の差分の尺度を STDERR に出力します。

次から選びます:

AE
2 画像間のピクセル差分の大きさ(-fuzz の影響を受ける)
DPC
離散位相相関
DSSIM
構造的非類似度指数
FUZZ
平均色距離
MAE
平均絶対誤差(正規化)、平均チャンネル誤差距離
MEPP
ピクセルあたり平均誤差(正規化平均誤差、正規化ピーク誤差)
MSE
平均二乗誤差、チャンネル誤差の 2 乗の平均
NCC
正規化相互相関
PAE
ピーク絶対(正規化ピーク絶対)
PDC
2 画像間で値が異なるピクセルの総数(-fuzz の影響を受ける)
PHASE
位相相関
PHASH
sRGB と HCLp 色空間の知覚ハッシュ。別の色空間は -define phash:colorspaces=colorspace,colorspace,... で指定する
PSNR
ピーク信号対雑音比
RMSE
二乗平均平方根(正規化二乗平均平方根)
SSIM
構造的類似度指数

'AE'(ピクセルがどれだけ異なるか)と 'PDC'(何個のピクセルが異なるか)は -fuzz 係数で制御します(わずかしか変化していないピクセルを無視)。すべてのピクセルを '類似' にするのに必要な -fuzz 係数の大きさを見つけるには 'PAE' を、約半数のピクセルを類似にするのに必要な係数を決めるには 'MAE' を使います。

MEPP 指標は、単一の比較実行から 3 つの異なる指標('MAE'、'MAE' 正規化、'PAE' 正規化)を返します。

SSIM・DSSIM 指標は次の define を尊重します: -define compare:ssim-radius, -define compare:ssim-sigma, -define compare:ssim-k1, -define compare:ssim-k2。

指標の完全な一覧を表示するには -list metric オプションを使います。

-minimum

画像シーケンスの最小強度を返します。

周囲のすべてのピクセルから 'minimal'(最小)値を選びます。

これは同名のメソッドからのレガシーオプションです。

-mode geometry

各ピクセルを近傍の '最頻色' にします。

-mode value

操作モード。

次のスタイルから value を選びます: Frame, Unframe, Concatenate。

お使いの ImageMagick で利用可能な -mode 引数の一覧は、-list オプションに 'Mode' 引数を付けて使います。

-modulate brightness[,saturation,hue]

画像の明るさ・彩度・色相を変化させます。

引数は変化のパーセンテージで与えます。値 100 は変化なしを意味し、欠けた値は 100 とみなされます。

brightness は画像全体の明るさの乗数なので、0 は純黒、50 は半分の明るさ、200 は 2 倍の明るさです。意味を反転するには、前後で画像を -negate します。

saturation は画像内の色の量を制御します。たとえば 0 はグレースケール画像を、200 のような大きい値は非常に色鮮やかな 'アニメ調' の色を生みます。

hue 引数は、指定した量だけ画像内の色を「回転」させます。たとえば 50 は反時計回りに 90 度回転し、赤の色合いを紫にマップする、などです。0 または 200 は画像を完全に 180 度回転します。300 は 360 度回転で、元画像に変化はありません。

たとえば、色の明るさを 20% 上げ、彩度を 10% 下げ、色相を変えないには -modulate 120,90 を使います。

どの色空間で modulate するかを指定するには 'option:modulate:colorspace' 属性を -set します。HCL, HCLp, HSB, HSI, HSL(既定), HSV, HWB, LCH(LCHab)から選びます。たとえば、

magick image.png -set option:modulate:colorspace hsb -modulate 120,90 modulate.png

-moments

画像モーメントと知覚ハッシュを報告します。

-monitor

進捗を監視します。

-monochrome

画像を白黒に変換します。

-morph frames

画像シーケンスをモーフィングします。

現在の画像リストのすべての画像にわたって、ある画像から次への変容(メタモルフォーゼ)の見た目を与えるよう、画像ピクセルとサイズの両方が線形補間されます。追加される画像は -blend 合成に相当します。frames 引数は、各画像間に何枚の画像を補間するかを決めます。

-morphology

-morphology method kernel

画像にモルフォロジー手法を適用します。

IM Usage Examples, Morphology を参照してください。

-mosaic

-layers の "mosaic" メソッドの単純なエイリアスです。

-motion-blur radius

-motion-blur radius{xsigma}+angle

モーションブラーを模倣します。

指定した radius、標準偏差(sigma)、angle でぼかします。指定した angle は画像がぼかされる方向の角度です。つまり、対象がそこから来ていると人が考える方向です。

なお、ぼかしは一様分布ではなく、動きに明確な移動方向の感覚を与えます。

画像本体の外側にあるピクセルが最終結果にどうぼかされるかは、-virtual-pixel 設定で決まります。

-name

画像に名前を付けます。

-negate

各ピクセルを補色に置き換えます。

画像の赤・緑・青の強度が反転されます。白は黒に、黄は青に、などです。画像のグレースケールピクセルだけを反転するには +negate を使います。

-noise geometry

+noise type

画像のノイズを追加または低減します。

ノイズピーク除去フィルタの主な機能は、エッジ情報を失わず、不要な構造を作らずに、画像内のオブジェクトを平滑化することです。アルゴリズムの中心的な考え方は、あるピクセルがノイズと判定された場合、ピクセル窓内で値が次に近い隣接ピクセルでそのピクセルを置き換えることです。ピクセルは、ピクセル窓内で最大または最小である場合に限りノイズと定義されます。

ノイズ低減時の近傍幅を指定するには -noise radius を使います。これは -statistic NonPeak 操作を使うのと同等で、そちらを優先して使うべきです。

画像にノイズを追加するには +noise の後にノイズタイプを続けます。次のノイズタイプから選びます:

Gaussian
Impulse
Laplacian
Multiplicative
Poisson
Random
Uniform

追加されるノイズの量は -attenuate 設定で制御できます。未設定の場合、値は 1.0(最大のノイズ追加)に相当します。

なお Random は、画像にノイズを追加するのではなく画像をノイズで置き換えます。画像にランダムノイズを追加したい場合は Uniform を使います。

ノイズの完全な一覧を表示するには -list noise オプションを使います。

画像に追加すべきノイズ量を制御値で指定できる -evaluate のノイズ関数も参照してください。

-normalize

輝度値の範囲を引き伸ばして画像のコントラストを上げます。

輝度値が取りうる値の全範囲を覆うよう引き伸ばされます。その際、最大で 2% のピクセルを黒に、最大で 1% のピクセルを白にします。

なお ImageMagick 6.4.7-0 以降、-normalize は -contrast-stretch 2%x1% と同等です。(このバージョンより前は -contrast-stretch 2%x99% と同等でした。)

既定の +channel 設定が使われる場合、色の整合性を保つため、すべてのチャンネルが同じ量だけ協調して正規化されます。他の -channel 設定を指定すると、RGB チャンネルが独立して正規化されます。

詳細は -contrast-stretch を参照してください。数学的に生成された画像により適した '完璧な' 正規化には -auto-level も参照してください。

この演算子は再開発のため見直し中です。

-opaque color

画像内のこの色を塗りつぶし色に変えます。

color 引数は -fill オプションで説明される形式で定義します。-fuzz 設定を使って、与えた色に似た色を一致・置換できます。

目標色に一致しない任意のピクセルを塗るには +opaque を使います。

-transparent 演算子は -opaque とまったく同じですが、一致色を現在の -fill 色設定ではなく透明で置き換えます。これを確実に行うため、新しい透明色のために "-alpha set" のように画像のアルファチャンネルが有効であることも保証し、アルファチャンネル処理を有効にするために -channel を変更する必要はありません。

-ordered-dither threshold_map{,level...}

指定した事前定義の順序ディザしきい値マップと、カラーチャンネルあたり指定したレベル数を持つ一様カラーマップを使って、画像をディザリングします。

次の標準しきい値マップから選べます:

threshold   1x1   しきい値 1x1(ディザなし)
checks      2x1   市松模様 2x1(ディザ)
o2x2        2x2   順序 2x2(分散)
o3x3        3x3   順序 3x3(分散)
o4x4        4x4   順序 4x4(分散)
o8x8        8x8   順序 8x8(分散)
h4x4a       4x1   ハーフトーン 4x4(角度付き)
h6x6a       6x1   ハーフトーン 6x6(角度付き)
h8x8a       8x1   ハーフトーン 8x8(角度付き)
h4x4o             ハーフトーン 4x4(直交)
h6x6o             ハーフトーン 6x6(直交)
h8x8o             ハーフトーン 8x8(直交)
h16x16o           ハーフトーン 16x16(直交)
c5x5b       c5x5  円 5x5(黒)
c5x5w             円 5x5(白)
c6x6b       c6x6  円 6x6(黒)
c6x6w             円 6x6(白)
c7x7b       c7x7  円 7x7(黒)
c7x7w             円 7x7(白)

threshold は画像の単純な 50% しきい値を生成します。これは level と併用して、画像を基本的な原色に減らす -posterize と同等のことを行えます。

checks パターンは 3 レベルの市松ディザパターンを生成します。つまりグレースケールは、純黒・純白・中間調の色を黒白の市松模様にしたパターンになります。

個人用またはシステムの thresholds.xml XML ファイルで、画像の順序ディザリングやハーフトーン用の独自のしきい値マップを定義できます。設定ファイルの詳細は Resources を参照してください。

定義済みのしきい値の完全な一覧を表示するには -list threshold オプションを使います。

なお、現時点ではすべてのカラーチャンネルに同じしきい値ディザマップが使われ、オフセット印刷効果を作るためにチャンネルごとにマップをオフセット・回転する試みは行われません。また、マップは単純なしきい値レベルなので、ハーフトーンや円のマップは色付き領域の縁に沿って不完全な円を作ります。また、すべての効果は純粋に on/off の boolean 効果で、円を滑らかに見せるアンチエイリアスはありません。大きなドットは、作成後に少しぼかすと見栄えが良くなります。

-orient image orientation

デジタルカメラ画像の向きを指定します。

なお、これは設定です。向きのメタデータを設定するだけで、画像は変更しません。

許可される向きと、画像を再配向する EXIF コードと説明は次のとおりです:

Undefined
タグなし: 未定義
top-left
1: 何もしない
top-right
2: 水平反転
bottom-right
3: 180 度回転
bottom-left
4: 垂直反転
left-top
5: 90 度回転して水平反転(転置)
right-top
6: 90 度回転
right-bottom
7: 90 度回転して垂直反転(transverse)
left-bottom
8: 270 度回転

向きの完全な一覧を表示するには -list orientation オプションを使います。

-page geometry

-page media[offset][{^!<>}]
+page

より大きな仮想キャンバス上の画像のサイズと位置を設定します。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

便宜上、media を使ってページサイズを指定できます(下記参照)。その後、他のジオメトリ引数と同様にオフセットを加えられます(例: -page Letter+43+43)。

media は、PostScript ページの寸法(widthxheight)をドット単位で、または TEXT ページをピクセル単位で指定する省略表記として使います。用紙サイズの選択肢: 4x6, 5x7, 7x9, 8x10, 9x11, 9x12, 10x13, 10x14, 11x17, 4A0, 2A0, a0, a1, a2, a3, a4, a4small, a5, a6, a7, a8, a9, a10, archa, archb, archC, archd, arche, b0, b1, b10, b2, b3, b4, b5, b6, b7, b8, b9, c0, c1, c2, c3, c4, c5, c6, c7, csheet, dsheet, esheet, executive, flsa, flse, folio, halfletter, isob0, isob1, isob10, isob2, isob3, isob4, isob5, isob6, isob7, isob8, isob9, jisb0, jisb1, jisb2, jisb3, jisb4, jisb5, jisb6, ledger, legal, letter, lettersmall, monarch, quarto, statement, tabloid。72DPI での対応するピクセルサイズを調べるには、たとえば次のコマンドを使います:

magick xc: -format "%[papersize:a4]" info:

このオプションは、GIF89 や MNG などオフセットをサポートするマルチイメージ形式に書き出す際のサブ画像の配置にも使われます。この目的で使う場合、オフセットは常にキャンバスの左上隅から測られ、-gravity オプションの影響を受けません。GIF や MNG 画像を配置するには -page{+-}x{+-}y(例: -page +100+200)を使います。MNG ファイルに書き出す際、幅・高さが 0 でない -page オプションがシーケンスの最初の画像の前にあると、MHDR チャンクに書かれる幅・高さの値が定義されます。そうでなければ、MNG の幅・高さはシーケンス内の全画像を含む外接矩形から計算されます。GIF89 ファイルを書く際は、寸法の決定に外接矩形法のみが使われます。

PostScript ページでは、画像は -geometry と同様にサイズ調整されますが、ページの左下隅を基準に {+-}xoffset{+-}yoffset で配置されます。たとえば画像をページ内で中央化するには -page 612x792 を使います。画像サイズが PostScript ページを超える場合、ページに収まるよう縮小されます。-page オプションの既定 gravity は NorthWest、つまり -gravity オプションが NorthWest 以外の値で存在しない限り、正の x・y オフセットはページの左上隅から右・下方向に測られます。

TEXT 画像の既定ページ寸法は 612x792 です。

このオプションは -density と協調して使われます。

画像のページ設定を除去するには +page を使います。

ページサイズの完全な一覧を表示するには -list pagesize オプションを使います。

-paint radius

油絵を模倣します。

各ピクセルは、radius で幅を指定した円形近傍内で最も頻度の高い色に置き換えられます。

-path path

画像をディスク上のこのパスに書き出します。

-pause seconds

アニメーションループ間で一時停止します。

アニメーションを繰り返す前に、指定した秒数だけ一時停止します。

-pause seconds

スナップショット間で一時停止します。

次のスナップショットを撮る前に、指定した秒数だけ一時停止します。

-perceptible epsilon

値が |epsilon| 未満の各ピクセルを -epsilon または epsilon(近い方)に設定します。それ以外のピクセル値はそのままです。

-ping

次の画像特性を効率的に判定します: 画像番号、ファイル名、画像の幅と高さ、カラーマップ画像かどうか、画像の色数、画像のバイト数、画像のフォーマット(JPEG、PNM など)。正確な画像プロパティを確実に得るには +ping を使います。

-pointsize value

PostScript・X11・TrueType フォントのポイントサイズ。

-polaroid angle

ポラロイド写真を模倣します。

-15〜+15 度のランダムな角度で画像を回転するには +polaroid を使います。

-poly "wt,exp ..."

多項式の加重和に従って複数の画像を合成します。各画像について 1 つの浮動小数点の重み(係数)と 1 つの浮動小数点の多項式指数(べき)を、カンマ区切りの組で表します。

重みは通常 -1〜1 の分数であるべきです。ただし、非 HDRI モードで黒・白でのクランプを避けるため、重みの合計は 1、少なくとも 0〜1 であるべきです。

指数は正・負・0 のいずれでも構いません。負の指数は、画像を対応する正の指数でべき乗したものの逆数に相当します。0 の指数は、画像が何であれ、常に quantumrange でスケールされた白の 1、つまり wt*white を生みます。

書式は: output = wt1image1^exp1 + wt2image2^exp2 ... です。

簡単な使い方の例:

  • すべての重みの合計が 1 で、すべての指数が 1 の場合の、各画像の加重和。重みがすべて 1/(画像数) に等しい場合、これは -evaluate-sequence mean と同等です。
  • 重みが等しく(クランプを避けるため合計 1)、指数が 2 の場合の、2 枚以上の画像の二乗和。

なお、画像の 1 つに xc:somecolor を使い、希望する重みと指数 0 を指定するだけで、式に定数色を加えられます。

同様に、画像の 1 つに null:(または xc:white)を、適切な重みと指数 0 で使うだけで、式に白を加えられます。

-posterize levels

画像をチャンネルあたり限られた色レベル数に減らします。

levels の非常に低い値(例: 2, 3, 4)が最も顕著な効果を持ちます。

-precision value

表示する有効桁数の上限を設定します。

-preview type

画像プレビューのタイプ。

画像のプレビュー操作に影響を与えるにはこのオプションを使います(例: magick file.png -preview Gamma Preview:gamma.png)。次のプレビューから選びます:

AddNoise
Blur
Brightness
Charcoal
Despeckle
Dull
EdgeDetect
Gamma
Grayscale
Hue
Implode
JPEG
OilPaint
Quantize
Raise
ReduceNoise
Roll
Rotate
Saturation
Segment
Shade
Sharpen
Shear
Solarize
Spiff
Spread
Swirl
Threshold
Wave

プレビューの完全な一覧を表示するには -list preview オプションを使います。

既定のプレビューは JPEG です。

-print string

string を解釈してコンソールに出力します。

-process command

カスタム画像フィルタで画像を処理します。

command 引数は "module arg1 arg2 arg3 ... argN" の形式で、module は呼び出すモジュールの名前(例: "Analyze")、arg1 arg2 arg3 ... argN は process モジュールに渡す任意個の引数です。

-profile filename

+profile profile_name

画像内の ICM・IPTC・汎用プロファイルを管理します。

-profile filename を使うと、ICM(ICC カラーマネジメント)、IPTC(報道情報)、または汎用プロファイルを画像に追加します。

指定したプロファイルを除去するには +profile profile_name を使います。ImageMagick は標準のファイル名グロブを使うので、ワイルドカード式で 2 つ以上のプロファイルを除去できます。次は XMP プロファイル以外のすべてのプロファイルを画像から除去します: +profile "!xmp,*"。

画像ファイルにどのプロファイルがあるかを調べるには magick identify -verbose を使います。すべてのプロファイル(とコメント)を除去するには -strip を使います。

プロファイルを抽出するには、-profile オプションは使いません。代わりに、ファイルを APP1・8BIM・ICM・IPTC などの画像形式に書き出すだけです。

たとえば、Exif データ(JPEG ファイルでは APP1 プロファイルに格納される)を抽出するには次を使います。

変換精度を上げるには -define precision:highres-transform=true を設定します。なお、高精度変換は符号なしではなく浮動小数点なので、わずかな性能上のペナルティがあります。

magick cockatoo.jpg profile.exif

結果は、元画像にすでにプロファイルが含まれているかどうかに依存しうる点に注意してください。また、-profile は(「設定」ではなく)「演算子」なので、コマンドライン上で出現するたびに順に変換が行われる点に留意してください。たとえば次の例で、元画像がプロファイル付き CMYK だと、CMYK-CMYK-RGB の変換が起こります。

magick CMYK.tif -profile "CMYK.icc" -profile "RGB.icc" RGB.tiff

さらに、ICC プロファイルは必ずしも対称でないため、余分な変換ステップが望ましくない結果を生むことがあります。CMYK プロファイルは 3→4 および 4→3 のチャンネルマッピングを伴うため、しばしば非常に非対称です。

-quality value

JPEG・PNG・HEIC・WebP 画像ファイルの作成・保存時に圧縮品質を制御します。このオプションは画質とファイルサイズのトレードオフを管理するのに重要です。

JPEG・MPEG 画像形式では、quality は 1(最低画質・最高圧縮)〜100(最高画質だが圧縮効果は最小)です。既定では、判定できれば入力画像の推定品質を使い、できなければ 92 を使います。品質が 90 以上のとき、彩度チャンネルはダウンサンプリングされません。彩度ダウンサンプリングの係数を指定するには -sampling-factor オプションを使います。

JPEG-2000 画像形式では、quality は非線形の式で Jasper ライブラリが要求する圧縮比にマップされます。この非線形の式は、JPEG v1 形式が提供する品質をおおまかに近似することを意図しています。既定の品質値 100 は非可逆でない(可逆)圧縮の要求です。品質 75 は 16:1 圧縮の要求になります。

MNG・PNG 画像形式では、quality 値が zlib 圧縮レベル(quality / 10)とフィルタタイプ(quality % 10)を設定します。既定の PNG "quality" は 75 で、画像にカラーマップがない限り、適応 PNG フィルタリングを伴う圧縮レベル 7 を意味します(カラーマップがある場合は PNG フィルタリングなしの圧縮レベル 7)。

圧縮レベル 0(quality 値が 10 未満)では、Huffman のみの戦略が使われます。これは最速ですが、必ずしも最悪の圧縮ではありません。

filter-type が 4 以下の場合、指定した PNG filter-type がすべての走査線に使われます:

0
none
1
sub
2
up
3
average
4
Paeth

filter-type が 5 の場合、品質が 50 より大きく画像にカラーマップがないときは適応フィルタリングが使われ、そうでなければフィルタリングは使われません。

filter-type が 6 の場合、最小絶対値和の適応フィルタリングが使われます。

出力が MNG の場合に限り、filter-type が 7 だと、LOCO 色変換(画素内差分)と最小絶対値和の適応フィルタリングが使われます。

filter-type が 8 の場合、zlib の Z_RLE 圧縮戦略(圧縮レベル 0 のときは Z_HUFFMAN_ONLY 戦略)が適応 PNG フィルタリングとともに使われます。

filter-type が 9 の場合、zlib の Z_RLE 圧縮戦略(圧縮レベル 0 のときは Z_HUFFMAN_ONLY 戦略)が PNG フィルタリングなしで使われます。

圧縮は常に可逆なので、quality 設定は PNG・MNG 画像の見た目やシグネチャに影響しません。

圧縮レベル・戦略・PNG filter タイプのすべての組み合わせが -quality オプションで得られるわけではありません。より精密に制御するには、代わりに PNG:compression-level=N、PNG:compression-strategy=N、PNG:compression-filter=N の define をそれぞれ使えます。-define を参照してください。define の値は -quality オプションの値より優先されます。

詳細は PNG 仕様を参照してください。

MIFF・TIFF 画像形式では、quality/10 が Zip/BZip 圧縮レベルで、0(最悪だが最速の圧縮)〜9(最良だが最遅)です。圧縮は常に可逆なので、画像の見た目には影響しません。

BPG 画像形式では、quality/2 が実際の BPG 圧縮レベル(範囲 0〜51)です。

-quantize colorspace

この色空間を使って減色します。

この設定は、-colors などの演算子が(後のディザリングのために)画像が必要とする色数を整理・削減するのに使う色空間を定義します。なお、減色は GIF や PNG8 など色数が限られた画像ファイル形式に画像を保存する際にも自動的に起こります。

-quiet

すべての警告メッセージを抑制します。エラーメッセージは引き続き報告されます。

画像本体の外側にあるピクセルが最終結果にどうぼかされるかは、-virtual-pixel 設定で決まります。

-raise thickness

画像の縁を明るく、または暗くします。

これは立体効果を作ります。隆起した効果を作るには -raise を、そうでなければ +raise を使います。

似た -frame オプションと違い、-raise は画像の寸法を変えません。

-random-threshold lowxhigh

画像にランダムしきい値処理を適用します。

-range-threshold low-black,low-white,high-white,high-black

画像内の値の範囲内でハードまたはソフトのしきい値処理を行います。

-read filename

暗黙の読み込みではなく、画像を明示的に読み込みます。

このオプションを使うと、'オプション' 文字で始まり、そうでなければ(未知かどうかに関わらず)オプションと誤認されうるファイル名から読み込めます。

-read-mask filename

マスクで指定された画像ピクセルへの更新を防ぎます。

これは合成マスキング操作に使うマスクと同じで、グレースケール値がマスクが付いた画像のブレンドされた更新を引き起こします。

画像からマスクを除去するには +read-mask を使います。

同じように動作するが厳密な boolean マスキングを行う -clip-mask も参照してください。

-red-primary x,y

赤の色度原色点を設定します。

-regard-warnings

警告メッセージを重視します。

このオプションは、一部の画像形式の一部の警告をエラーとして扱わせます。

-remap filename

画像の色数を、この画像が使う色に減らします。

-dither 設定が有効(既定)なら、与えた色が必要に応じて画像上にディザリングされ、そうでなければ(RGB 色空間で)最も近い色が選ばれてそのピクセルを置き換えます。

現在の画像シーケンスのすべての画像にわたって色の -remap を適用する副作用として、すべての画像が同じカラーテーブルを持ちます。つまり GIF などの形式に保存すると、追加のローカルカラーテーブルを必要とせず、すべての画像に対してそのカラーテーブルを単一の共通(グローバル)カラーテーブルとして使います。

現在の画像シーケンスのすべての画像を、全画像にわたる共通カラーマップを使うよう減らすには +remap を使います。これは、すべての画像を(追加の背景色なしで)連結し、256 色制限の -colors でそれらの画像を減色してから、その色を元の画像リストに -remap するのと同等です。これにより、すべての画像が単一のカラーマップに従うことが保証されます。

すべての画像にわたる色数が 256 未満の場合、色の変更が不要なので +remap は減色やディザリングを行わないはずです。その場合の唯一の効果は、グローバルカラーテーブルの使用を強制することです。アニメーション画像シーケンスの色数を減らすため -colors や -ordered-dither を使った後にこれを推奨します。

なお、remap 画像のカラーマップは最大 8 ビットの精度です。より深いカラーマップは、この要件を満たすよう自動的に他の色と統合されます。

-region geometry

後続の操作が適用される領域を設定します。

x・y オフセットは -crop と同じ方法で扱われます。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

以前に設定した領域を除去するには +region を使います。

-remote

リモート操作を実行します。

認識される唯一のコマンドは、読み込む画像ファイルの名前です。

複数の display アプリケーションを同時に実行している場合、どのアプリケーションを制御するかを指定するには window オプションを使います。

-render

ベクター操作をレンダリングします。

ベクター操作のレンダリングを無効にするには +render を使います。これは結果を MVG や SVG などのベクター形式に保存する際に便利です。

-repage geometry

画像のキャンバスとオフセット情報を調整します。

このオプションは -page に似ていますが、設定ではなく画像演算子として動作します。それらの構成要素だけを与えることで、キャンバスサイズや、そのキャンバス上の画像のオフセットを個別に設定できます。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

! フラグを与えると、与えたオフセットが既存のオフセットに加算され、以前の位置を基準に画像が移動します。これはアニメーションシーケンスに便利です。

'0x0' のようにキャンバスサイズを 0 にすると、画像が(現在のオフセットで)そのキャンバス上に完全に表示されるよう、キャンバスサイズを再計算するよう強制します(負のオフセットがある場合を除く)。

画像から仮想キャンバスのメタデータを完全に除去・リセットするには +repage を使います。

仮想キャンバスのメタデータを直接割り当てるには -set 'page' オプションを使えます。

-resample horizontalxvertical

画像を指定した水平・垂直解像度に再サンプリングします。

指定した目標解像度で、レンダリングサイズが元と同じになるよう画像をリサイズします。たとえば 300 DPI 画像が 300 DPI デバイスで 3 インチ×2 インチにレンダリングされる場合、72 DPI に再サンプリングすると、72 DPI デバイスで 3 インチ×2 インチにレンダリングされます。なお、画像解像度を格納できる画像形式はわずか(JPEG、PNG、TIFF など)です。画像解像度をサポートしない形式では、再サンプリング解像度を指定する前に、コマンドラインで -density により元画像の解像度を指定する必要があります。

なお Photoshop は独自の埋め込みプロファイルから画像解像度を格納・取得します。このプロファイルが画像に存在すると、Photoshop は標準ファイルヘッダで指定された画像解像度を無視し、以前の解像度で画像を扱い続けます。

-reshape geometry

画像を再形成します。

-resize geometry

画像をリサイズします。

geometry 引数の詳細は 画像ジオメトリ を参照してください。ジオメトリ文字列にオフセットがあっても無視され、-gravity も効果がありません。

-resize オプションの前に -filter オプションや -define filter:option=value があると、指定した直交フィルタで画像がリサイズされます。

多くの画像処理アルゴリズムは、画像が線形ライトコーディングであることを前提とします。画像がガンマ補正されている場合、非線形ガンマ補正を取り除き、変換を適用してから、次のように復元できます:

magick portrait.jpg -gamma .45455 -resize 25% -gamma 2.2  \
  -quality 92 passport.jpg

なお、一部の再サンプリング関数は Sinc 関数の近似である減衰振動です。そのため、お使いの ImageMagick が HDRI 有効だと負のローブが生じることがあります。それらを除去するには、コマンドラインに -clamp を加えます。

-respect-parentheses

設定は括弧の境界まで有効に保たれます。

-reverse

現在の画像リスト内の画像の順序を反転します。

-roll {+-}x{+-}y

画像を指定した量だけ垂直または水平にロールします。

負の x オフセットは画像を右から左へロールします。負の y オフセットは画像を下から上へロールします。

-rotate degrees{<}{>}

画像に(せん断操作を使った)Paeth 画像回転を適用します。

幅が高さを超える場合のみ画像を回転するには > を使います。< は幅が高さより小さい場合のみ回転します。たとえば -rotate "-90>" を指定し画像サイズが 480x640 なら、画像は回転されません。しかし 640x480 なら -90 度回転されます。> や < を使う場合は、ファイルリダイレクトと誤解されないよう引用符で囲んでください。

画像の回転で残る隅の空の三角形は、背景色で埋められます。

-distort 演算子、特に 'ScaleRotateTranslate' 歪みメソッドも参照してください。

画像のページ(仮想キャンバス)情報も回転されます。仮想キャンバスのページ情報が不要なら +repage で除去してください。

-rotational-blur angle

画像の中心の周りでぼかします。

この操作は以前 "-radial-blur" と呼ばれていました。

-sample geometry

それぞれピクセルサブサンプリングとピクセル複製で画像を縮小・拡大します。

画像から元のピクセルを直接サンプリングするだけで、単純に画像サイズを変えます。拡大時はピクセルがブロック状に複製されます。縮小時はピクセルがサブサンプリングされます(つまり一部の行と列が飛ばされます)。

そのため結果は、-filter 設定を point(最近傍)にした -resize を使うのと同等ですが、-sample は画像のフィルタ処理をすべて回避するため、はるかに高速です。そのため現在の -filter 設定は完全に無視されます。

-sample の主な特徴は、一部の色が消えることはあっても、結果画像に新しい色が追加されないことです。

geometry 引数の詳細は 画像ジオメトリ を参照してください。-resize と違い、ジオメトリ文字列にオフセットがあっても無視されます。

実際のサンプリング点は、サンプリングされるサブ領域の中央です。そのため画像の単一ピクセルサンプリングは中央のピクセル(画像が偶数次元の場合は左上寄りの中央)を取ります。ただし -define 'sample:offset' を設定すると、サンプリングされる各サブ領域内の他の位置に、パーセントオフセットとしてこの位置を変更できます。

既定ではこの値は中点で '50' ですが、左上には '0'、右下には '100'、あるいは '0x50' のように別々の X・Y オフセットでサンプリングサブ領域の左中央の縁、などに設定できます。

-sampling-factor horizontal-factorxvertical-factor

JPEG・MPEG-2 エンコーダや YUV デコーダ/エンコーダが使うサンプリング係数。

このオプションは、JPEG エンコーダが彩度ダウンサンプリングに使うサンプリング係数を指定します。省略すると、JPEG ライブラリは独自の既定値を使います。YUV 形式の読み書き時や M2V(MPEG-2)形式の書き出し時に、4:2:2 ダウンサンプリング方式を指定するには -sampling-factor 2x1 または -sampling-factor 4:2:2 を使います。

-scale geometry

それぞれピクセルブロック平均化とピクセル複製で画像を縮小・拡大します。

縮小時はピクセルを平均化して、拡大時はピクセルを置換して、単純に画像サイズを変えます。

そのため結果は、-filter 設定を box にした -resize を使うのと同等です。ただし画像のフィルタ処理をすべて回避するため、はるかに高速です。そのため現在の -filter 設定は完全に無視されます。

画像を縮小する際、元画像が新しい画像サイズの整数倍であれば、新しいピクセル色を生成するために平均化されるピクセル数は画像全体で同じになります。これは 'binning' として知られる特別なケースで、特に低照度条件でデジタルカメラが生成するような画像のノイズ低減手法としてよく使われます。

-scene value

シーン番号を設定します。

このオプションは、画像または画像シーケンスの最初の画像のシーン番号を設定します。

-screen

キャプチャする画面を指定します。

このオプションは、画像取得に使う GetImage 要求を、指定したウィンドウで直接ではなくルートウィンドウで行うべきことを示します。これにより、指定ウィンドウに重なる他のウィンドウの一部を取得でき、さらに重要なことに、独立したウィンドウだが指定ウィンドウの上に現れるメニューやポップアップをキャプチャできます。

-script filename

指定したファイルへ制御を移します。

-seed

擬似乱数の新しい列のシードを設定します。

-segment cluster-thresholdxsmoothing-threshold

画像の色をセグメント化します。

色成分のヒストグラムを解析し、ファジィ c-means 法で均質な単位を識別して画像をセグメント化します。これは ImageMagick の色量子化ルーチンの一部です。

cluster threshold は、有効とみなされるために各クラスタ内のピクセル数が超えなければならない値として指定します。smoothing threshold はヒストグラムの 2 次導関数のノイズを除去します。値を大きくするほど、より滑らかな 2 次導関数が期待できます。既定は 1.5 です。

-verbose 設定が定義されていると、色クラスタの詳細なレポートが返されます。

-selective-blur radius

-selective-blur radius{xsigma}{+threshold}

コントラストしきい値内のピクセルを選択的にぼかします。

コントラストがしきい値以下のピクセルをぼかします。threshold は QuantumRange の分数またはパーセンテージで表せます。

sigma 値が重要な引数で、実際にどの程度ぼかすかを決めます。

radius は、計算されたガウス分布を保持する配列のサイズを決めるためにのみ使われます。整数であるべきです。指定しないか 0 に設定すると、IM はガウス分布に意味のある結果を与える最大の radius を計算します。

-separate

画像チャンネルをグレースケール画像に分離します。チャンネルは -channel で指定します。

-sepia-tone percent-threshold

セピア調の写真を模倣します。

threshold は強度のパーセントしきい値(0〜99.9%)として指定します。

このオプションは、写真の暗室でセピアトーニングによって得られる効果に似た特殊効果を画像に適用します。threshold は 0〜QuantumRange の範囲で、セピアトーニングの程度の尺度です。妥当なトーンには 80% のしきい値が良い出発点です。

-set key value

+set key

現在の画像シーケンスの画像に、画像属性とプロパティを設定します。

これは、現在の画像シーケンスのすべての画像に付随する特定の設定を割り当て(または変更)します。オプションの +set 形式を使うと、適切にその設定を除去するか既定状態にリセットします。

たとえば、-delay、-dispose、-page、-colorspace などのオプション(通常は画像読み込み前に同名のキーを使って割り当てられる)が上書きする、よく知られた特定の画像メタデータ 'attribute' を変更します。

与えたキーが上記のような既知の 'attribute' に一致しない場合、設定は自由形式の 'property' 文字列として格納されます。そうした設定は -verbose 情報("info:" 出力形式)に "Properties" として列挙されます。

これには、-comment、-label、-caption オプションで設定・割り当てられる文字列 'property' が含まれます。これらのオプションは実際にはグローバルな 'artifact' を割り当て、画像が読み込まれる際に自動的に割り当てられ(フォーマットパーセントエスケープが展開され)ます。例:

$ magick rose: -set Comment 'Rose is a rose is a rose is a rose' rose.jpg
identify -format %c rose.jpg
Rose is a rose is a rose is a rose

set 値は、定義値に 画像プロパティの整形と表示 を使うこともできます。例:

$ magick rose: -set origsize '%wx%h' -resize 50% \
  -format 'Old size = %[origsize]  New size = %wx%h' info:
Old size = 70x46  New size = 35x23

利用可能な他のよく知られた 'property' には次があります: date:timestamp, date:create, date:modify, signature。

-repage 演算子でも、すでにメモリ内にある画像の 'page' 属性を変更できます(-page も参照)。ただしこれは、この 'attribute' のサブ部分のより細かい制御を提供するよう設計されています。-set page オプションは 'page' 属性の直接的で無加工の割り当てのみを提供します。

このオプションは、画像に色空間やプロファイルを関連付けることもできます。たとえば、

magick image.psd -set profile ISOcoated_v2_eci.icc image-icc.psd

一部の 'property' は使うために特定の方法で定義する必要があります。たとえば "filename:" を接頭辞とする 'property' のみが、画像の出力ファイル名の変更に使えます。たとえば

magick rose: -set filename:mysize '%wx%h' 'rose_%[filename:mysize].png'

設定値に "option:" を接頭辞として付けると、-define オプションで設定したのとまったく同じように、設定はグローバルな "Artifact" として保存されます。そうした設定はグローバルスコープなので、ある特定の画像の 'attribute' や 'property' を、元画像がとうに変更・破棄された後でも、まったく別の画像で使える形で渡せます。例:

magick rose:  -set option:rosesize '%wx%h' -delete 0 \
  label:'%[rosesize]'   label_size_of_rose.gif"

なお、フォーマットパーセントエスケープは、与えたキーが既存の 'attribute' や 'property' に一致しない場合にのみ 'artifact' に一致します。

値に registry: を接頭辞として付けると、画像レジストリの属性を設定できます。

-set profile オプションは、下記のようにコマンドラインオプションを使うか、プログラミングインターフェースでプロファイルを設定して、事前に整形した補助チャンクを出力 PNG ファイルに注入するのにも使えます:

magick in.png -set profile PNG-chunk-x:<filename> out.png

ここで x は位置フラグ、filename は最初の 4 バイトにチャンク名、続いてコロン(":")、続いてチャンクデータを含むファイルです。このエンコーダはチャンク長と CRC を計算するので、それらをファイルに含めてはいけません。

"x" は "b"(PLTE の前)、"m"(中間、つまり PLTE と IDAT の間)、"e"(末尾、つまり IDAT の後)のいずれかです。同じタイプの複数チャンクを書きたい場合は、後続のプロファイルが先のものを上書きしないよう "x" の後に短い一意な文字列を加えます。例:

magick in.png -set profile PNG-chunk-b01:file01 \
  -profile PNG-chunk-b02:file02 out.png

-shade azimuthxelevation

遠方光源を使って画像に陰影を付けます。

azimuth(方位角)と elevation(仰角)を光源の位置として指定します。陰影結果をグレースケール画像として返すには +shade を使います。

-shadow percent-opacity{xsigma}{+-}x{+-}y{%}

画像の影を模倣します。

-shared-memory

共有メモリを使います。

このオプションは、ユーティリティが pixmap に共有メモリを使おうとすべきかどうかを指定します。ImageMagick は共有メモリサポート付きでコンパイルされ、ディスプレイは MIT-SHM 拡張をサポートする必要があります。さもないとこのオプションは無視されます。既定は True です。

-sharpen radius

-sharpen radius{xsigma}

画像をシャープにします。

指定した radius と標準偏差(sigma)のガウス演算子を使います。

sigma 値が重要な引数で、実際にどの程度シャープにするかを決めます。

radius は、計算されたガウス分布を保持する配列のサイズを決めるためにのみ使われます。整数であるべきです。指定しないか 0 に設定すると、IM はガウス分布に意味のある結果を与える最大の radius を計算します。

-shave geometry

画像の縁からピクセルを削ります。

ジオメトリ引数の size 部分は、画像の両側から除去する領域の幅と、上下から除去する領域の高さを指定します。オフセットは無視されます。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

-shear Xdegrees[xYdegrees]

画像を x 軸・y 軸に沿ってせん断します。

せん断角は正・負・0 のいずれでも構いません。Ydegrees を省略すると既定で Xdegrees になります。両方の角を与えると、せん断の水平成分が垂直成分の前に行われます。

せん断は、画像の一辺を x 軸または y 軸に沿って(つまりそれぞれ水平または垂直に)すべらせ、平行四辺形を作ります。各量は対応するせん断角で制御されます。水平せん断では、Xdegrees は "上"(負の y 軸)を基準に時計回りに測られ、0°<Xdegrees<90° で上辺を右へ、90°<Xdegrees<180° で左へすべらせます。垂直せん断では、Ydegrees は "右"(正の x 軸)を基準に時計回りに測られ、0°<Ydegrees<90° で右辺を下へ、90°<Ydegrees<180° で上へすべらせます。

せん断で残る空の三角形は、-background オプションで定義された色で埋められます。色は -fill オプションで説明される形式で指定します。

水平せん断は垂直部分の前に行われます。水平・垂直のせん断は可換でない、つまりせん断の列では順序が重要なので、これは留意すべき点です。たとえば、次の 2 つのコマンドは同等ではありません。

magick logo: -shear 20x0 -shear 0x60 logo-sheared.png
convert logo: -shear 0x60 -shear 20x0 logo-sheared.png

上記 2 つのうち最初のものは、作られる空白量を除いて次と同等です。次のコマンドはより小さい画像を生成するので、時間と空間の点でより良い選択です。

magick logo: -shear 20x60 logo-sheared.png

-sigmoidal-contrast contrastxmid-point

ハイライトや影を飽和させずにコントラストを上げます。

シグモイド伝達関数を使い、ハイライトや影を飽和させずに画像のコントラストを上げます。contrast はコントラストをどれだけ上げるかを示します。たとえば 0 はなし、3 は典型的、20 は大きいです。

mid-point は、コントラストの最大変化 'slope' が結果画像のどこに来るべきかを示します(0 は白、50% は中間グレー、100% は黒)。

既定では画像のコントラストが上がります。コントラストを下げるには +sigmoidal-contrast を使います。

シグモイドな明るさ変化(ガンマ調整に似る)の同等を得るには、明るさを上げるには -sigmoidal-contrast {brightness}x0%、下げるには +sigmoidal-contrast {brightness}x0% を使います。シグモイド曲線の mid-point に '0' を使う点に注意してください。

Using a very high contrast will produce a sort of 'smoothed thresholding' of the image. Not as sharp (with high aliasing effects) of a true threshold, but with tapered gray-levels around the threshold mid-point.

-silent

無音で動作します。このオプションは import ツールでのみ使われます。

-similarity-threshold value

サブ画像マッチングの最小 RMSE。

この設定を使うと、指標が value 以下となる一致を見つけ次第、検索は停止します。部分的に埋まった 2 番目の出力画像が得られます。値 0 を使うと、最初に見つけた完全一致で検索が停止します。この設定を省略すると、検索は完了するか -dissimilarity-threshold で制限されるまで進みます。

-size width[xheight][+offset]

画像の幅と高さを設定します。

GRAY・RGB・CMYK など寸法が不明な生画像の幅と高さを指定するにはこのオプションを使います。幅・高さに加えて、-size をオフセット付きで使うと、画像内のヘッダ情報をスキップしたり、MAP 画像ファイルの色数を伝えたりできます(例: -size 640x512+256)。

Photo CD 画像では、次のサイズから選びます:

192x128
384x256
768x512
1536x1024
3072x2048

-sketch radius

-sketch radius{xsigma}+angle

鉛筆スケッチを模倣します。

指定した radius、標準偏差(sigma)、angle でスケッチします。指定した angle は画像がスケッチされる方向の角度です。つまり、対象がそこから来ていると人が考える方向です。

-smush offset

透明度を無視して画像シーケンスを連結します。

smush は -append のより柔軟な版で、シーケンスの画像を上から下(-smush)または左から右(+smush)に、指定したオフセットに応じた間隔を空けて結合します。

オフセットが負の場合、画像はその量だけ重なります。

-smush は -gravity を尊重します。空白は -background 色で埋められます。

オフセット 0 で透明な画像の場合、2 つの画像の非透明部分が重ならないようできるだけ近づけて整列されます。

-snaps value

画面スナップショットの数を設定します。

アニメーションシーケンスを作るため、X サーバー画面から 2 枚以上の画像を取得するにはこのオプションを使います。

-solarize percent-threshold

しきい値レベルを超える全ピクセルを反転します。

factor は強度のパーセントしきい値(0〜99.9%)として指定します。

このオプションは、現像過程で写真フィルムを光に露光したときに見られるソラリゼーション効果を生みます。

-sort-pixels

各走査線内のピクセルを輝度の昇順にソートします。

-sparse-color method 'x,y color ...'

指定した色の点を使って画像を着色し、その間の他の色を指定したメソッドで埋めます。

barycentric
3 点が与えられた場合の 3 点三角形の色。2 点だけ与えるとそれらの点の間に線形グラデーションを形成する。生成されるグラデーションはその 3 点が作る三角形を超えて広がる。
bilinear
barycentric に似ているが 4 点用。4 点未満は barycentric にフォールバックする。
voronoi
各ピクセルを単に最も近い色の点にマップする。結果は単色の多角形 'セル' になる。
manhattan
voronoi に似ているが、結果の多角形 'セル' が固定座標系にマップされる。
shepards
逆 2 乗距離の比に基づいて点を着色する。色の平均の海の中に色の斑点を生成する。
inverse
逆距離の比に基づいて点を着色する。これは 'shepards' の丸い斑点ではなく、よりシャープな色の点を生成する。色の平均の海の中に色の斑点を生成する。

点は仮想キャンバス上の画像位置(-page や -repage のオフセット)に従って配置され、実際には与えた画像上に存在する必要はなく、画像の縁を超えた点でも構いません。すべての点は浮動小数点値です。

-channel で定義されたカラーチャンネルのみが変更されます。つまり既定ではマット/アルファ透明度チャンネルは影響を受けません。通常、透明度チャンネルは操作の前か後に無効化されます。

もちろん、透明グラデーションを生成するために一部の色の点が透明なら、値を格納するために画像も透明度が有効である必要があります。

上記のすべてのメソッドは、単一の色の点が与えられると、点に関わらず画像内のすべての色を与えた色で置き換えます。これは論理的で、画像を何らかの既定値に再着色する別の手法を提供します。

-splice geometry

現在の背景色を画像に差し込みます。

これは、指定した -gravity ジオメトリ設定に従って、現在の -background 色の行と列を与えた画像に追加します。geometry 引数の詳細は 画像ジオメトリ を参照してください。本質的に -splice は画像を 4 つの象限に分割し、挿入した行と列でそれらを分離します。

ジオメトリの一方の寸法が 0 なら、その寸法には行も列も追加されません。同様に、適切な -gravity 設定でオフセット 0 を使うと、画像の縁に行と列が追加され、その 1 つの辺に沿ってのみ画像がパディングされます。-splice が最もよく使われるのはこの辺のパディングです。

後でまったく同じジオメトリと -gravity を -chop で使うと、追加されたすべての splice が除去されます。

-spread amount

画像ピクセルをランダムな量だけ変位させます。

引数 amount は、ブレンドする候補ピクセルを選ぶ各ピクセル周辺の近傍のサイズを定義します。

ルックアップは -interpolate 設定で制御されます。

-statistic type geometry

各ピクセルを近傍の対応する統計値に置き換えます。

次の統計タイプから選びます:

Contrast
近傍内の最大差(max - min)を(max + min)値で割ったもの
Maximum
近傍内のチャンネルあたり最大値
Gradient
近傍内の最大差(max - min)値
Maximum
近傍内のチャンネルあたり最大値
Minimum
近傍内のチャンネルあたり最小値
Mean
近傍内のチャンネルあたり平均値
Median
近傍内のチャンネルあたり中央値
Mode
近傍内のチャンネルあたり最頻値
Nonpeak
近傍内のチャンネルあたり中央値の直前または直後の値
RMS
近傍内のチャンネルあたり二乗平均平方根値
StandardDeviation
近傍内のチャンネルあたり標準偏差値

-stegano offset

画像内に電子透かしを隠します。

オフセットを使い、画像の先頭から数ピクセル離れた位置から画像の隠蔽を始めます。このオフセットと画像サイズを控えておいてください。ステガノグラフィ画像の復元にこの情報が必要です(例: display -size 320x256+35 stegano:image.png)。

-stereo +x{+y}

2 つの画像を合成して赤/シアンのステレオアナグリフを作ります。

ステレオペアの左側(2 番目の画像)が出力画像の赤チャンネルとして保存されます。右側(最初の画像)が緑・青チャンネルとして保存されます。ステレオ画像を正しく見るには赤緑ステレオメガネが必要です。

-storage-type type

ピクセルストレージ型。有効な型は次のとおりです:

char
符号なし文字
double
倍精度
float
単精度
integer
整数
long
long
quantum
お使いの ImageMagick 配布物のネイティブ深度のピクセル
short
符号なし short

float・double 型は 0.0〜1.0 に正規化され、それ以外ではピクセル値は 0〜ストレージ型がサポートできる最大値の範囲になります。

-stretch fontStretch

フォントのストレッチスタイルのタイプを設定します。

この設定は、現在選択されているフォントファミリに ImageMagick が適用しようとすべきストレッチのタイプを示します。次から fontStretch を選びます。

Any
Condensed
Expanded
ExtraCondensed
ExtraExpanded
Normal
SemiCondensed
SemiExpanded
UltraCondensed
UltraExpanded

ストレッチタイプの完全な一覧を表示するには -list stretch を使います。

フォントに影響する他の設定は、-font, -family, -style, -weight オプションを参照してください。

-strip

画像からあらゆるプロファイル・コメント、または次の PNG チャンクを除去します: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date。向きチャンク orNT を除去するには、向きを undefined に設定します(例: -orient Undefined)。

-stroke color

グラフィックプリミティブの線(ストローク)に使う色。

色は -fill オプションで説明される形式で指定します。

詳細は -draw を参照してください。

-strokewidth value

線幅を設定します。

詳細は -draw を参照してください。

-style fontStyle

テキストのフォントスタイルを設定します。

この設定は、現在選択されているフォントファミリに ImageMagick が適用しようとすべきフォントスタイルを示します。次から fontStyle を選びます。

Any
Italic
Normal
Oblique

フォントに影響する他の設定は、-font, -family, -stretch, -weight オプションを参照してください。

サブ画像を検索します。

このオプションは、compare 機能が大きい画像内の小さい画像の最良一致位置を検索できるようにします。検索処理は、指標が高速化されているかどうかに応じて、1 つまたは 2 つの出力画像(フレーム)を生成します。

  • 1 つ目の出力は 差分 画像です。
  • 2 つ目の出力があれば、類似度スコア 画像です。

HDRI 有効でコンパイルされた ImageMagick を使い、FFTW デリゲートがインストールされている場合、特定の指標(NCCMSERMSEPSNRPHASEDPC)は FFT(高速フーリエ変換)処理で自動的に高速化されます。これが既定の動作です。ただし、フラグ -define compare:frequency-domain=false を使うと、FFT 高速化を無効にし、必要なら代わりにより遅い空間領域処理を選べます。

類似度スコア 画像は大きい画像の寸法に一致します。この出力の各ピクセルは、大きい画像内での小さい画像の左上隅の潜在的な位置を表します。類似度画像の最も明るい点が最良一致位置に対応します。FFT 高速化された指標では、この位置での類似度スコアも一致座標とともに角括弧内に表示されます。

類似度画像の最良一致が必ずしも完全一致を意味しない点に注意することが重要です。ピークの実際の明るさが一致の品質を反映します。さらに、類似度画像の他の明るいピークは、別の潜在的な一致位置を示すことがあります。

指標は 完全一致 の定義が異なります。MSERMSEPSNRMAEFUZZDSIMPHASH)のような指標では、完全一致は値 0 です。逆に、NCCPHASEDPCAEPDCPAEMEPPSSIM のような指標は完全一致を 1 と定義します。一貫性を保つため、完全一致が 0 の指標では類似度画像が反転され、完全一致が 1 の指標と同様に、最良一致位置が最も明るい点として現れるようになっています。

-swap index,index

画像シーケンス内の 2 つの画像の位置を入れ替えます。

たとえば -swap 0,2 は、現在の画像シーケンスの 1 番目と 3 番目の画像を入れ替えます。シーケンスの最後の 2 画像を入れ替えるには +swap を使います。

-swirl degrees

中心の周りで画像ピクセルを渦巻かせます。

degrees は渦の締まり具合を定義します。

-synchronize

画像をストレージデバイスに同期します。

すべての画像データを完全にフラッシュしてディスクに同期させるには "true" に設定します。性能上のペナルティはありますが、システムクラッシュ時に有効な画像ファイルを保証できる、画像ピクセルキャッシュ用のディスク容量が不足している場合に早期報告できる、といった利点があります。

-taint

画像を変更済みとマークします。

-text-font name

固定幅テキストを書くためのフォント。

固定(タイプライタ風)の整形テキストに使う優先フォントの名前を指定します。既定は 14 ポイントの Courier です。

フォントに、PostScript・TrueType・X11 フォントのいずれかを指定するタグを付けられます。たとえば Courier.ttf は TrueType フォント、x:fixed は X11 です。

-texture filename

画像背景にタイル状に敷くテクスチャの名前。

-threshold value{%}

画像に黒白同時しきい値処理を適用します。

指定したしきい値を超える任意のピクセル値(より具体的には -channel で設定されたチャンネル)は最大チャンネル値に、それ以外のすべての値は最小値に再割り当てされます。

しきい値は、パーセンテージ、または目的のチャンネル値に対応する絶対整数値で与えられます。整数で与えた場合、到達可能な最小値は 0(全チャンネルが対象のとき黒に対応)ですが、最大値(白に対応)は ImageMagick の特定ビルドの量子深度の値であり、したがってインストールに依存します。そのため、ほとんどのアプリケーションでは、しきい値をパーセンテージで指定するのが妥当な推奨です。

次は、赤値が 50% を超えるピクセルを赤値 100% に強制し、赤が 50% 以下のものは赤チャンネルを 0 に設定します。緑・青・アルファ(あれば)チャンネルは変わりません。

magick in.png -channel red -threshold 50% out.png

(おそらく)実用的でないが教育的な例として、次は入力画像と同じ寸法の真っ黒と真っ白の画像を生成します。

magick in.png -channel RGB -threshold 100% black.png
convert in.png -channel RGB -threshold -1 white.png

-black-threshold と -white-threshold も参照してください。

-thumbnail geometry

画像のサムネイルを作成します。

これは -resize に似ていますが、性能のために最適化されています。さらに、コメントとカラープロファイルが除去され、Thumb プロパティが設定されます。このオプションは -filter を尊重します。たとえば、わずかな品質低下と引き換えにさらなる性能を得るには -filter box を使います。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

-tile filename

後続のグラフィックプリミティブの塗りつぶしに使うタイル画像を設定します。

-tile geometry

画像のレイアウトを指定します。

geometry 引数の詳細は 画像ジオメトリ を参照してください。

-tile

後続の合成操作を画像の横方向・縦方向に繰り返すことを指定します。

-tile-offset {+-}x{+-}y

タイル画像のオフセットを、それがタイル化される背景画像を基準に指定します。

これは、-tile や -texture でタイル画像が設定される前に設定するか、TILE: や PATTERN: 入力形式を使ってタイルキャンバスを作成するために直接適用すべきです。

内部的には、ImageMagick はタイル画像が設定されるときに与えた引数だけタイル画像を -roll します。

-tint value

塗りつぶし色で画像を色づけします。

塗りつぶし色で画像を色づけします。

色づけの量をパーセンテージで指定します。黒・白・赤・黄のような純色は -tint の影響を受けません。さまざまなグレーの濃淡などの中間色のみが影響を受けます。

-title string

表示される画像にタイトルを割り当てます(animate、display、montage 用)。

画像に特定のタイトルを割り当てるにはこのオプションを使います。これは画像ウィンドウに割り当てられ、通常ウィンドウのタイトルバーに表示されます。任意で、-format オプションで説明される特殊フォーマット文字を埋め込むことで、画像のファイル名・タイプ・幅・高さ・Exif データ・その他の画像属性を含められます。

たとえば、

-title "%m:%f %wx%h"

は、bird.miff(幅 512、高さ 480)という画像に MIFF:bird.miff 512x480 という画像タイトルを生成します。

-transform

画像を変換します。

このオプションは、直前の -affine オプションの変換行列を適用します。

magick -affine 2,2,-2,2,0,0 -transform bird.ppm bird.jpg

この演算子は現在、-distort の 'AffineProjection' メソッドに取って代わられています。

-transparent color

画像内のこの色を透明にします。

color 引数は -fill オプションで説明される形式で定義します。-fuzz 設定を使って、与えた色に似た色を一致・置換できます。

一致したピクセルを反転するには +transparent を使います。つまり、一致しないすべての色を透明にします。

-opaque 演算子は -transparent とまったく同じですが、一致色を透明ではなく現在の -fill 色設定で置き換えます。ただし -transparent 演算子は、"-alpha set" のように画像のアルファチャンネルが有効であることも保証し、アルファチャンネル処理を有効にするために -channel を変更する必要はありません。

なお、これは GIF などのカラーマップ画像形式に使われる '透明色' として色を定義するものではありません。それには -transparent-color を使います。

-transparent-color color

透明色を設定します。

これは、GIF や PNG8 など、この色で boolean な透明度を表す画像形式への保存に使われることがあります。これは色を透明にするのではなく、保存される画像のカラーパレットで透明色がどの色かを定義するだけです。不透明色を透明にするには -transparent を使います。

このオプションを使うと、不透明な可視色と、同じ色値の透明色を、競合なく両方持てます。つまり、画像内の透明色領域と不透明色領域に同じ色を使えます。これにより、透明色インデックスを扱わないアプリケーションで画像が表示される際に適切な透明色を選べる一方、ImageMagick がこの種の画像を正しく扱えるようになります。

既定の透明色は #00000000、完全透明の黒です。

-transpose

画像を左上から右下への対角線に沿って鏡映します。

このオプションはピクセル配列を数学的に転置します。-flip -rotate 90 の列と同等です。

-transverse

画像を左下から右上への対角線に沿って鏡映します。-flop -rotate 90 の操作と同等です。

-treedepth value

減色アルゴリズムのツリー深度。

通常、この整数値は 0 か 1 です。0 または 1 の値は、減色アルゴリズムに最適なツリー深度を使わせます。

最適な深度は一般に、最速の計算速度と最小のメモリで、元画像の最良の表現を可能にします。ただし、既定の深度は一部の画像には不適切です。最良の表現を確実にするには、このパラメータに 2〜8 の値を試してください。詳細は 減色アルゴリズム を参照してください。

このオプションが効果を持つには、-colors や -monochrome オプション、または減色を必要とする画像形式への書き出しが必要です。

-trim

画像をトリミングします。

このオプションは、隅のピクセルとまったく同じ色の縁を除去します。隅のピクセルとほぼ同じ色の縁を -trim に除去させるには -fuzz を使います。

画像のページ(仮想キャンバス)情報は保持され、-trim 操作の結果を画像から抽出できます。仮想キャンバスのページ情報が不要なら +repage で除去してください。

トリミングされた画像が '消える' 場合、警告が出され、-crop 操作が画像本体を '外す' ときと同じように、特別な 1 ピクセルの透明な '外し' 画像が返されます。

画像からすべての背景を除去するには -define trim:percent-background=0% を使います。縁で許容される背景の量をパーセントで指定します。0% は背景を一切許容しないことを意味します。50% は、fuzz 係数による背景ピクセルを縁が最大 50% まで含められることを意味します。

画像の指定した縁だけをトリミングするには、カンマ区切りで -define trim:edges={north,east,south,west} を使います(例: -define trim:edges=north,south -fuzz 5% -trim)。

トリミングを指定サイズに制限するには -define trim:minSize=geometry を使います。

対象領域を囲む背景色を識別するには -background background-color を使います。

完全透明なピクセルは通常、色がない、または色が無関係であるかのように扱われます。両方とも完全透明な 2 つのピクセルを比較するとき、それらはしばしば等しいとみなされます。つまり、評価過程でそれらの色に関する属性は無視されます。

-type type

画像のタイプ。

次から選びます: Bilevel, Grayscale, GrayscaleAlpha, Palette, PaletteAlpha, TrueColor, TrueColorAlpha, ColorSeparation, ColorSeparationAlpha。

通常、形式がグレースケールやトゥルーカラーなどの異なるサブ形式をサポートする場合、エンコーダは効率的なサブ形式を選ぼうとします。-type オプションでこの挙動を上書きできます。たとえば、グレーのピクセルしかなくても JPEG がグレースケール形式で書かれるのを防ぐには次を使います。

magick bird.png -type TrueColor bird.jpg

同様に、出力形式が透明度をサポートする場合、画像が不透明でもエンコーダにアルファチャンネルを書かせるには -type TrueColorAlpha を使います。

画像を可能な限り小さいファイルサイズで書くことを保証するには -type optimize を使います。

-undercolor color

注釈の外接矩形の色を設定します。

色は -fill オプションで説明される形式で指定します。

詳細は -draw を参照してください。

-update seconds

画像ファイルの変更を検知して再表示します。

画像を表示している間に、現在表示中のファイルが上書きされたとします。display は入力ファイルが変更されたことを自動的に検知し、表示中の画像をそれに応じて更新します。

-unique-colors

同じピクセル色を 1 つだけ残してあとは破棄します。

-units type

画像解像度の単位。

次から選びます: Undefined, PixelsPerInch, PixelsPerCentimeter。このオプションは通常 -density オプションと併用されます。

-unsharp radius

-unsharp radius{xsigma}{+gain}{+threshold}

アンシャープマスク演算子で画像をシャープにします。

-unsharp オプションは画像をシャープにします。画像は指定した radius と標準偏差(sigma)のガウス演算子で畳み込まれます。妥当な結果には、radius は sigma より大きくすべきです。メソッドに適切な radius を選ばせるには radius 0 を使います。

sigma 値が重要な引数で、実際にどの程度シャープにするかを決めます。

radius は、計算されたガウス分布を保持する配列のサイズを決めるためにのみ使われます。整数であるべきです。指定しないか 0 に設定すると、IM はガウス分布に意味のある結果を与える最大の radius を計算します。

パラメータは次のとおりです:

radius
中心ピクセルを除いた、ガウスの半径(ピクセル単位、既定 0)。
sigma
ガウスの標準偏差(ピクセル単位、既定 1.0)。
gain
元画像とぼかし画像の差のうち、元画像に戻して加える割合(既定 1.0)。
threshold
差分量を適用するのに必要な、QuantumRange の分数としてのしきい値(既定 0.05)。

-verbose

このオプションを -identify オプションまたは info: の前に置くと、画像の詳細情報を表示します。

-version

ImageMagick のバージョン文字列を表示して終了します。

-view string

FlashPix の表示パラメータ。

-vignette radius{xsigma}{+-}x{+-}y{%}

画像の縁をビネット風に柔らかくします。

ビネット効果のロールオフは radiusxsigma で制御されます。名目上のロールオフには 0xsigma に設定します。0x0 の値はロールオフのない円/楕円を生みます。引数 x と y は円のサイズを制御します。大きい値は半径を減らし、小さい値は半径を増やします。+0+0 の値は画像と同じサイズの円/楕円を生成します。x と y の既定値は対応する画像寸法の 10% です。したがって半径は 10% 減り、つまり円/楕円の直径は対応する画像寸法の 80% になります。なお、ジオメトリ内のパーセント記号は x と y に影響し、radius と sigma は絶対値です(例: -vignette "0x2+10%+10%")。

-virtual-pixel method

仮想ピクセルの内容を指定します。

このオプションは、色のルックアップがソース画像を完全に '外した' 場合にどの色ソースを使うべきかを定義します。ソース画像を囲むように見える色です。一般にこの色はソース画像から導かれますが、特定の背景色に設定することもできます。

次のメソッドから選びます:

background
画像を囲む領域は背景色
black
画像を囲む領域は黒
checker-tile
画像と背景色の正方形を交互に
dither
非ランダムな 32x32 のディザパターン
edge
縁のピクセルを無限遠へ延長する
gray
画像を囲む領域はグレー
horizontal-tile
画像を水平にタイル化し、上下は背景色
horizontal-tile-edge
画像を水平にタイル化し、側面の縁ピクセルを複製する
mirror
画像を鏡映タイル化する
random
画像からランダムなピクセルを選ぶ
tile
画像をタイル化する(既定)
transparent
画像を囲む領域は透明な黒
vertical-tile
画像を垂直にタイル化し、側面は背景色
vertical-tile-edge
画像を垂直にタイル化し、側面の縁ピクセルを複製する
white
画像を囲む領域は白

既定値は "edge" です。

これは -distort、-implode、-fx などの歪み演算子で最も重要です。ただし、-convolve、-blur、-sharpen など、画像本体のすぐ外側のピクセルにアクセスしうる操作にも影響します。

仮想ピクセルタイプの完全な一覧を表示するには -list virtual-pixel オプションを使います。

-visual type

この X ビジュアルタイプで画像をアニメーション表示します(animate、display 用)。

次のビジュアルクラスから選びます:

StaticGray    TrueColor
GrayScale     DirectColor
StaticColor   default
PseudoColor   visual id

X サーバーは選んだビジュアルをサポートする必要があります。さもないとエラーになります。ビジュアルを指定しない場合、既定の画面で最も多くの色を同時表示できるビジュアルクラスが選ばれます。

-watermark brightnessxsaturation

指定した明るさと彩度のパーセンテージで画像に電子透かしを入れます。

(アルファマスク付きの)グレースケール画像を取り、透かし画像のグレースケール値と明るさのパーセンテージに従って出力先画像の明るさを変更します。出力先の彩度属性は彩度パーセンテージで直接変更されるだけで、既定は 100 パーセント(色変化なし)です。

-wave amplitude

-wave amplitudexwavelength

画像の列をサイン波にせん断します。

-wavelet-denoise threshold

-wavelet-denoise thresholdxsoftness

ウェーブレット変換で画像のノイズを除去します。threshold は、それ未満のものがすべてノイズとみなされる値で、0.0(なし)〜QuantumRange の範囲、またはパーセント(例: 5%)で指定します。softness はしきい値を減衰させ、通常 0.0(なし、既定)〜1.0 の範囲です。値が高いほど、画像に残るノイズが多くなります。

-weight fontWeight

テキストのフォントウェイトを設定します。

この設定は、現在選択されているフォントファミリに ImageMagick が適用しようとすべきフォントウェイトを示します。fontWeight には正の整数を使うか、次から選びます。

Thin
fontWeight = 100 と同じ。
ExtraLight
fontWeight = 200 と同じ。
Light
fontWeight = 300 と同じ。
Normal
fontWeight = 400 と同じ。
Medium
fontWeight = 500 と同じ。
DemiBold
fontWeight = 600 と同じ。
Bold
fontWeight = 700 と同じ。
ExtraBold
fontWeight = 800 と同じ。
Heavy
fontWeight = 900 と同じ。

ウェイトタイプの完全な一覧を表示するには -list weight を使います。

フォントに影響する他の設定は、-font, -family, -stretch, -style オプションを参照してください。

-white-balance

LAB 色空間でのグレーワールド仮定に従って、画像にホワイトバランスを適用します。

a・b チャンネルの色のバイブランスを変えるには -define white-balance:vibrance=value{%} を使います。

-white-point x,y

色度の白色点。

-white-threshold value{%}

しきい値を超えるすべてのピクセルを白にし、しきい値以下のすべてのピクセルはそのままにします。

しきい値は、パーセンテージ、または目的の -channel 値に対応する [0, QuantumRange] 内の絶対整数値で指定できます。しきい値と結果の値の詳細は -threshold を参照してください。

-window id

画像をウィンドウの背景にします(animate、display 用)。

id はウィンドウ ID または名前です。X のルートウィンドウを対象ウィンドウとして選ぶには root を指定します。

既定では画像は対象ウィンドウの背景にタイル化されます。backdrop や -resize が指定されると、画像は背景色で囲まれます。詳細は X RESOURCES を参照してください。

画像が対象ウィンドウのカラーマップが許可するより多くのユニーク色を持つ場合、画像はルートウィンドウに表示されません。色数を減らすには -colors を使います。

-window-group

ウィンドウグループを指定します。

-word-break type

テキストがコンテンツボックスをはみ出す箇所で改行するかを設定します。normal(既定)か break-word を選びます。

-write filename

画像シーケンスを書き出します。

-write filename オプションの前にある画像シーケンスが書き出され、追加のオプションがあれば同じ画像が現在の状態のまま処理が続きます。書き出した後に画像を元の状態に戻すには +write filename オプションを使います。

画像圧縮のタイプを指定するには -compress を使います。

-write-mask filename

マスクで指定された画像ピクセルへの更新を防ぎます。

これは合成マスキング操作に使うマスクと同じで、グレースケール値がマスクが付いた画像のブレンドされた更新を引き起こします。

画像からマスクを除去するには +write-mask を使います。

同じように動作するが厳密な boolean マスキングを行う -clip-mask も参照してください。