Image オブジェクト

Image オブジェクトを使って、Sketch のインスタンスの内部にある画像を描画することができます。ディスクのファイルから画像をロードしたり、Sketch のインスタンスから画像を生成したり、手動で画像を生成することが可能です。Image オブジェクトには、既に作成された画像の操作を支援するいくつかのメソッドがあります。sketchでは、デフォルトの設定でアルファブレンディングがオンになっている点に注意して下さい。PICT や TIFF のようなアルファチャンネルを持つ特定のファイルフォーマットでは、そのアルファチャンネルがすべてオフに設定されている場合があります。JPEG のようなアルファチャンネルを持たないファイルフォーマットでは、デフォルトでアルファチャンネルは全てオンになっています。Sketch のインスタンスに描画しようとしたときに、画像の表示に問題が生じた場合、gldisable("blend")によってブレンドをオフにするか、clearchannel("alpha",1.) によってアルファチャンネルをすべてオンに設定してみると良いかもしれません。

Image コンストラクタ

// デフォルトの幅と高さで新しい Image インスタンスを生成します。 var myimg = new Image();

// 指定された幅と高さで新しい Image インスタンスを生成します。 var myimg = new Image(width,height);

// ディスクのファイルから 新しい Image インスタンスを生成します。 var myimg = new Image(filename);

// 他の Image のインスタンスから 新しい Image インスタンスをを生成します。 var myimg = new Image(imageobject);

// Sketch のインスタンスから 新しい Image インスタンスをを生成します。 var myimg = new Image(sketchobject);

Image プロパティ

size(Array[2], get/set)

size[0] は幅 size[1] は高さです。

Image メソッド

adjustchannel (channel, scale, bias)

channel アーギュメントで指定された画像のチャンネルの全ての値を調整します。チャンネルの値に scale アーギュメントで指定された値を掛け、bias アーギュメントで指定された値を加え、その結果として得られたチャンネルの値を 0. 〜 1.の範囲にクリップします。channel アーギュメントが取り得る値は、文字列 "red"、"green"、"blue"、"alpha" です。

alphachroma (red, green, blue, tolerance, fade, minkey, maxkey)

指定された RGB によるターゲットカラーからの色の距離に基づいてアルファチャンネルを生成します。tolerance が指定されない場合、fademinkey アーギュメントは 0 に指定されたものとみなされます。maxkey アーギュメントが指定されない場合、この値は 1. であるとみなされます。

blendchannel (source_object, alpha, source_channel, destination_channel)

alpha アーギュメントによるプレンド量の指定をサポートしている以外は、copychannel メソッドと同じです。ソースオブジェクトは、Image(sketch ではありません)のインスタンスである必要があります。ソースオブジェクトのサイズがデスティネーションオブジェクトのサイズと異なる場合、それぞれ小さいほうの幅と高さによる矩形領域が、ブレンドされた値による矩形領域になります。チャンネル(channnel)に関するアーギュメントが取り得る値は、文字列 "red"、"green"、"blue"、"alpha" です。

blendpixels (source_object, alpha, destination_x, destination_y, source_x, source_y, width,height)

alpha アーギュメントで指定されるグローバル・アルファ値を含むアルファブレンディングをサポートしている以外は、copypixels メソッドと同じです。このグローバル・アルファ値はソースオブジェクトのアルファチャンネルの各ピクセルの値に掛けられます。Sketch のインスタンスはアルファチャンネルを含まず、アルファが全てオンであるとみなされます。ソースオブジェクトは Image または Sketch のどちらのインスタンスでも構いません。

clear (red, green, blue, alpha)

画像のすべてのピクセルの値を、redgreenbluealpha アーギュメントで指定された値に設定します。アーギュメントが指定されない場合、これらの値はそれぞれ( 0, 0, 0, 1 )であるとみなされます。

clearchannel (channel, value)

channel アーギュメントで指定された画像チャンネルのすべての値を、value アーギュメントで指定された値に設定します。value アーギュメントが指定されない場合、この値は 0 であるとみなされます。channel アーギュメントが取り得る値は、文字列 "red"、"green"、"blue"、 "alpha" です。

copychannel (source_object, source_channel, destination_channel)

source_channel アーギュメントで指定されたソースオブジェクトのチャンネルの値をdestination_channel アーギュメントで指定されたデスティネーションオブジェクトのチャンネルにコピーします。ソースオブジェクトは、Image(sketch ではありません)のインスタンスである必要があります。ソースオブジェクトのサイズがデスティネーションオブジェクトのサイズと異なる場合、それぞれ小さいほうの幅と高さによる矩形領域が、値をコピーされる矩形領域になります。チャンネル(channnel)に関するアーギュメントが取り得る値は、文字列 "red"、"green"、"blue"、"alpha" です。

copypixels (source_object, destination_x, destination_y, source_x, source_y, width, height)

ソースオブジェクトのピクセルを、destination_xdestination_y というアーギュメントで指定された位置にコピーします。ソースの中の、コピー開始位置の xy オフセットとコピーされる矩形領域のサイズは、source_xsource_ywidthheight というアーギュメントで指定されます。xy オフセットが指定されない場合、オフセットは 0 で、widthheight はソースイメージのサイズと同じであるとみなされます。ピクセルのスケーリングはサポートされません。ソースオブジェクトは Image または Sketch のどちらのインスタンスでも構いません。

flip (horizontal_flip, vertical_flip)

画像を水平、または垂直方向に反転させます。アーギュメントが取りうる値は 0 または 1 で、0 ならば反転を行なわず、1 ならば反転を行ないます。

freepeer ()

ネイティブな c ピアからイメージデータを開放します。これは、Javascript のガベージコレクタによって考慮されず、js が割り当てたメモリに基づいてガベージコレクタがガベージコレクションの実行を決定するまでの間に、多くのメモリを消費してします可能性があるものです。これを呼び出すと、この Image オブジェクトの他への利用ができなくなります。

fromnamedmatrix (matrixname)

Image に matrixname で指定された jit.matrix のピクセルをコピーします。

getpixel (x, y)

指定された位置のピクセル値を格納した配列を返します。この配列では、値は RGBA の順になっています。すなわち、配列のインデックス 0 が赤、1 が 緑、2 が青、3 がアルファになります。色の値は 0. 〜 1. の浮動小数点数です。

setpixel (x, y, red, green, blue, alpha)

指定された位置のピクセルに値を設定します。色の値は 0. 〜 1. の浮動小数点数です。

swapxy ()

幅と高さがそれぞれ逆になるように、画像の座標軸を入れ替えます。その結果として、画像は時計と反対周りに90 度回転し、垂直方向に反転します。

tonamedmatrix (matrixname)

matrixname で指定された jit.matrix に、画像のピクセルをコピーします。