インストール • 概要 • サンプルスクリプト • 画像の読み込みまたは書き込み • 画像の操作 • 画像属性の設定 • 画像属性の取得 • 画像と再構築の比較 • 画像モンタージュの作成 • ブロブの操作 • 画像ピクセルへの直接アクセス • その他のメソッド • 例外処理• 定数
PerlMagickは、ImageMagickに対するオブジェクト指向のPerlインターフェースです。このモジュールを使用すると、Perlスクリプト内から画像または画像シーケンスを読み込み、操作、または書き込むことができます。そのため、Web CGIスクリプトに非常に適しています。PerlMagickを適切にビルドするには、システムにImageMagick 6.5.5以上とPerlバージョン5.005_02以上がインストールされている必要があります。
PerlMagickの価値を示す多くの便利なスクリプトが利用可能です。MagickStudioを使用してWebベースの画像操作と変換を行ったり、L-システムを使用して数学的な構造を用いて植物の画像を作成したり、最後にWebMagick Image Navigatorを使用してサムネイル画像のコレクションをナビゲートして表示する画像を選択したりできます。
ImageMagick StudioでWebブラウザからPerlMagickを試すことができます。または、サンプルからPerlMagickの選択された機能を確認できます。
インストール
UNIX
PerlMagickは、システムRPMリポジトリから入手できますか?たとえば、CentOSシステムでは、このようにPerlMagickをインストールします
yum install ImageMagick-perl
そうでない場合は、ImageMagickソースディストリビューションからPerlMagickをインストールする必要があります。最新のソースリリースをダウンロードしてください。
次のコマンドでディストリビューションを展開します
tar xvzf ImageMagick.tar.gz
次に、ImageMagickを構成してコンパイルします
$ cd ImageMagick-7.1.1
$ ./configure -with-perl
$ make
ImageMagick / PerlMagickが問題なく構成およびコンパイルされたら、システムにインストールする準備ができています。インストールには管理者権限が必要です。インストールするには、次のように入力します
sudo make install
動的リンカのランタイムバインディングを構成する必要がある場合があります
sudo ldconfig /usr/local/lib
最後に、PerlMagickのインストールが正しく機能することを確認するには、次のように入力します
perl -MImage::Magick -le 'print Image::Magick->QuantumDepth'
おめでとうございます。ImageMagickの動作ディストリビューションがあり、PerlMagickを使用して画像を変換、合成、または編集する準備ができました。
Windows XP / Windows 2000
ImageMagickはすでにシステムにインストールされている必要があります。また、Windows 2000用のImageMagickソースディストリビューションが必要です。Visual C++またはJ++開発環境からのnmakeも必要です。\bin\IMagick.dllと\bin\X11.dllを、c:\perl\site\5.00502などの動的ロードパスにあるディレクトリにコピーします。
次に、次のように入力します
cd PerlMagick perl Makefile.nt nmake nmake install
回帰テストの実行
インストールが正しいことを確認するには、次のように入力します
make test
Windowsでは、nmake testを使用します。PerlMagickが実行できる多くの機能を実行するためのいくつかのデモスクリプトがあります。次のように入力します
ビルドフォルダーからテストを実行するには、proveユーティリティを使用します
prove --blib blib -I `pwd` -bv ./t/read.t
cd demo make
これで、Perlスクリプト内からPerlMagickメソッドを利用する準備ができました。
概要
PerlMagickメソッドを使用するすべてのスクリプトは、まずその名前空間内でメソッドを定義し、イメージオブジェクトをインスタンス化する必要があります。これを行うには、次のようにします
use Image::Magick; $image = Image::Magick->new;
PerlMagickは量子を認識します。イメージオブジェクトをインスタンス化するときに、特定の量子深度をリクエストできます
use Image::Magick::Q16; $image = Image::Magick::Q16->new;
new()メソッドは、SetAttributeと同じパラメーターを受け取ります。たとえば、
$image = Image::Magick->new(size=>'384x256');
次に、画像または画像シーケンスを読み込み、操作してから、表示または書き込む必要があります。PerlMagickの入力および出力メソッドは、画像の読み込みまたは書き込みで定義されています。画像の読み取りまたは書き込み方法に影響を与えるメソッドについては、画像属性の設定を参照してください。画像を変換するためのメソッドのリストについては、画像の操作を参照してください。画像属性の取得では、画像の属性を取得する方法について説明します。背景にサムネイルとして画像をタイル表示する方法の詳細については、画像モンタージュの作成を参照してください。最後に、一部のメソッドは、上記で説明したカテゴリのいずれにもうまく適合しません。これらのメソッドのリストについては、その他のメソッドを確認してください。
PerlMagickオブジェクトが不要になったら、破棄することを検討する必要があります。画像シーケンス内の各画像は仮想メモリに格納されます。これにより、最大でメビバイトのメモリが追加される可能性があります。PerlMagickオブジェクトを破棄すると、メモリは他のPerlメソッドで使用するために返されます。オブジェクトを破棄する推奨される方法は、undefを使用することです
undef $image;
すべての画像を削除するが、Image::Magickオブジェクトを保持するには、次のように使用します
@$image = ();
最後に、複数画像シーケンスから単一の画像を削除するには、次のように使用します
undef $image->[$x];
次のセクションでは、さまざまなPerlMagickメソッドを使用して画像シーケンスを操作する方法について説明します。
PerlMagickメソッドの一部には、Ghostscriptなどの外部プログラムが必要です。これを適切に動作させるには、PATH環境変数に明示的なパスが必要になる場合があります。たとえば(Linuxの場合)、
$ENV{PATH}' . "='/../bin:/usr/bin:/usr/local/bin';
サンプルスクリプト
開始するためのサンプルスクリプトを次に示します
#!/usr/local/bin/perl use Image::Magick;
my($image, $x);
$image = Image::Magick->new; $x = $image->Read('girl.png', 'logo.png', 'rose.png'); warn "$x" if "$x";
$x = $image->Crop(geometry=>'100x100+100+100'); warn "$x" if "$x";
$x = $image->Write('x.png'); warn "$x" if "$x";
スクリプトは3つの画像を読み取り、それらを切り抜いて、単一の画像をGIFアニメーションシーケンスとして書き込みます。多くの場合、シーケンスの個々の画像にアクセスする必要がある場合があります。次の例では、これがどのように行われるかを示します
#!/usr/local/bin/perl use Image::Magick;
my($image, $p, $q);
$image = new Image::Magick; $image->Read('x1.png'); $image->Read('j*.jpg'); $image->Read('k.miff[1, 5, 3]'); $image->Contrast(); for ($x = 0; $image->[$x]; $x++) { $image->[$x]->Frame('100x200') if $image->[$x]->Get('magick') eq 'GIF'; undef $image->[$x] if $image->[$x]->Get('columns') < 100; } $p = $image->[1]; $p->Draw(stroke=>'red', primitive=>'rectangle', points=>20,20 100,100'); $q = $p->Montage(); undef $image; $q->Write('x.miff');
中央に赤いピクセルがある100 x 100ピクセルの白いキャンバスから開始するとします。次を試してください
$image = Image::Magick->new; $image->Set(size=>'100x100'); $image->ReadImage('canvas:white'); $image->Set('pixel[49,49]'=>'red');
ここでは、(1,1)での赤色の成分の強度を半分に減らします
@pixels = $image->GetPixel(x=>1,y=>1); $pixels[0]*=0.5; $image->SetPixel(x=>1,y=>1,color=>\@pixels);
または、カラー画像をグレースケールに変換するとします
$image->Quantize(colorspace=>'gray');
Taipai TrueTypeフォントで画像に注釈を付けましょう
$text = 'Works like magick!'; $image->Annotate(font=>'kai.ttf', pointsize=>40, fill=>'green', text=>$text);
おそらく、画像からすべてのピクセル強度を抽出し、それらをSTDOUTに書き込みたいと考えています
@pixels = $image->GetPixels(map=>'I', height=>$height, width=>$width, normalize=>true); binmode STDOUT; print pack('B*',join('',@pixels));
PerlMagickオブジェクトで実行できる他の巧妙な操作には、次のようなものがあります
$i = $#$p"+1"; # return the number of images associated with object p push(@$q, @$p); # push the images from object p onto object q @$p = (); # delete the images but not the object p $p->Convolve([1, 2, 1, 2, 4, 2, 1, 2, 1]); # 3x3 Gaussian kernel
画像の読み込みまたは書き込み
以下のメソッドを使用して、画像または画像シーケンスを読み取り、書き込み、または表示します
メソッド | パラメーター | 戻り値 | 説明 |
---|---|---|---|
Read | 1つ以上のファイル名 | 読み込まれた画像の数 | 画像または画像シーケンスを読み取る |
Write | ファイル名 | 書き込まれた画像の数 | 画像または画像シーケンスを書き込む |
Display | サーバー名 | 表示された画像の数 | 画像または画像シーケンスをXサーバーに表示する |
Animate | サーバー名 | アニメーション化された画像の数 | 画像シーケンスをXサーバーにアニメーション化する |
便宜上、Write()、Display()、Animate()メソッドは、SetAttributeが認識するパラメーターを受け取ることができます。たとえば、
$image->Write(filename=>'image.png', compression=>'None');
メソッドRead()で標準入力から読み取るか、メソッドWrite()で標準出力に書き込む場合は、ファイル名として-を使用します
binmode STDOUT; $image->Write('png:-');
PERLファイルハンドルからGIF形式で画像を読み取るには、次のように使用します
$image = Image::Magick->new; open(IMAGE, 'image.gif'); $image->Read(file=>\*IMAGE); close(IMAGE);
PERLファイルハンドルにPNG形式で画像を書き込むには、次のように使用します
$filename = "image.png"; open(IMAGE, ">$filename"); $image->Write(file=>\*IMAGE, filename=>$filename); close(IMAGE);
注:ImageMagickとActiveState Perlディストリビューション間でCランタイムライブラリのバージョンが異なる場合、またはDLLの1つが/MTオプションでリンクされている場合、WindowsではPerlファイルハンドルからの読み取りまたは書き込みが失敗する可能性があります。詳細については、DLL境界を越えてCRTオブジェクトを渡す場合の潜在的なエラーを参照してください。
ファイル名に%0Nd、%0No、または%0Nxが表示されている場合、printf形式の指定として解釈され、指定された10進数、8進数、または16進数のシーン番号エンコードに置き換えられます。たとえば、
image%03d.miff
ファイルimage000.miff、image001.miffなどを変換します。
オプションで、任意のメソッド名にImageを追加できます。たとえば、ReadImage()はメソッドRead()のエイリアスです。
画像の操作
たとえば、メソッドReadImage()で画像を作成したら、その画像を操作する必要があります。以下は、PerlMagickで使用できるすべての画像操作メソッドのリストです。選択されたPerlMagickメソッドのサンプルがあります。画像操作メソッドの呼び出し例を次に示します
$image->Crop(geometry=>'100x100+10+20'); $image->[$x]->Frame("100x200");
また、呼び出すことができるその他の画像操作メソッドのリストを次に示します
メソッド | パラメーター | 説明 |
---|---|---|
AdaptiveBlur | geometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 指定された半径と標準偏差(シグマ)のガウス演算子で画像を適応的にぼかします。エッジ付近の効果を低下させます。 |
AdaptiveResize | geometry=>geometry, width=>integer, height=>integer, filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=>double, blur=>double | データ依存の三角測量を使用して画像を適応的にサイズ変更します。blur > 1を指定するとぼやけ、< 1を指定するとシャープになります。 |
AdaptiveSharpen | geometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 指定された半径と標準偏差(シグマ)のガウス演算子で画像を適応的にシャープにします。エッジ付近の効果を増加させます。 |
AdaptiveThreshold | geometry=>geometry, width=>integer, height=>integer, bias=>double | ローカルな適応型閾値処理。 |
AddNoise | noise=>{Uniform, Gaussian, Multiplicative, Impulse, Laplacian, Poisson}, attenuate=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 画像にノイズを追加します |
AffineTransform | affine=>float値の配列, translate=>float, float, scale=> float, float, rotate=>float, skewX=>float, skewY=>float, interpolate={Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor}, background=>色名 | アフィン変換画像 |
Affinity | image=>image-handle, method=>{None, FloydSteinberg, Riemersma} | この画像から特定の色セットを選択します |
Annotate | text=>string, font=>string, family=>string, style=>{Normal, Italic, Oblique, Any}, stretch=>{Normal, UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, SemiExpanded, Expanded, ExtraExpanded, UltraExpanded}, weight=>integer, pointsize=>integer, density=>geometry, stroke=>色名, strokewidth=>integer, fill=>色名, undercolor=>色名, kerning=>float, geometry=>geometry, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, antialias=>{true, false}, x=>integer, y=>integer, affine=>float値の配列, translate=>float, float, scale=>float, float, rotate=>float. skewX=>float, skewY=> float, align=>{Left, Center, Right}, encoding=>{UTF-8}, interline-spacing=>double, interword-spacing=>double, direction=>{right-to-left, left-to-right}, decorate=>{none, underline, overline, line-through}, word-break=>{normal, break-word} | 画像にテキストで注釈を付けます。テキストをレンダリングせずにフォントメトリックを取得するには、QueryFontMetricsを参照してください。 |
AutoGamma | channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 画像のガンマレベルを自動的に調整します |
AutoLevel | channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 画像のカラーレベルを自動的に調整します |
AutoOrient | 表示に適した向きになるように画像を調整します(つまり、左上向き)。 | |
AutoThreshold | method=>{Kapur, OTSU, Triangle} | 自動的に画像閾値処理を実行します |
BilateralSmoothing | geometry=>geometry, width=>integer, height=>integer, intensity-sigma=>double, spatial-sigma=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 画像用の非線形、エッジ保持、ノイズ低減スムージングフィルターです。各ピクセルの強度を、近くのピクセルからの強度値の加重平均で置き換えます。この重みはガウス分布に基づいています。重みはピクセルのユークリッド距離だけでなく、放射線量の違い(例えば、色の強度、深度距離など)にも依存します。これにより、シャープなエッジが保持されます。強度と空間シグマのデフォルト値は、それぞれ 2*直径 と 0.5*直径 です。 |
BlackThreshold | threshold=>color, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | しきい値強度を下回るすべてのピクセルを黒に強制します |
BlueShift | factor=>double, | 月明かりの下での夜間のシーンをシミュレートします。1.5の係数から始めます。 |
Blur | geometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 指定された半径と標準偏差(シグマ)を持つガウス演算子で、画像のノイズを減らし、詳細レベルを下げます。 |
Border | geometry=>geometry, width=>integer, height=>integer, bordercolor=>色名, compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, | 画像を指定した色の枠で囲みます |
CannyEdge | geometry=>geometry, radius=>double, sigma=>double, 'lower-percent'=>double, 'upper-percent'=>double | マルチステージアルゴリズムを使用して、画像内の幅広いエッジを検出します(例:CannyEdge('0x1+10%+40%'))。 |
Charcoal | geometry=>geometry, radius=>double, sigma=>double | 木炭画をシミュレートします |
Chop | geometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} | 画像を切り取ります |
CLAHE | geometry=>geometry, width=>integer, height=>integer, number-bins=>integer, clip-limit=>double | コントラスト制限付き適応ヒストグラム平坦化。width、heightは画像をタイルに分割します。number-binsはタイルごとのヒストグラムビン数です(最小2、最大256)。clip-limitは、ローカライズされたコントラスト変化に対するコントラスト制限です。2〜3のクリップ制限が良い開始点です。 |
Clamp | channel=>{Red, RGB, All, etc.} | 値が0未満のピクセルを0に設定し、値が量子範囲を超えるピクセルを量子範囲(例:65535)に設定します。それ以外の場合、ピクセル値は変更されません。 |
Clip | id=>name, inside=>{true, false}, | 8BIMプロファイルから名前付きパスに沿って適用します。 |
ClipMask | mask=>image-handle | 画像マスクで定義されているように画像をクリップします |
Clut | image=>image-handle, interpolate={Average, Bicubic, Bilinear, Filter, Integer, Mesh, NearestNeighbor}, channel=>{Red, RGB, All, etc.} | 画像シーケンスにカラー検索テーブルを適用します |
Color | color=>色名 | 画像全体をこの色に設定します。 |
ColorDecisionList | filename=>string, | カラーデシジョンリストで色を補正します。 |
Colorize | fill=>色名, blend=>string | 塗りつぶし色で画像をカラー化します |
ColorMatrix | matrix=>float値の配列 | 画像に色補正を適用します。可変サイズの行列を使用できますが、通常はRGBA画像には5 x 5、CMYKAには6x6を使用します。オフセットには6x6行列が必要です(最後の列に正規化された値を入力します)。 |
Colorspace | colorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK} | 画像の色空間を設定します |
Comment | string | 画像にコメントを追加します |
ColorThreshold | start-color=>color, stop-color=>color, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | しきい値強度を下回るすべてのピクセルを黒に強制します |
CompareLayers | method=>{any, clear, overlay} | シーケンス内の各画像を次の画像と比較し、検出したピクセルの違いの最小境界領域を返します。画像は同じサイズである必要はありませんが、すべての画像が合体されている(すべての画像が同じサイズで、フラット化されたキャンバス上にあるため、特定のフレームがどのように見えるかを正確に表す)ことが最善です。 |
Composite | image=>image-handle, compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, mask=>image-handle, geometry=>geometry, x=>integer, y=>integer, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, opacity=>integer, tile=>{True, False}, rotate=>double, color=>色名, blend=>geometry, interpolate=>{undefined, average, bicubic, bilinear, filter, integer, mesh, nearest-neighbor, spline}, clip-to-self=>{True, False} | ある画像を別の画像に合成します。tileパラメータと連携してrotateパラメータを使用します。 |
ConnectedComponents | connectivity=>integer, | 一意にラベル付けされた連結成分。4方向または8方向の連結から選択します。 |
Contrast | sharpen=>{True, False} | 画像のコントラストを強調または低減します |
ContrastStretch | levels=>string, 'black-point'=>double, 'white-point'=>double, channel=>{Red, RGB, All, etc.} | 強度値の範囲を「ストレッチ」することにより、画像のコントラストを改善します |
Convolve | coefficients=>float値の配列, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, bias=>double | 畳み込みカーネルを画像に適用します。カーネルのorderが与えられた場合、order*order個のfloat値(例:3x3は9個の値を意味する)を指定します。 |
CopyPixels | image=>image-handle, geometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, offset=>geometry, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, dx=>integer, dy=>integer | widthxheight+x+yで定義された画像を、オフセット+dx、+dyで画像にコピーします。 |
Crop | geometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, fuzz=>double, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} | 画像を切り抜きます |
CycleColormap | amount=>integer | 画像カラーマップを指定量だけずらします |
Decipher | passphrase=>string | 暗号化されたピクセルをプレーンピクセルに変換します |
Deconstruct | 画像シーケンスを構成要素に分解します | |
Deskew | geometry=>string,threshold=>double | 画像をまっすぐにします |
Despeckle | 画像内のスペックルを減らします | |
Difference | image=>image-handle | 2つの画像間の差分メトリクスを計算します |
Distort | points=>float値の配列, method=>{Affine, AffineProjection, ScaleRotateTranslate, SRT, Perspective, PerspectiveProjection, BilinearForward, BilinearReverse, Polynomial, Arc, Polar, DePolar, Barrel, BarrelInverse, Shepards, Resize}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White}, 'best-fit'=>{True, False} | 画像を歪ませます |
Draw | primitive=>{point, line, rectangle, arc, ellipse, circle, path, polyline, polygon, bezier, color, matte, text, @filename}, points=>string , method=>{Point, Replace, Floodfill, FillToBorder, Reset}, stroke=>色名, fill=>色名, font=>string, pointsize=>integer, strokewidth=>float, antialias=>{true, false}, bordercolor=>色名, x=>float, y=>float, dash-offset=>float, dash-pattern=>float値の配列, affine=>float値の配列, translate=>float, float, scale=>float, float, rotate=>float, skewX=>float, skewY=>float, interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline}, kerning=>float, text=>string, vector-graphics=>string, interline-spacing=>double, interword-spacing=>double, direction=>{right-to-left, left-to-right}, word-break=>{normal, break-word} | 1つ以上のグラフィックプリミティブで画像に注釈を付けます。 |
Encipher | passphrase=>string | プレーンピクセルを暗号化されたピクセルに変換します |
Edge | radius=>double | 指定された半径の畳み込みフィルターを使用して、画像内のエッジを強調します。 |
Emboss | geometry=>geometry, radius=>double, sigma=>double | 指定された半径と標準偏差(シグマ)の畳み込みフィルターを使用して画像をエンボス処理します。 |
Enhance | ノイズの多い画像を強調するためにデジタルフィルターを適用します | |
Equalize | channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} |
画像にヒストグラム均等化を実行します |
Extent | geometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, fuzz=>double, background=>色名, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} | 画像サイズを設定します |
Evaluate | value=>double, operator=>{Add, And, Divide, LeftShift, Max, Min, Multiply, Or, Rightshift, RMS, Subtract, Xor}, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 画像に算術式、関係式、または論理式を適用します |
Filter | kernel=>string, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, bias=>double | 畳み込みカーネルを画像に適用します。 |
Flip | 画像の走査線を垂直方向に反射します | |
Flop | 画像の走査線を水平方向に反射します | |
FloodfillPaint | geometry=>geometry, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, x=>integer, y=>integer , fill=>色名, bordercolor=>色名, fuzz=>double, invert=>{True, False} | ターゲットピクセルの色と一致し、隣接するピクセルの色の値を変更します。境界色を指定した場合、その色ではない隣接ピクセルの色の値が変更されます。 |
ForwardFourierTransform | magnitude=>{True, False} | 順方向離散フーリエ変換(DFT)を実装します |
Frame | geometry=>geometry, width=>integer, height=>integer, inner=>integer, outer=>integer, fill=>色名, compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, | 装飾的な枠で画像を囲みます |
Function | parameters=>float値の配列, function=>{Sin}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White} | 画像に関数を適用します |
Gamma | gamma=>文字列, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 画像のガンマ補正を行います。 |
GaussianBlur | geometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 指定された半径と標準偏差(シグマ)を持つガウス演算子で、画像のノイズを減らし、詳細レベルを下げます。 |
GetPixel | geometry=>ジオメトリ, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, normalize=>{true, false}, x=>整数, y=>整数 | 単一のピクセルを取得します。デフォルトでは、正規化されたピクセル値が返されます。 |
GetPixels | geometry=>ジオメトリ, width=>整数, height=>整数, x=>整数, y=>整数, map=>文字列, normalize=>{true, false} | マップ(例:"RGB"、"RGBA"など)で定義された画像のピクセルを取得します。デフォルトでは、正規化されていないピクセル値が返されます。 |
Grayscale | channel=>{Average, Brightness, Lightness, Rec601Luma, Rec601Luminance, Rec709Luma, Rec709Luminance, RMS} | 画像をグレースケールに変換します。 |
HaldClut | image=>画像ハンドル, channel=>{Red, RGB, All, etc.} | Haldカラー参照テーブルを画像シーケンスに適用します。 |
HoughLine | geometry=>ジオメトリ, width=>double, height=>double, threshold=>double | 画像内の線を識別します(例:HoughLine('9x9+195'))。 |
Identify | file=>ファイル, features=>距離, moments=>{True, False}, unique=>{True, False} | 画像の属性を識別します。 |
Implode | amount=>double, interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} | 画像のピクセルを中心に向かって内側に変形させます。 |
Integral | 画像内の値(ピクセル値)の合計を計算します。 | |
InverseDiscreteFourierTransform | magnitude=>{True, False} | 逆離散フーリエ変換(DFT)を実装します。 |
Kmeans | geometry=>ジオメトリ, 'colors'=>double, 'iterations'=>double, 'tolerance'=>double | K平均法による色数削減を行います。 |
Kuwahara | geometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | エッジを保持するノイズリダクションフィルター。 |
Label | string | 画像にラベルを割り当てます。 |
Layers | method=>{coalesce, compare-any, compare-clear, compare-over, composite, dispose, flatten, merge, mosaic, optimize, optimize-image, optimize-plus, optimize-trans, remove-dups, remove-zero}, compose=>{Undefined, Add, Atop, Blend, Bumpmap, Clear, ColorBurn, ColorDodge, Colorize, CopyBlack, CopyBlue, CopyCMYK, Cyan, CopyGreen, Copy, CopyMagenta, CopyAlpha, CopyRed, RGB, CopyYellow, Darken, Dst, Difference, Displace, Dissolve, DstAtop, DstIn, DstOut, DstOver, Dst, Exclusion, HardLight, Hue, In, Lighten, LinearLight, Luminize, Minus, Modulate, Multiply, None, Out, Overlay, Over, Plus, ReplaceCompositeOp, Saturate, Screen, SoftLight, Src, SrcAtop, SrcIn, SrcOut, SrcOver, Src, Subtract, Threshold, Xor }, dither=>{true, false} | シーケンス内の前の画像のGIF破棄形式の各画像を比較します。これにより、アニメーションの結果を保持しながら、各フレームを置き換えるために最も小さいトリミングされた画像を選択しようとします。 |
Level | levels=>文字列, 'black-point'=>double, 'gamma'=>double, 'white-point'=>double, channel=>{Red, RGB, All, etc.} | 画像のコントラストのレベルを調整します。 |
LevelColors | invert=>>{True, False}, 'black-point'=>文字列, 'white-point'=>文字列, channel=>{Red, RGB, All, etc.} | 指定された色で画像のレベルを調整します。 |
LinearStretch | levels=>文字列, 'black-point'=>double, 'white-point'=>double | 彩度ストレッチによる線形補正を行います。 |
LiquidResize | geometry=>ジオメトリ, width=>整数, height=>整数, delta-x=>double, rigidity=>double | シームカービングで画像のリサイズを行います。 |
Magnify | ピクセルアートスケーリングで画像のサイズを2倍にします。 | |
Mask | mask=>image-handle | マスクで定義された画像ピクセルを合成します。 |
MatteFloodfill | geometry=>ジオメトリ, x=>整数, y=>整数 , matte=>整数, bordercolor=>色名, fuzz=>double, invert=>{True, False} | ターゲットピクセルの色と一致し、隣接するピクセルのマット値を変更します。境界色を指定すると、その色ではない隣接ピクセルのマット値が変更されます。 |
MeanShift | geometry=>ジオメトリ, width=>double, height=>double, distance=>double | 画像内の任意の形状のクラスターを区切ります(例:MeanShift('7x7+10%'))。 |
MedianFilter | geometry=>ジオメトリ, width=>整数, height=>整数, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 各ピクセルを近傍のメディアン強度ピクセルで置き換えます。 |
Minify | 画像のサイズを半分にします。 | |
Mode | geometry=>ジオメトリ, width=>整数, height=>整数, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 各ピクセルを近傍の最も多い色にします。 |
Modulate | factor=>ジオメトリ, brightness=>double, saturation=>double, hue=>double, lightness=>double, whiteness=>double, blackness=>double | 指定されたパーセントで画像の明るさ、彩度、色相を変更します。 |
Morphology | kernel=>文字列, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, iterations=>整数 | 画像にモルフォロジー手法を適用します。 |
MotionBlur | geometry=>ジオメトリ, radius=>double, sigma=>double, angle=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 与えられた半径と標準偏差(シグマ)のガウス演算子を、与えられた角度で適用して、画像のノイズを低減し、ディテールレベルを下げて、動きの効果をシミュレートします。 |
Negate | gray=>{True, False}, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 各ピクセルをその補色で置き換えます(白は黒、黄色は青など)。 |
Normalize | channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} |
画像の色値をフルレンジに変換します。 |
OilPaint | radius=>整数 | 油絵をシミュレートします。 |
Opaque | color=>色名, fill=>色名, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, invert=>{True, False} | 画像内でこの色を塗りつぶしの色に変更します。 |
OrderedDither | threshold=>{threshold, checks, o2x2, o3x3, o4x4, o8x8, h4x4a, h6x6a, h8x8a, h4x4o, h6x6o, h8x8o, h16x16o, hlines6x4}, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 順序付きディザリング画像を適用します。 |
Perceptible | epsilon=>double, channel=>{Red, RGB, All, etc.} | 値が|epsilon|より小さい各ピクセルを-epsilonまたはepsilon(どちらか近い方)に設定します。それ以外の場合、ピクセル値は変更されません。 |
Polaroid | caption=>文字列, angle=>double, pointsize=>double, font=>文字列, stroke=> 色名, strokewidth=>整数, fill=>色名, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, background=>色名 | ポラロイド写真をシミュレートします。 |
Posterize | levels=>整数, dither=>{True, False} | 画像を限られた数の色レベルに減らします。 |
Profile | name=>文字列, profile=>blob, rendering-intent=>{Undefined, Saturation, Perceptual, Absolute, Relative}, black-point-compensation=>{True, False} | ICCまたはIPTC画像プロファイルを追加または削除します。名前は正式な名前です(例:ICCまたはファイル名)。プロファイルを削除するには、プロファイルを''に設定します。 |
Quantize | colors=>整数, colorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YIQ, YPbPr, YUV, CMYK, sRGB, HSL, HSB}, treedepth=> 整数, dither=>{True, False}, dither-method=>{Riemersma, Floyd-Steinberg}, measure_error=>{True, False}, global_colormap=>{True, False}, transparent-color=>色 | 画像内の色の推奨数。 |
Raise | geometry=>ジオメトリ, width=>整数, height=>整数, x=>整数, y=>整数, raise=>{True, False} | 画像のエッジを明るくしたり暗くしたりして、3D効果を作成します。 |
RangeThreshold | geometry=>ジオメトリ, 'low-black'=>double, 'low-white'=>double, 'high-white'=>double, 'high-black'=>double | ソフトおよびハードイメージの閾値処理を結合します。 |
ReduceNoise | geometry=>ジオメトリ, width=>整数, height=>整数, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | ノイズピーク除去フィルターで画像のノイズを低減します。 |
Remap | image=>画像ハンドル, dither=>{true, false}, dither-method=>{Riemersma, Floyd-Steinberg} | 参照画像から最も近い色で画像の色を置き換えます。 |
Resample | density=>ジオメトリ, x=>double, y=>double, filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=>double | 画像を目的の解像度にリサンプルします。blur> 1を指定するとぼかし、<1を指定するとシャープになります。 |
Resize | geometry=>geometry, width=>integer, height=>integer, filter=>{Point, Box, Triangle, Hermite, Hanning, Hamming, Blackman, Gaussian, Quadratic, Cubic, Catrom, Mitchell, Lanczos, Bessel, Sinc}, support=>double, blur=>double | 画像を目的のサイズに拡大縮小します。blur> 1を指定するとぼかし、<1を指定するとシャープになります。 |
Roll | geometry=>ジオメトリ, x=>整数, y=>整数 | 画像を垂直または水平にロールします。 |
Rotate | degrees=>double, background=>色名 | 画像を回転します。 |
RotationalBlur | geometry=>ジオメトリ, angle=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 画像を放射状にぼかします。 |
Sample | geometry=>ジオメトリ, width=>整数, height=>整数 | ピクセルサンプリングで画像を拡大縮小します。 |
Scale | geometry=>ジオメトリ, width=>整数, height=>整数 | 画像を目的のサイズに拡大縮小します。 |
Segment | colorspace=>{RGB, Gray, Transparent, OHTA, XYZ, YCbCr, YCC, YIQ, YPbPr, YUV, CMYK}, verbose={True, False}, cluster-threshold=>double, smoothing-threshold=double | カラーコンポーネントのヒストグラムを分析し、均一なユニットを特定することによって、画像をセグメント化します。 |
SelectiveBlur | geometry=>ジオメトリ, radius=>double, sigma=>double, threshold=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | コントラストの閾値内のピクセルを選択的にぼかします。 |
Separate | channel=>{Red, RGB, All, etc.} | 画像からチャンネルを分離してグレースケール画像にします。 |
Shade | geometry=>ジオメトリ, azimuth=>double, elevation=>double, gray=>{true, false} | 遠い光源を使用して画像を陰影付けします。 |
SetPixel | geometry=>ジオメトリ, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, color=>float値の配列, x=>整数, y=>整数, color=>float値の配列 | 単一のピクセルの値を設定します。正規化されたピクセル値が必要です。 |
SetPixels | geometry=>ジオメトリ, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, color=>float値の配列, width=>整数, height=>整数, x=>整数, y=>整数, color=>float値の配列 | 1つ以上のピクセルの値を設定します。正規化されたピクセル値が必要です。 |
Shadow | geometry=>ジオメトリ, opacity=>double, sigma=>double, x=>整数, y=>整数 | 画像の影をシミュレートします。 |
Sharpen | geometry=>geometry, radius=>double, sigma=>double, bias=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 与えられた半径と標準偏差(シグマ)のガウス演算子で画像をシャープにします。 |
Shave | geometry=>ジオメトリ, width=>整数, height=>整数 | 画像の端からピクセルを削ります。 |
Shear | geometry=>ジオメトリ, x=>double, y=>double fill=>色名 | 正または負のシア角でX軸またはY軸に沿って画像をシアリングします。 |
SigmoidalContrast | geometry=>文字列, 'contrast'=>double, 'mid-point'=>double channel=>{Red, RGB, All, etc.}, sharpen=>{True, False} | シグモイド非線形コントラスト制御。ハイライトやシャドウを飽和させることなく、シグモイド伝達関数を使用して画像のコントラストを上げます。コントラストは、コントラストをどれだけ上げるかを示します(0はなし、3は典型的、20は多い)。中間点は、結果の画像で中間調がどこに落ちるかを示します(0は白、50%は中間グレー、100%は黒)。コントラストを下げるには、シャープをFalseに設定します。 |
Signature | 画像ピクセルストリームのSHA-256メッセージダイジェストを生成します。 | |
Sketch | geometry=>geometry, radius=>double, sigma=>double, angle=>double | 指定された半径、標準偏差(シグマ)、角度でガウス演算子を使用して画像をスケッチします |
Solarize(ソラライズ) | geometry=>string, threshold=>double, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 閾値レベルを超えるすべてのピクセルを反転します |
SortPixels(ピクセルソート) | 各スキャンライン内のピクセルを輝度の昇順にソートします。 | |
SparseColor(スパースカラー) | points=>float値の配列, method=>{Barycentric, Bilinear, Shepards, Voronoi}, 'virtual-pixel'=>{Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White} | 指定されたポイント周辺の画像の色を補間します |
Splice(スプライス) | geometry=>geometry, width=>integer, height=>integer, x=>integer, y=>integer, fuzz=>double, background=>色名, gravity=>{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} | 画像をスプライスします |
Spread(拡散) | radius=>double, interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} | 画像ピクセルをランダムな量だけ移動させます |
Statistic(統計) | geometry=>geometry, width=>integer, height=>integer, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}, type=>{Contrast, Median, Mode, Mean, Maximum, Minimum, ReduceNoise, RMS} | 各ピクセルを、近傍からの対応する統計量に置き換えます。 |
Stegano(ステガノ) | image=>image-handle, offset=>integer | 画像内にデジタルウォーターマークを隠します |
Stereo(ステレオ) | image=>image-handle, x=>integer, y=>integer | 2つの画像を合成し、ステレオペアの左画像と右画像の合成である単一の画像を生成します |
Strip(ストリップ) | 画像からすべてのプロファイルとコメントを削除します。 | |
Swirl(渦巻き) | degrees=>double, interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} | 画像のピクセルを中心に向かって渦巻き状にします |
Texture(テクスチャ) | texture=>image-handle | 画像背景にタイルとして配置するテクスチャの名前 |
Thumbnail(サムネイル) | geometry=>ジオメトリ, width=>整数, height=>整数 | 画像サイズを指定された寸法に変更し、関連するプロファイルを削除します。 |
Threshold(閾値) | threshold=>string, channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 画像の閾値処理を行います |
Tint(色合い) | fill=>色名, blend=>string | 塗りつぶし色で画像を色付けします。 |
Transparent(透明) | color=>色名, invert=>{True, False} | 画像内のこの色を透明にします |
Transpose(転置) | 画像を垂直方向に反転させ、90度回転させます | |
Transverse(横断) | 画像を水平方向に反転させ、270度回転させます | |
Trim(トリム) | 画像の背景色であるエッジを削除します | |
UnsharpMask(アンシャープマスク) | geometry=>geometry, radius=>double, sigma=>double, gain=>double, threshold=>double | アンシャープマスクアルゴリズムで画像をシャープにします。 |
Vignette(ビネット) | geometry=>geometry, radius=>double, sigma=>double, x=>integer, y=>integer, background=>色名 | ビネットスタイルで画像の端をオフセットします |
Wave(波) | geometry=>geometry, amplitude=>double, wavelength=>double, interpolate=>{undefined, average, bicubic, bilinear, mesh, nearest-neighbor, spline} | 正弦波に沿って画像を変化させます |
WaveDenoise(波形ノイズ除去) | geometry=>geometry, threshold=>double, threshold=>double | ウェーブレット変換を使用して画像からノイズを除去します |
WhiteBalance(ホワイトバランス) | LABカラースペースのグレイワールド仮定に従って、画像にホワイトバランスを適用します。 | |
WhiteThreshold(ホワイト閾値) | threshold=>string, , channel=>{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow} | 閾値強度を超えるすべてのピクセルを強制的に白にします |
geometry パラメータは、width および height パラメータのショートカットであることに注意してください(例:geometry=>'106x80' は width=>106, height=>80 と同等です)。
Annotate() と Draw() の両方で @filename を指定できます。これにより、ディスク上のファイルからテキストまたはグラフィックプリミティブ命令を読み込みます。例:
image->Draw(fill=>'red', primitive=>'rectangle', points=>'20,20 100,100 40,40 200,200 60,60 300,300');
次のものと同等です
$image->Draw(fill=>'red', primitive=>'@draw.txt');
ここで、draw.txt は、次の内容を含むディスク上のファイルです
rectangle 20, 20 100, 100 rectangle 40, 40 200, 200 rectangle 60, 60 300, 300
メソッド、Annotate()、Comment()、Draw()、Label() の text パラメータには、これらの特殊な書式文字を埋め込むことで、画像ファイル名、タイプ、幅、高さ、またはその他の画像属性を含めることができます
%b file size %c comment %d directory %e filename extension %f filename %g page geometry %h height %i input filename %k number of unique colors %l label %m magick %n number of scenes %o output filename %p page number %q quantum depth %r image class and colorspace %s scene number %t top of filename %u unique temporary filename %w width %x x resolution %y y resolution %z image depth %C image compression type %D image dispose method %H page height %Q image compression quality %T image delay %W page width %X page x offset %Y page y offset %@ bounding box %# signature %% a percent sign \n newline \r carriage return
例:
text=>"%m:%f %wx%h"
bird.miff というタイトルの画像で、幅が 512、高さが 480 の場合、MIFF:bird.miff 512x480 という注釈が生成されます。
オプションで、メソッド名の任意の位置に Image を追加できます。たとえば、TrimImage() はメソッド Trim() のエイリアスです。
上記にリストされた属性のほとんどは、magick に類似した属性を持っています。これらの属性の詳細については、ドキュメントを参照してください。
画像属性の設定
画像属性を設定するには、メソッド Set() を使用します。例:
$image->Set(dither=>'True'); $image->[$x]->Set(delay=>3);
この例では 'True' を使用し、このドキュメントでは '{True, False}' と記述されている場合、大文字と小文字を区別しない文字列 'True' と 'False' を使用するか、整数 1 と 0 を使用できます。
ブール属性に対して Get() を呼び出すと、Image::Magick は文字列ではなく 1 または 0 を返します。
以下は、設定できるすべての画像属性のリストです
属性 | 値 | 説明 |
---|---|---|
adjoin | {True, False} | 画像を単一のマルチイメージファイルに結合します |
alpha | {On, Off, Opaque, Transparent, Copy, Extract, Set} | アルファ/マットチャネルに関連する制御と特別な操作 |
antialias | {True, False} | ピクセルエイリアシングを削除します |
area-limit | integer | ピクセル領域リソース制限を設定します。 |
attenuate | double | 画像にノイズを追加するときに弱める(または強める) |
authenticate | string | このパスワードで画像を復号化します。 |
background | 色名 | 画像の背景色 |
blue-primary | x値, y値 | 色度青原点(例:0.15、0.06) |
bordercolor | 色名 | 画像の境界線の色を設定します |
clip-mask | 画像 | クリップマスクを画像に関連付けます。 |
colormap[i] | 色名 | 色名(例:赤)または16進数(例:#ccc)を位置 i に指定 |
comment | string | 画像コメントを設定します |
compression | {None, BZip, Fax, Group4, JPEG, JPEG2000, LosslessJPEG, LZW, RLE, Zip} | 画像の圧縮タイプ |
debug | {All, Annotate, Blob, Cache, Coder, Configure, Deprecate, Draw, Exception, Locale, None, Resource, Transform, X11} | 大量のデバッグ情報を表示 |
delay | integer | シーケンス内の次の画像を表示するまでに、この1/100秒が経過する必要があります |
density | geometry | 画像のピクセル単位の垂直および水平解像度 |
depth | integer | 画像の深度 |
direction | {Undefined, right-to-left, left-to-right | テキストを右から左または左から右にレンダリングします |
disk-limit | integer | ディスクリソース制限を設定 |
dispose | {Undefined, None, Background, Previous} | レイヤーの破棄方法 |
dither | {True, False} | 画像に誤差拡散を適用します |
display | string | 接続するXサーバーを指定します |
extract | geometry | 画像から領域を抽出 |
file | ファイルハンドル | 画像ファイルハンドルを設定します |
ファイル名 | string | 画像ファイル名を設定します |
fill | 色 | 塗りつぶし色は、描画された図形の輪郭の内側の領域を塗りつぶします。 |
font | string | 画像にテキストを注釈するときにこのフォントを使用します |
fuzz | integer | この距離内の色は等しいと見なされます |
gamma | double | 画像のガンマレベル |
Gravity | {Forget, NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast} | 画像の重力タイプ |
green-primary | x値, y値 | 色度緑原点(例:0.3、0.6) |
index[x, y] | string | 位置(x, y)のカラーマップインデックス |
interlace | {None, Line, Plane, Partition, JPEG, GIF, PNG} | インターレーススキームのタイプ |
iterations | integer | GIFアニメーションにNetscapeループ拡張を追加 |
label | string | 画像ラベルを設定します |
loop | integer | GIFアニメーションにNetscapeループ拡張を追加 |
magick | string | 画像形式を設定します |
map-limit | integer | マップリソース制限を設定 |
mask | 画像 | マスクを画像に関連付けます。 |
matte | {True, False} | 画像マットチャネルを有効にします |
mattecolor | 色名 | 画像マットカラーを設定します |
memory-limit | integer | メモリリソース制限を設定 |
monochrome | {True, False} | 画像を白黒に変換します |
option | string | オプションを画像形式に関連付けます(例:option=>'ps:imagemask') |
orientation | {TopLeft, TopRight, BottomRight, BottomLeft, LeftTop, RightTop, RightBottom, LeftBottom} | 画像の向き |
page | { Letter, Tabloid, Ledger, Legal, Statement, Executive, A3, A4, A5, B4, B5, Folio, Quarto, 10x14} または geometry | 画像キャンバスの推奨サイズと場所 |
pixel[x, y] | string | 位置 (x, y) の16進数(例:#ccc) |
pointsize | integer | PostscriptまたはTrueTypeフォントのポイントサイズ |
precision | integer | 印刷する有効数字の最大数を設定します |
quality | integer | JPEG/MIFF/PNG圧縮レベル |
red-primary | x値, y値 | 色度赤原点(例:0.64、0.33) |
sampling-factor | geometry | 水平および垂直サンプリングファクター |
scene | integer | 画像シーン番号 |
server | string | 接続するXサーバーを指定します |
size | string | 生画像の幅と高さ |
stroke | 色 | ストローク色は、図形の輪郭に沿って描画します。 |
texture | string | 画像背景にタイルとして配置するテクスチャの名前 |
tile-offset | geometry | 画像のタイルオフセット |
time-limit | integer | 時間リソース制限を秒単位で設定 |
title | string | 画像のタイトルを設定します |
type | {Bilevel, Grayscale, GrayscaleMatte, Palette, PaletteMatte, TrueColor, TrueColorMatte, ColorSeparation, ColorSeparationMatte} | 画像のタイプ |
units | { Undefined, PixelsPerInch, PixelsPerCentimeter} | 画像解像度の単位 |
verbose | {True, False} | 画像に関する詳細情報を出力します |
virtual-pixel | {Background Black Constant Dither Edge Gray Mirror Random Tile Transparent White} | 仮想ピクセルメソッド |
white-point | x値, y値 | 色度白色点(例:0.3127、0.329) |
geometry パラメータは、width および height パラメータのショートカットであることに注意してください(例:geometry=>'106x80' は width=>106, height=>80 と同等です)。
SetAttribute() は、メソッド Set() のエイリアスです。
上記にリストされた属性のほとんどは、magick に類似した属性を持っています。これらの属性の詳細については、ドキュメントを参照してください。
画像属性の取得
画像属性を取得するには、メソッド Get() を使用します。例:
($a, $b, $c) = $image->Get('colorspace', 'magick', 'adjoin'); $width = $image->[3]->Get('columns');
画像属性の設定 にリストされているすべての属性に加えて、これらの追加属性を取得できます
属性 | 値 | 説明 |
---|---|---|
area | integer | 現在消費されている領域リソース |
base-columns | integer | 基本画像の幅(変換前) |
base-filename | string | 基本画像ファイル名(変換前) |
base-rows | integer | 基本画像の高さ(変換前) |
class | {Direct, Pseudo} | 画像のクラス |
colors | integer | 画像のユニークな色の数 |
columns | integer | 画像の幅 |
copyright | string | PerlMagickの著作権を取得する |
ディレクトリ | string | 画像モンタージュ内のタイル名 |
経過時間 | double | 画像の作成からの経過時間(秒単位) |
エラー | double | Compare()またはQuantize()メソッドで計算されたピクセルあたりの平均エラー |
バウンディングボックス | string | 画像のバウンディングボックス |
ディスク | integer | 現在消費されているディスクリソース |
ファイルサイズ | integer | ディスク上の画像のバイト数 |
フォーマット | string | 記述的な画像フォーマットを取得する |
geometry | string | 画像ジオメトリ |
高さ | integer | 画像の行数または高さ |
icc | string | ICCプロファイル |
icc | string | ICMプロファイル |
id | integer | ImageMagickレジストリID |
IPTC | string | IPTCプロファイル |
平均エラー | double | Compare()またはQuantize()メソッドで計算された正規化されたピクセルあたりの平均エラー |
マップ | integer | 現在消費されているメモリマップリソース |
matte | {True, False} | 画像がマットチャンネルを持っているかどうか |
最大エラー | double | Compare()またはQuantize()メソッドで計算された正規化されたピクセルあたりの最大エラー |
メモリ | integer | 現在消費されているメモリリソース |
mime | string | 画像フォーマットのMIME |
モンタージュ | geometry | 画像モンタージュ内のタイルサイズとオフセット |
page.x | integer | 画像仮想キャンバスのXオフセット |
page.y | integer | 画像仮想キャンバスのYオフセット |
行 | integer | 画像の行数または高さ |
署名 | string | 画像ピクセルストリームに関連付けられたSHA-256メッセージダイジェスト |
汚染 | {True, False} | 画像が変更された場合はTrue |
総インク密度 | double | CMYK画像の総インク密度を返します |
透明色 | 色名 | 画像の透明色を設定する |
ユーザー時間 | double | 画像の作成からのユーザー時間(秒単位) |
バージョン | string | PerlMagickのバージョンを取得する |
幅 | integer | 画像の列数または幅 |
XMP | string | XMPプロファイル |
x解像度 | integer | 画像のx解像度 |
y解像度 | integer | 画像のy解像度 |
GetAttribute()はGet()メソッドのエイリアスです。
上記にリストされた属性のほとんどは、magick に類似した属性を持っています。これらの属性の詳細については、ドキュメントを参照してください。
画像とその再構成を比較する
Compare()メソッドを使用して、画像とその再構成の差異を数学的および視覚的に注釈付けます。このメソッドは次のパラメーターをサポートします。
パラメーター | 値 | 説明 |
---|---|---|
チャンネル | double | 画像チャンネルを選択します。デフォルトはアルファを除くすべてのチャンネルです。 |
fuzz | double | この距離内の色は等しいと見なされます |
画像 | 画像参照 | 画像の再構成 |
メトリック | AE、MAE、MEPP、MSE、PAE、PSNR、RMSE | このメトリックを使用して画像間の差異を測定します |
この例では、ImageMagickロゴとシャープニングされた再構成を比較します。
use Image::Magick; $logo=Image::Magick->New(); $logo->Read('logo:'); $sharp=Image::Magick->New(); $sharp->Read('logo:'); $sharp->Sharpen('0x1'); $difference=$logo->Compare(image=>$sharp, metric=>'rmse'); print $difference->Get('error'), "\n"; $difference->Display();
約0.024の報告された二乗平均平方根誤差に加えて、画像間の差異を視覚的に識別できるように、差異画像が表示されます。
画像モンタージュを作成する
Montage()メソッドを使用して、複数の個別の画像を組み合わせて合成画像を作成します。画像は合成画像上にタイル状に並べられ、オプションで個々のタイルのすぐ下に画像の名前が表示されます。たとえば、
$image->Montage(geometry=>'160x160', tile=>'2x2', texture=>'granite:');
Montage()で設定できるパラメーターのリストを次に示します。
パラメーター | 値 | 説明 |
---|---|---|
background | 色名 | 背景色の名前 |
境界 | integer | 画像の境界線の幅 |
ファイル名 | string | モンタージュ画像の名前 |
fill | 色名 | 注釈の塗りつぶし色 |
font | string | X11フォント名 |
フレーム | geometry | 装飾的な枠で画像を囲みます |
geometry | geometry | 複合画像の各タイルの優先タイルと境界サイズ(例:120x120 + 4 + 3&gt;) |
グラビティ | 北西、北、北東、西、中央、東、南西、南、南東 | タイル内の画像の重力方向 |
label | string | 画像にラベルを割り当てます。 |
モード | フレーム、アンフレーム、連結 | サムネイルのフレームオプション |
pointsize | integer | PostscriptまたはTrueTypeフォントのポイントサイズ |
影 | {True, False} | 深さをシミュレートするために、タイルの下に影を追加します |
stroke | 色名 | 注釈のストローク色 |
texture | string | 画像背景にタイルとして配置するテクスチャの名前 |
タイル | geometry | 行およびページあたりのタイル数(例:6x4) |
title | string | 画像モンタージュにタイトルを割り当てる |
透明 | string | 画像内のこの色を透明にします |
geometry パラメータは、width および height パラメータのショートカットであることに注意してください(例:geometry=>'106x80' は width=>106, height=>80 と同等です)。
MontageImage()はMontage()メソッドのエイリアスです。
上記にリストされている属性のほとんどは、montageに類似物があります。これらの属性の詳細については、ドキュメントを参照してください。
BLOBの操作
BLOBには、ディスク上ではなくメモリ内の特定の画像フォーマットを直接表すデータが含まれています。PerlMagickは、これらの画像フォーマットのいずれかのBLOBをサポートし、BLOBを特定の画像フォーマットとの間で変換するメソッドを提供します。
メソッド | パラメーター | 戻り値 | 説明 |
---|---|---|---|
ImageToBlob | 任意の画像属性 | それぞれの画像フォーマットの画像データの配列 | 画像または画像シーケンスをBLOBの配列に変換する |
BlobToImage | 1つ以上のBLOB | 画像に変換されたBLOBの数 | 1つ以上のBLOBを画像に変換する |
ImageToBlob()は、それぞれのフォーマットで画像データを返します。次に、それを印刷したり、ODBCデータベースに保存したり、ファイルに書き込んだり、表示プログラムにパイプしたりできます。
@blobs = $image->ImageToBlob(); open(DISPLAY,"| display -") || die; binmode DISPLAY; print DISPLAY $blobs[0]; close DISPLAY;
BlobToImage()メソッドは、指定されたBLOBから変換された画像または画像シーケンスを返します。
@blob=$db->GetImage(); $image=Image::Magick->new(magick=>'jpg'); $image->BlobToImage(@blob);
画像ピクセルへの直接アクセス
これらのメソッドを使用して、画像ピクセルへの直接アクセスを取得します。
メソッド | パラメーター | 説明 |
---|---|---|
GetAuthenticPixels | geometry=>geometry、width=>integer、height=>integer、x=>integer、y=>integer | 本物のピクセルをCポインタとして返します |
GetVirtualPixels | geometry=>geometry、width=>integer、height=>integer、x=>integer、y=>integer | 仮想ピクセルをconst Cポインタとして返します |
GetAuthenticIndexQueue | カラーマップインデックスまたは黒のピクセルをCポインタとして返します | |
GetVirtualIndexQueue | カラーマップインデックスまたは黒のピクセルをconst Cポインタとして返します | |
SyncAuthenticPixels | 本物のピクセルをピクセルキャッシュに同期します |
その他のメソッド
Append()メソッドは、一連の画像を追加します。たとえば、
$p = $image->Append(stack=>{true,false});
オブジェクト$imageに関連付けられているすべての画像を追加します。デフォルトでは、画像は左から右に積み重ねられます。それらを上から下に積み重ねるには、stackをTrueに設定します。
Clone()メソッドは、一連の画像をコピーします。たとえば、
$q = $p->Clone();
オブジェクト$pから$qにすべての画像をコピーします。このメソッドは、単一または複数画像のシーケンスに使用できます。
Coalesce()は、ページオフセットと破棄方法を考慮しながら、一連の画像を合成します。GIF、MIFF、およびMNGのアニメーションシーケンスは通常、画像の背景で始まり、後続の各画像はサイズとオフセットが異なります。新しい画像シーケンスは、最初の画像の仮想キャンバスと同じサイズで、シーケンス内の次の画像と合成されたすべての画像で返されます。たとえば、
$q = $p->Coalesce();
ComplexImages()メソッドは、画像シーケンスに対して複雑な数学演算を実行します。たとえば、
$p = $image->ComplexImages('conjugate');
EvaluateImages()メソッドは、一連の画像に算術、論理、または関係式を適用します。たとえば、
$p = $image->EvaluateImages('mean');
オブジェクト$imageに関連付けられているすべての画像の平均を計算します。
Features()メソッドは、指定された距離の4つの方向(水平、垂直、左、右の対角線)のそれぞれについて、画像の各チャンネルの特性を返します。特性には、角度の2次モーメント、コントラスト、相関、二乗の合計:分散、逆差モーメント、合計平均、合計分散、合計エントロピー、エントロピー、差分散、差エントロピー、相関の測定値1、相関の測定値2、および最大相関係数が含まれます。RGB、CMYK、RGBA、またはCMYKAの順(画像の種類によって異なります)。
@features = $image->Features(1);
Flatten()メソッドは、一連の画像をフラット化して返します。たとえば、
$p = $images->Flatten(background=>'none'); $p->Write('flatten.png');
画像シーケンスは、最初の画像の後に各画像を重ねて作成された単一の画像に置き換えられます。
Fx()メソッドは、一連の画像に数式を適用し、結果を返します。たとえば、
$p = $image->Fx(expression=>'(g+b)/2.0',channel=>'red'); $p->Write('fx.miff');
赤チャンネルを緑と青チャンネルの平均に置き換えます。
このメソッドの詳細については、FX、特殊効果画像オペレーターを参照してください。
Histogram()は、画像内の一意の色とそれぞれの数を返します。返される値は、赤、緑、青、不透明度、およびカウント値の配列です。
Morph()メソッドは、一連の画像をモーフィングします。画像ピクセルとサイズの両方が線形に補間され、ある画像から次の画像へのメタモーフォシスの外観を与えます。
$p = $image->Morph(frames=>integer);
ここで、framesは生成する中間画像の数です。デフォルトは1です。
Mosaic()は、画像シーケンスからモザイクを作成します。
Mogrify()メソッドは、画像操作メソッド(画像の操作)の単一のエントリーポイントです。パラメーターは、メソッドの名前と、メソッドが必要とする可能性のあるパラメーターです。たとえば、次の呼び出しは同等です。
$image->Crop('340x256+0+0'); $image->Mogrify('crop', '340x256+0+0');
MogrifyRegion()メソッドは、画像の領域に変換を適用します。これはMogrify()に似ていますが、領域ジオメトリから始まります。たとえば、画像の場所(40、50)で100x100の領域を明るくしたいとします。
$image->MogrifyRegion('100x100+40+50', 'modulate', brightness=>50);
PerceptualHash()は、視覚的に同一の画像を同じまたは類似のハッシュにマップします。これは、デジタル透かしだけでなく、画像検索、認証、インデックス作成、またはコピー検出で役立ちます。チャンネルごと、およびsRGBおよびHCLp色空間ごとに、7つのハッシュ値が返されます。たとえば、sRGB画像の場合、42個の知覚ハッシュが予想されます。
@phash = $image->PerceptualHash();
Ping()は、画像をメモリに読み込まずに画像に関する情報を返す便利なメソッドです。画像の幅、高さ、ファイルサイズ(バイト単位)、およびファイル形式を返します。複数のファイル名を指定できますが、指定できるファイルハンドルは1つだけです。
($width, $height, $size, $format) = $image->Ping('logo.png'); ($width, $height, $size, $format) = $image->Ping(file=>\*IMAGE); ($width, $height, $size, $format) = $image->Ping(blob=>$blob);
これは、画像が存在するかどうか、およびその特性を照会するための、より効率的でメモリ消費量の少ない方法です。
Poly()は、画像シーケンスと対応する項(係数と次数のペア)から多項式を構築します。
$p = $image->Poly([0.5,1.0,0.25,2.0,1.0,1.0]);
PreviewImage()は、指定された画像の9つのサムネイルをタイル状に並べ、さまざまな強度で画像処理操作を適用します。これは、特定の画像処理操作に適切なパラメーターを特定するのに役立つ場合があります。次の操作から選択してください:Rotate、Shear、Roll、Hue、Saturation、Brightness、Gamma、Spiff、Dull、Grayscale、Quantize、Despeckle、ReduceNoise、AddNoise、Sharpen、Blur、Threshold、EdgeDetect、Spread、Solarize、Shade、Raise、Segment、Swirl、Implode、Wave、OilPaint、CharcoalDrawing、JPEG。次に例を示します。
$preview = $image->Preview('Gamma'); $preview->Display();
テキストの位置を完全に制御するには、フォントメトリック情報が必要です。使用してください
($x_ppem, $y_ppem, $ascender, $descender, $width, $height, $max_advance) = $image->QueryFontMetrics(parameters);
ここで、parametersは、Annotateメソッドの任意のパラメーターです。戻り値は次のとおりです。
- 文字幅
- 文字の高さ
- アセンダー
- ディセンダー
- テキストの幅
- テキストの高さ
- 水平方向の最大アドバンス
- 境界:x1
- 境界:y1
- 境界:x2
- 境界:y2
- 原点:x
- 原点:y
複数行のテキストの最大テキスト幅と高さを取得するには、QueryMultilineFontMetrics()を使用します。
パラメーターを指定せずにQueryColor()を呼び出して、既知の色名のリストを返すか、1つ以上の色名を指定して、赤、緑、青、および不透明度の値を取得します。
@colors = $image->QueryColor(); ($red, $green, $blue) = $image->QueryColor('cyan'); ($red, $green, $blue, $alpha) = $image->QueryColor('#716baeff');
QueryColorname()は色の値を受け取り、それぞれの名前または16進数値を返します。
$name = $image->QueryColorname('rgba(80,60,0,0)');
パラメーターを指定せずにQueryFont()を呼び出して、既知のフォントのリストを返すか、1つ以上のフォント名を指定して、フォント名、説明、ファミリー、スタイル、ストレッチ、太さ、エンコーディング、ファウンダリ、フォーマット、メトリック、およびグリフの値を取得します。
@fonts = $image->QueryFont(); $weight = ($image->QueryFont('Helvetica'))[5];
パラメーターを指定せずにQueryFormat()を呼び出して、既知の画像フォーマットのリストを返すか、1つ以上のフォーマット名を指定して、隣接、BLOBサポート、raw、デコーダー、エンコーダー、説明、およびモジュールの属性を取得します。
@formats = $image->QueryFormat(); ($adjoin, $blob_support, $raw, $decoder, $encoder, $description, $module) = $image->QueryFormat('gif');
画像フォーマット名を指定してMagickToMime()を呼び出し、tifからimage/tiffなどのMIMEタイプを取得します。
$mime = $image->MagickToMime('tif');
RemoteCommand()を使用して、すでに実行中のdisplayまたはanimateアプリケーションにコマンドを送信します。唯一のパラメーターは、表示またはアニメーション化する画像ファイルの名前です。
$image->RemoteCommand('image.jpg');
Smush()メソッドは、一連の画像を一緒に押しつぶします。たとえば、
$p = $image->Smush(stack=>{true,false},offset=>integer);
オブジェクト$imageに関連付けられているすべての画像を一緒に押しつぶします。デフォルトでは、画像は左から右に押しつぶされます。それらを上から下に押しつぶすには、stackをTrueに設定します。
Statistics()は、画像の各チャンネルの画像統計を返します。返される値は、深さ、最小値、最大値、平均値、標準偏差、尖度、歪度、およびエントロピー値の配列(RGB、CMYK、RGBA、またはCMYKAの順(画像の種類によって異なります))です。
@statistics = $image->Statistics();
最後に、Transform() メソッドは、1 つ以上の画像を切り抜きまたはリサイズするための完全修飾されたジオメトリ指定を受け入れます。例:
$p = $image->Transform(crop=>'100x100+0+0');
オプションで、上記メソッド名の末尾に Image を追加できます。たとえば、PingImage() はメソッド Ping() のエイリアスです。
例外処理
PerlMagick のすべてのメソッドは、成功時に未定義の文字列コンテキストを返します。問題が発生した場合、エラーは数値ステータスコードが埋め込まれた文字列として返されます。400 未満のステータスコードは警告です。これは、操作が完了しなかったものの、ある程度回復可能であることを意味します。400 以上の数値コードはエラーであり、操作が完全に失敗したことを示します。以下は、異なるメソッドで例外がどのように返されるかを示しています。
数値 (例: Read(), Write()) を返すメソッド
$x = $image->Read(...); warn "$x" if "$x"; # print the error message $x =~ /(\d+)/; print $1; # print the error number print 0+$x; # print the number of images read
画像 (例: Resize(), Crop()) を操作するメソッド
$x = $image->Crop(...); warn "$x" if "$x"; # print the error message $x =~ /(\d+)/; print $1; # print the error number
画像を返すメソッド (EvaluateSequence(), Montage(), Clone()) は、次のようにエラーをチェックする必要があります。
$x = $image->Montage(...); warn "$x" if !ref($x); # print the error message $x =~ /(\d+)/; print $1; # print the error number
以下にエラーメッセージの例を示します。
Error 400: Memory allocation failed
エラーと警告コードの完全なリストを確認してください。
以下に、数値ステータスコードを使用する方法を示します。
$x = $image->Read('rose.png'); $x =~ /(\d+)/; die "unable to continue" if ($1 == ResourceLimitError);
定数
PerlMagick には、以下の定数が含まれています。
BlobError BlobWarning CacheError CacheWarning CoderError CoderWarning ConfigureError ConfigureWarning CorruptImageError CorruptImageWarning DelegateError DelegateWarning DrawError DrawWarning ErrorException FatalErrorException FileOpenError FileOpenWarning ImageError ImageWarning MissingDelegateError MissingDelegateWarning ModuleError ModuleWarning Opaque OptionError OptionWarning QuantumDepth QuantumRange RegistryError RegistryWarning ResourceLimitError ResourceLimitWarning StreamError StreamWarning Success Transparent TypeError TypeWarning WarningException XServerError XServerWarning
これらには次のようにアクセスできます。
Image::Magick->QuantumDepth