$Id: manual.rd,v 1.11 2001/08/02 20:31:09 tam Exp $
各種クラスやモジュールを定義したモジュール。
本モジュールの下には次のようなモジュールが定義されています。これらのモ ジュールでは、Magick::Imageクラスのインタンスメソッドで引数とな る各種オプションを提供する定数が、まとめられています。
ImageMagick が提供するAPIを直接利用するクラス。このクラスは今のところ、 ImageMagickのできるだけ透過的なwrapperとなるように設計されています。 これより派生した Magick::Image を使うようにして下さい。
イメージの生成や操作、出力など行う、RubyMagickの主要クラス。
Magick::Image#draw メソッドで描画される基本図形を定義したクラス 群がまとめられているモジュール。これらの基本図形は、ImageMagickで利用 可能なプリミティブに対応しています。
Magick::Image.new()
Magick::Imageオブジェクトを初期化するだけのクラスメソッド。 イメージの実体はこの時点ではオブジェクト内に存在しないので、 次の2つの方法のどちらかを用いてイメージを読みこまなくてはなりません。
Magick::Image.new("filename1" [, "filename2", ...])
引数で指定したファイル名からMagick::Imageオブジェクトを作成します。 複数のファイル名を指定した場合には、それらのイメージがシーケンスとして 単一のMagick::Imageオブジェクト内に取り込まれます。
Magick::Image.ping("filename")
filenameで表わされるファイル名から、イメージの高さ、幅、サイズ(byte)、イメージ形式 を返します。イメージ形式は文字列("GIF"など)で返されます。このメソッドはそれら4つの属性 が判明次第読みこみを終了するので、ファイルに格納されたイメージの大雑把な情報を手っ取り早く 把握するのに便利なメソッドです。
Magick::Image#read("filename1" [, "filename2", ...])
引数で指定されたイメージファイルへのパス(複数可)からイメージを読み込み、 操作できるようにします。複数ファイルが指定されたときには、 イメージシーケンスとして扱われるようになります。
なお、ImageMagickが提供する以下の特殊な引数を文字列として与えることも可能です。
引数に"NULL"に続けて色の名前を指定すると、指定した色を背景色とする、 イメージが新規に作成されます。 先立って Magick::Image#setによってイメージのサイズ等の属性 を指定しておけば、その場合に限って、指定しておいた属性をもつイメージが 新規に作成されます。
ImageMagick のロゴが読み込まれます。
イメージシーケンスを作る際に、Magick::Image#read で 複数のイメージを読みこむ以外に、既存のイメージオブジェクト に新たに別のイメージオブジェクトが保持するイメージを追加する方法が あります。
Magick::Image#push(image)
追加されるのは、imageオブジェクトが最初に読み込んだイメージです。
このようにしてイメージシーケンスが作成されたとき、 内部ではImageMagickのImage構造体によって、追加された順にリストで 保持されています(最初に作成または読み込まれたイメージは0番目です)。
RubyMagickでは、以下のメソッドによって個々のイメージを参照することが できます。参照されたイメージには以下の全てのメソッドを適用することが 可能です。
また、複数のシーケンスを保持するイメージオブジェクトに、 以下の方法を用いずにメソッド起動した場合には、0番目(すなわち、最初に 作成または読みこまれたイメージ)のオブジェクトがそのメソッドを起動します。
Magick::Image#at(pos) { |im| block... }
イメージシーケンス中のpos番目のイメージを取り出して ブロック引数として渡し、与えられたblockを実行します。
Magick::Image#each { |im| block... }
イメージシーケンスの全てのイメージオブジェクトに対して与えられた blockを実行します。
RubyMagick では ImageMagick で用いられるImage構造体、 ImageInfo構造体のメンバの多くに直接アクセスすることが可能です。 これらのメンバをRubyMagickでは「イメージ属性」とひとくくりに表現することにします。
RubyMagick ではMagick::Image#get および Magick::Image#set によって、これらのイメージ属性を取得および設定することができます。
フォーマットは以下の通りです。
Magick::Image#get("attr1" [, "attr2", ...])
文字列attr1、attr2で示されるイメージ属性の値を取得します。 複数の属性が指定されたときは、対応する順に整列した属性の値の配列を返します。
Magick::Image#set({"attr1"=>value1 [, "attr2"=>value2, ...]})
文字列attr1、attr2で示されるイメージ属性をハッシュによって 設定します。
true を指定すると複数イメージ(イメージシーケンス)を1つにまとめます。 false を指定すると、そのまま扱います。
アンチエイリアスを行うかどうか、trueまたはfalseによって指定します。
背景色を文字列で与えます。文字列は"#XXXXXX"のような16進表記または、 ImageMagickで利用可能な色名です。
"赤, 青, 黄, 透明度(opacity)"の順で並ぶカンマ区切の数値の列を 文字列で返します。
原イメージの幅を返します。
初めに読み込んだイメージファイルの名前を返します。
青原色点の色度を指定します。
境界色を文字列で指定します。
"赤, 青, 黄, 透明度(opacity)"の順で並ぶカンマ区切の数値の列を 文字列で返します。
イメージキャッシュサイズを指定します。単位はキロバイトです。
保存クラスを数値で返します。
イメージのi番目の色をstrで指定した色にします。strは ImageMagickで利用可能な色名、または"r,g,b"(r,g,bはそれぞれ整数)で指定 することができます。
イメージの色数を返します。 Magick::Image#number_colorsと同一の機能です。
色空間を、Magick::ColorspaceTypeモジュール以下で定義されている 定数によって指定します。
現在のイメージの幅を返します。
イメージのコメントを返します。
圧縮方法を、Magick::CompressTypeモジュールで定義されている 定数によって指定します。
Magick::Image#animateを用いるに先立って、各イメージの次の画像への 遅延時間を非負の整数によって指定します。単位はミリ秒です。
イメージ解像度を、ImageMagickで利用できるジオメトリ文字列によって 指定します。
イメージの色深度を、8または16で指定します。
Magick::Image#montage でモンタージュイメージを作成するための ファイルが格納されたディレクトリを返します。
環境変数DISPLAYに相当する文字列を指定します。
GIFアニメーションのディスポーザルの方法を0から3までの数値で指定します。
ディザ化をイメージに適用するかどうか、 trueまたはfalseで指定します。
減色に伴なうピクセル1つあたりの平均誤差を返します。
Magick::Image#writeでの出力先をIOオブジェクトによって指定します。
Magick::Image#writeでの出力先をファイル名を表す文字列によって指定します。
イメージファイルのバイト数を返します。
フィルタータイプをMagick::FileterTypeモジュールで定義される 定数によって指定します。
文字列描画に際して用いられるフォントへのパスを文字列で指定します。
イメージのフォーマット(PNG, GIF等)を返します。
numピクセル以下の色は同一であるとみなされます。
イメージのガンマ値を返します。
イメージのオフセット付きの幅や高さを、 ジオメトリを表す文字列で指定します。
緑原色点の色度を設定します。
イメージの高さを返します。
イメージ上の点(x,y)のカラーインデクスを、numで指定した インデクスに設定します。
インタレースのタイプをMagick::InterlaceTypeモジュールで定義される 定数によって指定します。
Magick::Image#animateを用いるに先立って、アニメーションが 繰り返される回数を指定します。-1を指定すると無限に繰り返します。
イメージラベルを文字列で指定します。
"iteration"の別名です。
イメージフォーマット(PNG、GIF等)を文字列によって指定します。
"mattecolor"で指定された色を透明にするならばtrueを与えます。
イメージが透明色をもつ場合true
、そうでない場合false
を
返します。
イメージの透明色を文字列の色名によって指定します。
透明色について"r,g,b,o" という形式の文字列で返します。
減色に伴なう正規化された最大誤差を返します。
減色に伴なう正規化平均誤差を返します。
Magick::Image#montage を用いた後、モンタージュイメージ のオフセットおよびサイズをジオメトリを表す文字列で返します。
イメージをモノクロームにする場合、trueを指定します。
ポストスクリプトで出力する際のサイズをジオメトリを表す文字列で指定します。
描画する際のペンの色を色名を表す文字列で指定します。
イメージの(x,y)に位置するピクセルの色と透明度を "赤,緑,青,透明度"という文字列で与えます。各要素は非負の整数です。
文字列描画の際のフォントのポイントサイズを指定します。
イメージの圧縮水準を0から100までの整数値で指定します。
Magick::RenderingIntentモジュールで定義される定数によって、 レンダリングモデルを指定します。
イメージの高さを返します。
イメージがシーケンスの何番目であるか指定します。
"display" の別名です。
MD5公開鍵署名を返します。
イメージサイズをImageMagickで利用可能なジオメトリ指定によって設定します。
(未記述)
(未記述)
イメージが汚染されているかどうかを返します。
背景となるイメージをファイル名で指定します。
背景部でタイルされるイメージをファイル名で指定します。
イメージの色タイプを返します。
解像度の単位をMagick::ResolutionTypeモジュールで定義される 定数によって指定します。
trueを指定すると、イメージに関する詳細な情報が出力されます。
FlashPix の Viewing parameterを返します。
イメージの横幅を返します。
水平解像度を返します。
垂直解像度を返します。
Magick::Image#write({"attr1"=>val, ...})
ハッシュで指定されたイメージ属性を用いてイメージを出力します。
Magick::Image#add_noise(NoiseType)
Magick::NoiseTypeで定義される定数を指定することによって、 対応するノイズをイメージに施します。
Magick::Image#blur(radius, sigma)
ぼかし(blur)効果を与えます。
Magick::Image#colorize(opacity, color)
(モノクロイメージ等を)カラー化します。不透明度を表すopacityには 0から100までの数値を文字列として与えて下さい。
Magick::Image#convolve(coef)
配列で与えられたConvolution Kernelをイメージに適用します。
Magick::Image#despeckle
イメージ内に存在するかもしれない斑点を消去します。
Magick::Image#edge(radius)
近接するradius内のエッジを際立たせます。
Magick::Image#emboss(radius, sigma)
近接するradius内のピクセルのエッジを標準偏差sigmaで強調します。
Magick::Image#enhance
イメージ内のノイズを削減します。
Magick::Image#gaussian_blur(radius, sigma)
Gaussianにパラメータradius、sigmaを与えることによって、 イメージのピクセルをぼかします。
Magick::Image#implode(factor)
0から1までのfactorによって、イメージに破裂させたかのような効果を 与えます。
Magick::Image#median_filter(radius)
各ピクセルは近接するradius内のピクセルの色の中央値によって 置換されます。
Magick::Image#morph(frames)
Magick::Image#mortion_blur(radius, sigma, amount)
Magick::Image#blurやMagick::Image#gaussian_blurと類似 していますが、amountによって移動しているようなぼかし効果を与えます。
Magick::Image#oilpaint(radius)
近接するピクセルの範囲を指定することによって、 油絵のような効果を与えます。
Magick::Image#plasma(segment, attenuate, depth)
イメージをプラズマ・フラクタル化します。segmentには、 プラズマ・フラクタルを適用する領域を4要素の配列で指定して下さい。
Magick::Image#reduce_noise(radius)
近接するradius内のピクセルを対象にノイズ除去フィルターを適用します。
Magick::Image#shade(color_shading, azimuth, elevation)
true
or false
方位 azimuth、仰角elevationの光源から照らされたときの
陰影効果を与えます。color_shadingをtrue
とすると、
イメージのRGB要素が陰影化されます。
Magick::Image#sharpen(radius, sigma)
原イメージに対して Laplacian convolution kernel を適用することによって、 鋭利な効果を持たせます。Kernel のパラメータはradius、sigma で指定します。
Magick::Image#solarize(factor)
factorに従って、イメージに露光効果を与えます。
Magick::Image#spread(amount)
近接するamountの範囲のピクセルをランダムに置換します。
Magick::Image#stegano(image)
イメージにimageの透しを入れます。
Magick::Image#stereo(offset_image)
一方が青、一方が赤の眼鏡で見ると立体化して見えるようなイメージを作成 します。
Magick::Image#swirl(degree)
指定した角度degreeで渦巻き効果を与えます。
Magick::Image#threshold(val)
各ピクセルの強度がvalより大きいときには、 その強度はイメージの最大強度に揃えられます。逆の場合には イメージの最少強度に揃えられます。
Magick::Image#transparent(color, opacity)
イメージ中のcolorを透明色にします。完全に透明にする場合は opacity に Magick::TransparentOpacity を設定して下さい。
Magick::Image#unsharp_mask(radius, sigma, amount, threshold)
Magick::Image#wave(amplitude, wave_length)
イメージを振幅amlitude、周波数wave_lengthのサインカーブ の形状に変形します。
Magick::Image#chop(geom)
イメージをgeomで指定した範囲に切り落します。
Magick::Image#coalesce
イメージシーケンスを1つのイメージに合体します。
Magick::Image#crop(geom)
イメージをgeomで指定した領域で切り取ります。
Magick::Image#deconstruct
GIFアニメーションイメージを、それぞれのイメージフレームに分解します。
Magick::Image#flatten
(未実装)
Magick::Image#flip
イメージを垂直方向に対称に反転します。
Magick::Image#flop
イメージを水平方向に対称に反転します。
Magick::Image#profile(profname, filename)
nil
nil
イメージのICM,IPTCプロファイルの追加または削除を行います。 profnameが指定された場合、指定されたプロファイルを削除します。 profnameに'*'が指定された場合、イメージの全てのプロファイルを 削除します。
filenameが指定された場合、そのファイルに格納されているプロファイル をイメージに追加します。
それぞれについて、何も指定しないときにはnil
を与えて下さい。
Magick::Image#roll(offset_x, offset_y)
イメージを(offset_x,offset_y)だけ移動し、空いた部分に 折り返した部分を描きます。
Magick::Image#shave(geom)
(未実装)
Magick::Image#transform(geom, crop_geom)
geomに従って、イメージを拡大または縮小します。 crop_geomが与えられた場合には、原イメージを、 それで示される領域をgeomに従って拡大また縮小した イメージに置換します。
Magick::Image#magnify
イメージを縦横2倍に拡大します。
Magick::Image#minify
イメージを縦横1/2に縮小します。
Magick::Image#resize(geom, FilterType, blur)
イメージをgeomで指定されたサイズへ変更します。変更の際に 適用するフィルターをMagick::FilterTypeで定義される定数で、 ぼかしの程度をblurで指定します。
Magick::Image#sample(geom)
イメージをgeomで指定されたサイズにスケーリングします。
Magick::Image#scale(geom)
イメージをgeomで指定されたサイズにスケーリングします。 Magick::Image#sampleと類似しますが、スケーリングのアルゴリズムが 異なります。
Magick::Image#zoom(geom)
イメージをgeomで指定されたサイズにスケーリングします。 Magick::Image#sampleやMagick::Image#scaleと類似しますが、 スケーリングのアルゴリズムが異なります。
Magick::Image#annotate()
Magick::Image#draw(drawable1 [,drawable2, ...])
ImageMagickでプリミティブとして与えられる基本図形は、
Magick::Drawable
モジュール以下の幾つかのクラスとして定義されています。
これらを用いて、イメージ上に描画を行います。
Magick::Image#montage({"key1"=>val1 [,"key2"=>val2, ...])
ハッシュで与えられたオプションを元に、イメージシーケンスを
1つのモンタージュ画像に統合します。利用可能なオプションは、
"オプション名"=>値
の組で与えます。
モンタージュイメージのファイル名を指定します。
タイルされるイメージの最大サイズと境界サイズを与えます。
タイルされるイメージの縦横サイズ("width x height")を与えます。
モンタージュイメージのタイトルを与えます。
個々のイメージをフレームで装飾する場合のフレーム幅とサイズ を与えます。
個々のイメージを配置する際の位置を与えます。
モンタージュイメージのラベルを指定します。
true
を指定すると、タイルを影付きにします。
タイルがモンタージュ上にどのように合成されるか指定します。
塗り潰し色を指定します。
輪郭色を指定します。
背景色を指定します。
境界色を指定します。
境界幅を指定します。
透明色を指定します。
描画される文字列のフォントのパスを指定します。
背景イメージが含まれるファイルへのパスを指定します。
Magick::Image#compress_colormap
イメージのカラーマップを調べて、重複するエントリを取り除きます。
Magick::Image#number_colors([io])
色数および使われている色の種類を調べて、結果を出力します。io が指定されている場合には、そこに出力されます。指定されない場合は、 標準出力に出力されます。
Magick::Image#is_grayscale_image?
グレイスケール画像である場合true
、それ以外はfalse
を返します。
Magick::Image#is_monochrome_image?
モノクローム画像である場合true
、それ以外はfalse
を返します。
Magick::Image#is_opaque_image?
透明色を持つ場合にはtrue
、それ以外はfalse
を返します。
Magick::Image#is_pseudo_class?
色クラスがPseudo クラスである場合true
、それ以外はfalse
を返します。
Magick::Image#border(geom, color)
指定されたgeomと色colorでイメージの境界を描きます。
Magick::Image#frame(geom)
イメージの外枠を指定されたgeomで描きます。
外枠の色は、イメージ属性mattecolor
で指定される色です。
Magick::Image#raise(geom, raised)
イメージのgeomで指定された領域を盛り上げた(陥没した)
効果を出します。raisedがtrue
のときは盛り上げます。
false
のときには陥没させます。
Magick::Image#contrast(sharpen)
イメージのコントラストを調節します。sharpenがtrue
の場合、
強度を増大させる方向で、false
の場合減少させる方向に調節します。
Magick::Image#equalize
イメージのヒストグラム均一化を行います。
Magick::Image#gamma(level)
イメージを指定したlevelでガンマ補正します。
levelは"r,g,b,o"
(それぞれ赤、緑、青、透明度)
のようにカンマ区切りの浮動小数点の値を指定して下さい。
Magick::Image#modulate(modulation)
modulationに従って、イメージの明度、彩度、色相を調節します。 modulationには"b,s,h"(それぞれ明度、彩度、色相)のように カンマ区切りの浮動小数点の値を指定して下さい。
Magick::Image#negate(grayscale)
イメージに色反転を適用します。grayscaleがtrue
のとき、
グレイスケールのみが反転されます。
Magick::Image#normalize
コントラストが強調されるようにイメージの色を調節します。
Magick::Image#map(image, dither_flag)
原イメージの各色を、それぞれimageで最も近い色に置換します。 その際ディザ化を行うかどうかを、dither_flagで指定して下さい。
Magick::Image#map_images(image, dither_flag)
Magick::Image#mapと同一ですが、イメージシーケンス全体に適用 されます。
Magick::Image#ordered_dither
原イメージを、Ordered Dithering 法という方法によって モノクロームイメージへ変換します。
Magick::Image#quantize({"key"=>value ["key2"=>value2,...]})
イメージを、ハッシュで与えられるオプションにしたがって減色します。
利用可能なオプションは次の通りです。
変換する色空間を指定します。
true
or false
ディザ化を行う場合にはtrue
を指定します。
true
or false
減色の際の誤差を計算する場合にはtrue
を指定します。
減色後の色数の上限を指定します。
Magick::Image#quantize_images({"key"=>value ["key2"=>value2,...]})
Magick::Image#quantizeと同様ですが、 イメージシーケンス全体に適用される点が異なります。
Magick::Image#segment(Colorspace, verbose, cluster, smooth)
Magick::Image#rotate(degree)
イメージをdegreeだけ回転させます。degreeが正のときは時計回り、 負の時は逆時計回りに、イメージの左上の原点(0,0)を中心に回転させます。
Magick::Image#shear(x_shear, y_shear)
イメージを水平線から時計回りにx_shear、 垂直線から反時計回りにy_shear回転させ、平行四辺形の形状にします。
Magick::Image#channel(ChannelType)
イメージからMagick::ChannelType以下の定数で指定される特定のチャネルを 抽出します。
Magick::Image#composite(image, CompositeOp, offset_x, offset_y)
イメージに別のimageを、左上原点から(x,y)の位置に合成 します。合成方法はMagick::CompositeOp以下で定義される定数で指定 します。
Magick::Image#cycle_colormap(amount)
イメージのカラーマップをamountで指定される回数だけローテーションさせます。
Magick::Image#describe(dest_io, [verbose_flag])
イメージ情報をIOオブジェクトdest_ioに出力します。
verbose_flagがtrue
のときは、詳細な情報を出力します。
Magick::Image#animate
イメージシーケンスをアニメーション化して、画面上に表示します。
Magick::Image#append([horizontal_direction])
イメージシーケンスを連結します。シーケンスは全て同一のサイズで
あることが必要です。horizontal_directionをtrue
に設定
すると、水平方向に連結します。それ以外は垂直方向に連結します。
Magick::Image#display
イメージを画面上に表示します。
Magick::Image#bounding_box
イメージのバウンディングボックスを、 "(width)x(height)+(offset_x)+(offset_y)" の文字列として返します。
Magick::Image#depth
イメージの色の深度を返します。
Magick::Image#image_type
イメージの種類を文字列で返します。
Magick::Image#scenes
イメージシーケンスの個数を返します。
Magick::Image#mogrify(option1 [, option2, ...])
与えられたoptionに従ってイメージを加工します。
オプション詳細についてはmogrify(1)
を参照して下さい。
Magick::Image#mosaic
イメージシーケンスを、先頭から順に下から重ね合わせます。
Magick::Image#rgb_transform(ColorspaceType)
RGBイメージを、Magick::ColorspaceTypeで定義される定数に よって表わされる色空間へと変換します。
Magick::Image#texture(image)
既存のイメージを利用して、新規にimageをタイルしたイメージを作成 します。
描画可能な基本図形をまとめたモジュール。Rubyスクリプトで書かれています。 詳細は"lib/magick.rb"を参照して下さい。
Magick::Image#drawの引数となるオブジェクトを生成するための 基本図形クラスが定義されています。
一般的に、これらを用いた描画は次の手順によって行われます。
1. 基本図形を決定するパラメータを引数としたクラスメソッドnewによって新規にオブジェクトを作成する。 2. そのオブジェクトにsetメソッドを用いて、属性を指定する。 3. できあがったオブジェクトを((<Magick::Image#draw>))の引数として渡す。
Magick::Drawable::Point.new(image, x, y)
image 上の(x,y)に描かれる点オブジェクトを生成します。
Magick::Drawable::Point#set
Magick::Drawable::Line.new(image, x1, x2, y1, y2)
(x1, y1), (x2,y2)を端点とする線分オブジェクト を作成します。
Magick::Drawable::Rectangle.new(image, x1, x2, y1, y2)
(x1, y1), (x2,y2)を端点とする線分オブジェクト を作成します。
Magick::Drawable::Arc.new(image, startX,startY,endX,endY,startDegree,endDegree)
Magick::Drawable::Ellipse.new(image, origX,origY,width,height,arcStart,arcEnd)
Magick::Drawable::Circle.new(image, origX,origY,perimX,perimY)
Magick::Drawable::Polyline.new(image, *[x1,y1,x2,y2,...])
引数の配列の要素数は必ず偶数である必要があります。
Magick::Drawable::Polygon.new(image, *[x1,y1,x2,y2,...])
引数の配列の要素数は必ず偶数である必要があります。
Magick::Drawable::Bezier.new(image, *[x1,y1,x2,y2,...])
引数の配列の要素数は必ず偶数である必要があります。
Magick::Drawable::Text.new(image, text, x, y)
(x,y)に描画される文字列textを指定します。