Image::Magick

ImageMagickグラフィックインタフェース。PerlMagickとも呼ばれる。

詳細は、http://www.imagemagick.org/script/perl-magick.php 参照
色々なメソッドがあるにはあるが、引数リストが提示されているだけで、引数の説明がほとんどないので、意味不明なところが多数ある。

use Image::Magick;
パッケージをロードする。

my $image = Image::Magick->new(%attr);
インスタンスを生成する。%attrを指定すると、指定した属性を持つ画像も生成される。

$image->set(%attr);
画像の属性を設定する。

my @value = $image->get(@attr);
属性名を指定して、属性値を得る。

my $newimg = $img->Clone();
オブジェクトをコピーする。

主な属性(* は設定のみ)
compression:圧縮タイプ名。None | Fax | JPEG | JPEG2000 | LosslessJPEG | LZW | …
filename:画像ファイル名
filesize:画像ファイルサイズ
file:ファイルハンドル(型グロブ)
format:画像フォーマット(Joint Photographic Experts Group JFIF format など長い名前)
*geometry:画像サイズ、幅x高さ 形式の文字列。
height:画像高さ。
magick:画像フォーマット。JPEG | GIF | PNG | …
mime:MIMEタイプ
quality:JPEG/PNG圧縮レベル
signature:SHA-256 Digest
*size:画像サイズ。幅x高さ 形式の文字列
width:画像幅。

geometry
主に、画像操作時に画像サイズを指定する為に用いる属性。下記の表記が可能。

Scale%:縦横比を維持して元画像比Scale%のスケーリングしたサイズ
ScaleXx%xScaleY%:元画像比ScaleXx%xScaleY%のスケーリングしたサイズ
W:幅のみ指定。高さは縦横比を維持してスケーリングしたサイズ
xH:高さのみ指定。幅は縦横比を維持してスケーリングしたサイズ
WxH:幅と高さの最大値。実際には縦横比を維持してスケーリングしたサイズ
WxH^:幅と高さの最小値。実際には縦横比を維持してスケーリングしたサイズ
WxH!:幅と高さの直接指定サイズ
WxH>:幅と高さの直接指定。但し、元画像サイズが指定値より大きい場合のみ。
WxH<:幅と高さの直接指定。但し、元画像サイズの幅・高さともに指定値より大きい場合のみ。
area@:aeraピクセルを含み、縦横比を維持してスケーリングしたサイズ
WxH+X+Y:画像範囲を左上座標(X,Y)と幅・高さで指定
+X+Y:画像内座標を(X,Y)で指定

== 画像入出力 ==

$image->Read(file=>\*FH | filename=>$filename);
ファイルハンドルまたはファイル名を指定して画像を読み込む。失敗した場合は0を返す。

$image->Write(filename=>$filename)
画像をファイルに出力する。quality属性などのオプションも指定できる。失敗した場合は0を返す。

$image->Write('format:-');
画像をSTDOUTに出力する。STDOUTはbinmodeに設定しておくこと。
format:jpg | gif | png | …

== 画像操作 ==

$image->AdaptiveResize(%params);
画像に適合したリサイズを行なう。6.2.9以前のバージョンでは使えないのでResizeメソッドを使う。下記のパラメタが指定可能(下記以外にも意味不明なパラメタあり)。
geometry:リサイズ後のサイズ。width,heightとは排他使用。
width:リサイズ後の幅。
height:リサイズ後の高さ
filter:補完アルゴリズム
   Point | Box | Triangle | Hermite | Hanning | Hamming | Blackman | Gaussian
   | Quadratic | Cubic| Catrom | Mitchell | Lanczos | Bessel | Sinc
blur:>1 画像をぼかす <1 画像をシャープにする

$image->Annotate(%params);
画像にテキストを書き込む。下記のパラメタが指定可能(下記以外にも意味不明なパラメタあり)。
text:書き込むテキスト文字列
font:フォント名
family:フォントファミリー名
style:スタイル。Normal | Italic | Oblique | Any
weight:太さ。値範囲不明。
pointsize:高さ(ポイント)。
fill:文字色
geometry:書込位置。+X+Y形式。x,yとは排他使用。
gravity:書込位置。x,yとは排他使用。
  NorthWest | North | NorthEast | West | Center | East | SouthWest | South | SouthEast
