ビットマップデータのコピー

イメージ間でビットマップデータをコピーするには、clone()copyPixels()copyChannel()、および draw() といったメソッドを使用できます。

その名のとおり、clone() メソッドを使用すると、BitmapData オブジェクト間でビットマップデータのクローンの作成やサンプリングを実行できます。このメソッドが呼び出されると、コピー元のインスタンスの同一クローンである新しい BitmapData オブジェクトが返されます。

次の例では、親であるオレンジ色の正方形のクローンを作成し、そのクローンを元の親正方形の横に配置します。

import flash.display.Bitmap;
import flash.display.BitmapData;

var myParentSquareBitmap:BitmapData = new BitmapData(100, 100, false, 0x00ff3300);
var myClonedChild:BitmapData = myParentSquareBitmap.clone();

var myParentSquareContainer:Bitmap = new Bitmap(myParentSquareBitmap);
this.addChild(myParentSquareContainer);

var myClonedChildContainer:Bitmap = new Bitmap(myClonedChild);
this.addChild(myClonedChildContainer);
myClonedChildContainer.x = 110;

copyPixels() メソッドは、BitmapData オブジェクト間でピクセルをすばやく、かつ簡単に作成できます。このメソッドは、sourceRect パラメータで定義された、元のイメージの矩形のスナップショットを取り出し、それを同一サイズの別の矩形領域にコピーします。新たに "ペーストされた" 矩形の場所は、destPoint パラメータ内で指定されます。

copyChannel() メソッドは、元の BitmapData オブジェクトから定義済みのカラーチャンネル値、つまりアルファ、赤、緑、または青をサンプリングし、それをターゲット BitmapData オブジェクトのチャンネルにコピーします。このメソッドを呼び出しても、ターゲットの BitmapData オブジェクトの他のチャンネルには影響しません。

draw() メソッドは、元のスプライト、ムービークリップ、またはその他の表示オブジェクトのグラフィックコンテンツを、新しいビットマップに描画またはレンダリングします。matrixcolorTransformblendMode、およびターゲットの clipRect パラメータを使用すると、新しいビットマップのレンダリング方法を変更することができます。このメソッドでは、Flash Player ベクターレンダラを使用してデータを生成します。

draw() を呼び出すと、次のように、スプライト、ムービークリップ、またはその他の表示オブジェクトといったソースオブジェクトを最初のパラメータとして渡します。

myBitmap.draw(movieClip);

ソースオブジェクトが最初にロードされてから、色やマトリックスなどが変換されている場合は、変換内容は新しいオブジェクトにコピーされません。新しいビットマップに変換内容をコピーするには、元のオブジェクトの transform プロパティの値を、新しい BitmapData オブジェクトを使用する Bitmap オブジェクトの transform プロパティにコピーする必要があります。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000247.html