x:書込位置X座標
y:書込位置Y座標
rotate:回転角度。値範囲不明。
encoding:UTF-8のみ

$image->Border(%params);
画像をボーダーカラーで囲む。下記のパラメタが指定可能。
geometry:ボーダーサイズ。width,heightとは排他使用。
width:ボーダーの幅。
height:ボーダーの高さ
bordercolor:ボーダーカラー。green,#00ff00,rgb(0,255,0)等で表記する。
compose:合成方法。Src | Overlay | darken | lighten | plues | add | subtract | …

$image->Chop(%params);
画像を切り落とす。下記のパラメタが指定可能。
geometry:切落し範囲。WxH+X+Y形式、x,y,width,heightとは排他使用。
width:切落し幅
height:切落し高さ
x:切落し範囲左上のX座標
y:切落し範囲左上のY座標

$image->Composite(%params);
画像を合成する。下記のパラメタが指定可能(下記以外にも意味不明なパラメタあり)。
image:合成先のImage::Magickオブジェクト
compose:合成方法。Undefined | Add | Blend | Exclusion | None | Out | Overlay
   | Over | ReplaceCompositeOp | Screen | Subtract | Threshold | Xor | …
mask:マスクイメージとして使用するImage::Magickオブジェクト
geometry:合成位置座標。左上からのオフセットを+X+Y形式で指定、x,yとは排他使用。
x:合成位置x座標
y:合成位置y座標
gravity:合成位置名称。x,yとは排他使用。
  NorthWest | North | NorthEast | West | Center | East | SouthWest | South | SouthEast
opacity:不透明度。値範囲不明。
rotate:回転角度。値範囲不明。

$image->Crop(%params);
画像を切り取る。下記のパラメタが指定可能。
geometry:切取り範囲。WxH+X+Y形式、x,y,width,heightとは排他使用。
width:切取り幅
height:切取り高さ
x:切取り範囲左上のX座標
y:切取り範囲左上のY座標

$image->Flip();
画像を上下反転させる。

$image->Flop();
画像を左右反転させる。

$image->Posterize(%params);
色数を減少させる。下記のパラメタが指定可能。
levels:減少後の色数。
dither:ディザリング有無、True | False

$image->Resize(%params);
リサイズを行なう。リサイズを行なうメソッドには、他にScale,Sapmle,Thumbnailがあるが、これらは補完を行わないので非推奨。下記のパラメタが指定可能(下記以外にも意味不明なパラメタあり)。
geometry:リサイズ後のサイズ。width,heightとは排他使用。
width:リサイズ後の幅。
height:リサイズ後の高さ
filter:補完アルゴリズム。
   Point | Box | Triangle | Hermite | Hanning | Hamming | Blackman | Gaussian
   | Quadratic | Cubic| Catrom | Mitchell | Lanczos | Bessel | Sinc
blur:>1 画像をぼかす <1 画像をシャープにする

$image->Rise(%params);
ボーダーに3D効果を適用する。下記のパラメタが指定可能。
geometry:ボーダーサイズ。width,heightとは排他使用。
width:ボーダーの幅。
height:ボーダーの高さ
x:意味不明
y:意味不明
raise:浮き出し、または、沈み。True | False

$image->Roll(%params);
画像をずらす。下記のパラメタが指定可能。
geometry:ずらし量。+X+Y形式。x,yとは排他使用。
x:X方向のずらし量。
y:Y方向のずらし量。

$image->Rotate(%params);
画像を回転する。下記のパラメタが指定可能。
degrees:回転角度。値範囲不明。
background:回転後にできた余白の色。green,#00ff00,rgb(0,255,0)等で表記する。

$image->Transparent(%params);
透明色を設定する。下記のパラメタが指定可能。
color:透明に設定する色。green,#00ff00,rgb(0,255,0)等で表記する。
invert:{True, False}、意味不明。

$image->Transpose();
画像を90°回転させる。

$image->Transverse();
画像を270°回転させる。