| パッケージ | flash.display |
| クラス | public class BitmapData |
| 継承 | BitmapData Object |
| 実装 | IBitmapDrawable |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
flash.display.Loader クラスを使ってロードされるビットマップイメージの BitmapData にアクセスすることもできます。
このクラスを使用すると、ビットマップのレンダリング処理を Flash Player 内部の表示更新ルーチンから分離できます。BitmapData オブジェクトを直接操作することで複雑なイメージを作成できるので、ベクターデータのコンテンツを連続的に再描画するフレーム単位のオーバーヘッドを避けることができます。
BitmapData クラスのメソッドは、(ビットマップ以外の表示オブジェクトでは使用可能な) フィルタを使って設定できない各種の効果に対応しています。
BitmapData オブジェクトには、ピクセルデータの配列が含まれています。このデータは、完全に不透明なビットマップ、またはアルファチャンネルデータを含む透明なビットマップを表現できます。いずれの種類の BitmapData オブジェクトも 32 ビット整数のバッファーとして保存されます。各 32 ビット整数は、ビットマップ内の 1 つのピクセルのプロパティを決定します。
各 32 ビット整数は、アルファ透明度とピクセルの赤緑青 (ARGB) の値を表す 4 つの 8 ビットチャンネル値 (0 ~ 255) の組み合わせです。(ARGB 値では、最上位バイトがアルファチャンネル値を表し、続いて赤、緑、青を表します。)
この 4 つのチャンネル (アルファ、赤、緑、青) は、BitmapData.copyChannel() メソッド、または DisplacementMapFilter.componentX および DisplacementMapFilter.componentY プロパティで使用する場合に数値として表されます。これらの数値は、BitmapDataChannel クラスの次の定数によって表されます。
BitmapDataChannel.ALPHABitmapDataChannel.REDBitmapDataChannel.GREENBitmapDataChannel.BLUEBitmap オブジェクトの bitmapData プロパティを使用すると、BitmapData オブジェクトを Bitmap オブジェクトに関連付けることができます。
Graphics.beginBitmapFill() メソッドを使用すると、BitmapData オブジェクトを使って Graphics オブジェクトを塗りつぶすことができます。
BitmapData オブジェクトの最大の幅と高さは 2880 ピクセルです。
BitmapData オブジェクトのいずれかのメソッドやプロパティを呼び出したときに、BitmapData オブジェクトが無効なものであった場合 (たとえば height == 0 かつ width == 0 の場合) や、dispose() で既に破棄されたものであった場合は、ArgumentError エラーがスローされます。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
| height : int
[read-only]
ビットマップイメージの高さ (ピクセル単位) です。
| BitmapData | ||
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| rect : Rectangle
[read-only]
ビットマップイメージのサイズと位置を定義する矩形です。
| BitmapData | ||
| transparent : Boolean
[read-only]
ビットマップイメージがピクセル単位の透明度をサポートするかどうかを定義します。
| BitmapData | ||
| width : int
[read-only]
ビットマップイメージの幅 (ピクセル単位) です。
| BitmapData | ||
| メソッド | 定義元 | ||
|---|---|---|---|
|
指定された幅と高さで BitmapData オブジェクトを作成します。
| BitmapData | ||
|
applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
ソースイメージとフィルタオブジェクトを受け取り、フィルタを適用して得られるイメージを生成します。
| BitmapData | ||
|
新しい BitmapData オブジェクトとして、元のインスタンスのクローンを返します。含まれるビットマップはまったく同じコピーになります。
| BitmapData | ||
|
ColorTransform オブジェクトを使用して、ビットマップイメージの特定領域のカラー値を調整します。
| BitmapData | ||
|
2 つの BitmapData オブジェクトを比較します。
| BitmapData | ||
|
copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
別の BitmapData オブジェクトまたは現在の BitmapData オブジェクトの 1 つのチャンネルのデータを、現在の BitmapData オブジェクトのチャンネルに転送します。
| BitmapData | ||
|
copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
イメージ間のピクセル操作 (伸長、回転、カラー効果なし) を高速に実行するルーチンを提供します。
| BitmapData | ||
|
BitmapData オブジェクトの格納に使用されるメモリを解放します。
| BitmapData | ||
|
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Flash Player のベクターレンダラを使用して、ソース表示オブジェクトをビットマップイメージ上に描画します。
| BitmapData | ||
|
指定された ARGB カラーで矩形領域のピクセルを塗りつぶします。
| BitmapData | ||
|
(x, y) 座標を始点として所定の色で塗りつぶすことにより、イメージに対する塗りつぶし処理を実行します。
| BitmapData | ||
|
BitmapData オブジェクト、ソース矩形、フィルタオブジェクトを指定して、applyFilter() 呼び出しによって影響を受ける矩形領域を決定します。
| BitmapData | ||
|
(findColor パラメータが true に設定されている場合) ビットマップイメージ内の指定された色のすべてのピクセルを完全に囲む矩形領域を判別します。または、(findColor パラメータが false に設定されている場合) 指定された色ではないすべてのピクセルを完全に囲む矩形領域を判別します。
| BitmapData | ||
|
BitmapData オブジェクトの特定ポイント (x, y) の RGB ピクセル値を表す整数を返します。
| BitmapData | ||
|
アルファチャンネルデータと RGB データを含む ARGB カラー値を返します。
| BitmapData | ||
|
ピクセルデータの矩形領域からバイト配列を生成します。
| BitmapData | ||
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
|
hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
1 つのビットマップイメージと、ポイント、矩形、または他のビットマップイメージとの間でピクセルレベルのヒットを検出します。
| BitmapData | ||
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
|
この BitmapData オブジェクトが変更されたときに、BitmapData オブジェクトを参照するすべてのオブジェクト (たとえば Bitmap オブジェクト) が更新されないように、イメージをロックします。
| BitmapData | ||
|
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
ソースイメージとターゲットイメージをチャンネルごとにブレンドします。
| BitmapData | ||
|
noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
ランダムノイズを表すピクセルでイメージを塗ります。
| BitmapData | ||
|
paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
指定された最大 4 つのカラーパレットデータ配列 (チャンネルごとに 1 つの配列) を使用して、イメージ内のカラーチャンネル値をマッピングし直します。
| BitmapData | ||
|
perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Perlin ノイズイメージを生成します。
| BitmapData | ||
|
pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
ソースイメージからターゲットイメージへのピクセルディゾルブ、または同じイメージを使用することによるピクセルディゾルブを実行します。
| BitmapData | ||
![]() |
指定されたプロパティが存在し列挙できるかどうかを示します。
| Object | |
|
所定の (x, y) ピクセル量だけイメージをスクロールします。
| BitmapData | ||
|
BitmapData オブジェクトの 1 つのピクセルを設定します。
| BitmapData | ||
|
BitmapData オブジェクトの 1 つのピクセルにカラー値とアルファ透明度を設定します。
| BitmapData | ||
|
バイト配列をピクセルデータの矩形領域に変換します。
| BitmapData | ||
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
|
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
指定されたしきい値に照らしてイメージのピクセル値をテストし、テストに合格したピクセルに新しいカラー値を設定します。
| BitmapData | ||
![]() |
指定されたオブジェクトのストリング表現を返します。
| Object | |
|
この BitmapData オブジェクトが変更されたときに、BitmapData オブジェクトを参照するすべてのオブジェクト (たとえば Bitmap オブジェクト) が更新されるように、イメージをロック解除します。
| BitmapData | ||
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
| height | プロパティ |
height:int [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビットマップイメージの高さ (ピクセル単位) です。
public function get height():int
| rect | プロパティ |
rect:Rectangle [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビットマップイメージのサイズと位置を定義する矩形です。矩形の上端と左端が 0 になります。幅と高さは、BitmapData オブジェクトのピクセルの幅および高さと等しくなります。
public function get rect():Rectangle
| transparent | プロパティ |
transparent:Boolean [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビットマップイメージがピクセル単位の透明度をサポートするかどうかを定義します。この値を設定できるのは、true を、コンストラクタの transparent パラメータに渡すことによって BitmapData オブジェクトを作成する場合だけです。BitmapData オブジェクトを作成した後、transparent プロパティの値が true であるかどうかを確認することにより、このオブジェクトがピクセルごとの透明度をサポートするかどうかを検査できます。
public function get transparent():Boolean
| width | プロパティ |
width:int [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ビットマップイメージの幅 (ピクセル単位) です。
public function get width():int
| BitmapData | () | コンストラクタ |
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
指定された幅と高さで BitmapData オブジェクトを作成します。fillColor パラメータに値を指定した場合、ビットマップのすべてのピクセルにその色が設定されます。
false を transparent パラメータに渡さない限り、デフォルトではビットマップが透明として作成されます。不透明のビットマップを作成した後、それを透明のビットマップに変更することはできません。不透明のビットマップに含まれるすべてのピクセルは、24 ビットのカラーチャンネル情報だけを使用します。ビットマップを透明に定義した場合、すべてのピクセルは、アルファ透明チャンネルを含む 32 ビットのカラーチャンネル情報を使用します。
BitmapData オブジェクトの最大の幅と高さは 2880 ピクセルです。width または height に 2880 よりも大きい値を指定すると、新しいインスタンスは作成されません。
パラメータwidth:int — ビットマップイメージの幅 (ピクセル単位) です。
|
|
height:int — ビットマップイメージの高さ (ピクセル単位) です。
|
|
transparent:Boolean (default = true) — ビットマップイメージがピクセル単位の透明度をサポートするかどうかを指定します。デフォルト値は true です (透明)。完全に透明なビットマップを作成するには、transparent パラメータの値を true に、fillColor パラメータの値を 0x00000000 (または 0) に設定します。transparent プロパティを false に設定すると、レンダリングのパフォーマンスが若干向上することがあります。
|
|
fillColor:uint (default = 0xFFFFFFFF) — ビットマップイメージ領域を塗りつぶすのに使用する 32 ビット ARGB カラー値です。デフォルト値は 0xFFFFFFFF (白) です。
|
ArgumentError — 幅または高さが無効です (0 以下または 2880 より大きい)。
|
| applyFilter | () | メソッド |
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ソースイメージとフィルタオブジェクトを受け取り、フィルタを適用して得られるイメージを生成します。
このメソッドはビルトインフィルタオブジェクトの動作に依存します (このオブジェクトは、入力ソース矩形によって影響を受けるターゲット矩形を決定します)。
フィルタを適用した後、結果として得られるイメージが入力イメージよりも大きくなることがあります。たとえば、BlurFilter クラスを使用してソース矩形 (50,50,100,100) とターゲットポイント (10,10) をぼかすと、ターゲットイメージで変更される領域は、ぼかしのために、(10,10,60,60) よりも大きくなります。このことは、applyFilter() 呼び出し中に内部で発生します。
sourceRect パラメータ (sourceBitmapData パラメータのパラメータ) が内側領域 (200 x 200 のイメージ内の (50,50,100,100) など) である場合、フィルタは、sourceRect パラメータの外側にあるソースピクセルを使用して、ターゲット矩形を生成します。
sourceBitmapData パラメータとして指定されたオブジェクトと BitmapData オブジェクトが同じであれば、Flash Player はオブジェクトの一時コピーを使ってフィルタを実行します。最適なパフォーマンスを得るには、このような状況を避けてください。
パラメータ
sourceBitmapData:BitmapData — 使用する入力ビットマップイメージです。ソースイメージは、別の BitmapData オブジェクトにすることも、現在の BitmapData インスタンスを参照することもできます。
|
|
sourceRect:Rectangle — 入力として使用するソースイメージの領域を定義する矩形です。
|
|
destPoint:Point — ソース矩形の左上隅に対応する、ターゲットイメージ (現在の BitmapData インスタンス) 内のポイントです。
|
|
filter:BitmapFilter — フィルタ適用処理に使用されるフィルタオブジェクトです。各種類のフィルタは、次のように所定の要件を備えています。
|
TypeError — sourceBitmapData、sourceRect、destPoint、または filter が null です。
|
|
IllegalOperationError — BitmapData オブジェクトの透明度は、フィルタ操作と互換性がありません。
|
関連項目
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
| clone | () | メソッド |
public function clone():BitmapData
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
新しい BitmapData オブジェクトとして、元のインスタンスのクローンを返します。含まれるビットマップはまったく同じコピーになります。
戻り値BitmapData — 元のオブジェクトと同一の新しい BitmapData オブジェクトです。
|
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(100, 80, false, 0x00000000); var bmd2:BitmapData = bmd1.clone(); bmd1.setPixel32(1, 1, 0xFFFFFFFF); trace(bmd1.getPixel32(1, 1).toString(16)); // ffffffff trace(bmd2.getPixel32(1, 1).toString(16)); // ff000000 var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); bm2.x = 110; this.addChild(bm2);
| colorTransform | () | メソッド |
public function colorTransform(rect:Rectangle, colorTransform:ColorTransform):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ColorTransform オブジェクトを使用して、ビットマップイメージの特定領域のカラー値を調整します。矩形がビットマップイメージの境界と一致する場合、このメソッドはイメージ全体のカラー値を変換します。
パラメータ
rect:Rectangle — ColorTransform オブジェクトが適用されるイメージの領域を定義する Rectangle オブジェクトです。
|
|
colorTransform:ColorTransform — 適用されるカラー変換値を記述する ColorTransform オブジェクトです。
|
TypeError — rect または colorTransform が null です。
|
関連項目
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.ColorTransform; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFF0000); var cTransform:ColorTransform = new ColorTransform(); cTransform.alphaMultiplier = 0.5 var rect:Rectangle = new Rectangle(0, 0, 40, 30); bmd.colorTransform(rect, cTransform); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
| compare | () | メソッド |
public function compare(otherBitmapData:BitmapData):Object
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
2 つの BitmapData オブジェクトを比較します。2 つの BitmapData オブジェクトのサイズ (幅と高さ) が同じであれば、メソッドは、各ピクセルが 2 つのソースオブジェクトのピクセル間の「差分」を示す新しい BitmapData オブジェクトを返します。
otherBitmapData オブジェクトのピクセル値を引いた値) を表します。この場合、アルファチャンネルの差分は無視されます。 otherBitmapData オブジェクトのアルファ値を引いた値) を表します。たとえば、次のような 2 つの BitmapData オブジェクトがあるとします。
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800);
var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600);
var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData;
trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200
メモ : 2 つの BitmapData オブジェクトを塗りつぶすために使用されるそれぞれの色の RGB 値はわずかに異なります (0xFF8800 と 0xCC6600)。compare() メソッドの結果として新しい BitmapData オブジェクトが生成され、その各ピクセルは 2 つのビットマップ間の RGB 値の差分を示します。
次のような 2 つの BitmapData オブジェクトがあるとします。両者の RGB カラーは同じですが、アルファ値は異なります。
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00);
var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00);
var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData;
trace ("0x" + diffBmpData.getPixel32(0,0).toString(16); // 0x33ffffff
compare() メソッドの結果として新しい BitmapData オブジェクトが生成され、その各ピクセルは 2 つのビットマップ間のアルファ値の差分を示します。
BitmapData オブジェクトが等しい (幅と高さ、およびピクセル値が同じ) 場合、このメソッドは数値 0 を返します。
BitmapData オブジェクトの幅が等しくない場合、このメソッドは数値 -3 を返します。
BitmapData オブジェクトの高さが等しくない場合、幅が同じであれば、このメソッドは数値 -4 を返します。
次の例では、幅の異なる 2 つの Bitmap オブジェクトを比較します (それぞれの幅は 50 と 60)。
var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000); var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00); trace(bmd1.compare(bmd2)); // -4
パラメータ
otherBitmapData:BitmapData — ソース BitmapData オブジェクトと比較される BitmapData オブジェクトです。
|
Object — 2 つの BitmapData オブジェクトのサイズ (幅と高さ) が同じであれば、このメソッドは、2 つのオブジェクト間の差分を示す新しい BitmapData オブジェクトを返します (主な説明の項を参照してください)。BitmapData オブジェクトが等しい場合、このメソッドは数値 0 を返します。BitmapData オブジェクトの幅が等しくない場合、このメソッドは数値 -3 を返します。BitmapData オブジェクトの高さが等しくない場合、このメソッドは数値 -4 を返します。
|
TypeError — otherBitmapData が null です。
|
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = BitmapData(bmd1.compare(bmd2)); var diffValue:String = diffBmpData.getPixel32(1, 1).toString(16); trace(diffValue); // 33ffffff var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 60;
| copyChannel | () | メソッド |
public function copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
別の BitmapData オブジェクトまたは現在の BitmapData オブジェクトの 1 つのチャンネルのデータを、現在の BitmapData オブジェクトのチャンネルに転送します。ターゲット BitmapData オブジェクトの他のチャンネルのデータはすべて保たれます。
ソースチャンネルの値とターゲットチャンネルの値は、次のいずれかになります。
BitmapDataChannel.REDBitmapDataChannel.GREENBitmapDataChannel.BLUEBitmapDataChannel.ALPHAパラメータ
sourceBitmapData:BitmapData — 使用する入力ビットマップイメージです。ソースイメージは、別の BitmapData オブジェクトにすることも、現在の BitmapData オブジェクトを参照することもできます。
|
|
sourceRect:Rectangle — ソース側の Rectangle オブジェクトです。ビットマップ内のより小さな領域のチャンネルデータだけをコピーするには、BitmapData オブジェクトのサイズ全体よりも小さいソース矩形を指定します。
|
|
destPoint:Point — 新しいチャンネルデータが配置される矩形領域の左上隅を表すターゲット Point オブジェクトです。ある特定の領域のチャンネルデータだけをターゲットイメージ内の別の領域にコピーするには、(0,0) 以外のポイントを指定します。
|
|
sourceChannel:uint — ソースチャンネルです。BitmapDataChannel クラスの値 (BitmapDataChannel.RED、BitmapDataChannel.BLUE、BitmapDataChannel.GREEN、BitmapDataChannel.ALPHA) を使用します。
|
|
destChannel:uint — ターゲットチャンネルです。BitmapDataChannel クラスの値 (BitmapDataChannel.RED、BitmapDataChannel.BLUE、BitmapDataChannel.GREEN、BitmapDataChannel.ALPHA) を使用します。
|
TypeError — sourceBitmapData、sourceRect、または destPoint が null です。
|
関連項目
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd.copyChannel(bmd, rect, pt, BitmapDataChannel.RED, BitmapDataChannel.BLUE); var bm:Bitmap = new Bitmap(bmd); this.addChild(bm);
| copyPixels | () | メソッド |
public function copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
イメージ間のピクセル操作 (伸長、回転、カラー効果なし) を高速に実行するルーチンを提供します。このメソッドは、ソースイメージの矩形領域を、ターゲット BitmapData オブジェクトのターゲットポイントにある同じサイズの矩形領域にコピーします。
alphaBitmap パラメータと alphaPoint パラメータを含めれば、2 番目のイメージをソースイメージのアルファソースとして使用できます。ソースイメージにアルファデータがある場合、両方のアルファデータセットを使用して、ソースイメージのピクセルがソースイメージ上に合成されます。alphaPoint パラメータは、アルファイメージ内のポイントであり、ソース側矩形の左上隅に対応するものです。ソースイメージとアルファイメージが交わらない部分のピクセルは、ターゲットイメージにコピーされません。
mergeAlpha プロパティは、透明なイメージを別の透明なイメージにコピーするときにアルファチャンネルを使用するかどうかを制御します。アルファチャンネルを使用してピクセルをコピーするには、mergeAlpha プロパティを true に設定します。mergeAlpha プロパティのデフォルト値は false です。
パラメータ
sourceBitmapData:BitmapData — ピクセルのコピー元となる入力ビットマップイメージです。ソースイメージは、別の BitmapData インスタンスにすることも、現在の BitmapData インスタンスを参照することもできます。
|
|
sourceRect:Rectangle — 入力として使用するソースイメージの領域を定義する矩形です。
|
|
destPoint:Point — ターゲットポイントです。新しいピクセルが配置される矩形領域の左上隅を表します。
|
|
alphaBitmapData:BitmapData (default = null) — 第 2 のアルファ BitmapData オブジェクトソースです。
|
|
alphaPoint:Point (default = null) — アルファ BitmapData オブジェクトソース内のポイントです。sourceRect パラメータの左上隅に対応します。
|
|
mergeAlpha:Boolean (default = false) — アルファチャンネルを使用するには、値を true に設定します。アルファチャンネルを使用せずにピクセルをコピーするには、値を false に設定します。
|
TypeError — sourceBitmapData、sourceRect または destPoint が null です。
|
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd2.copyPixels(bmd1, rect, pt); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 50;
| dispose | () | メソッド |
public function dispose():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
BitmapData オブジェクトの格納に使用されるメモリを解放します。
dispose() メソッドをイメージに対して呼び出すと、イメージの幅と高さがゼロに設定されます。それ以降、この BitmapData インスタンスのメソッドやプロパティを呼び出すと失敗し、例外がスローされます。
dispose() メソッドに対する呼び出し (例外がスロー) の後、BitmapData オブジェクトを呼び出したときの効果を示しています。
import flash.display.BitmapData;
var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x000000FF);
trace(myBitmapData.getPixel(1, 1)); // 255 == 0xFF
myBitmapData.dispose();
try {
trace(myBitmapData.getPixel(1, 1));
} catch (error:Error) {
trace(error); // ArgumentError
}| draw | () | メソッド |
public function draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
Flash Player のベクターレンダラを使用して、source 表示オブジェクトをビットマップイメージ上に描画します。matrix、colorTransform、blendMode、およびターゲット clipRect パラメータを指定することにより、レンダリングの実行方法を制御できます。さらに、必要に応じて、拡大 / 縮小時にビットマップのスムージングを行うかどうかを指定することもできます (これはソースオブジェクトが BitmapData オブジェクトの場合にのみ可能です)。
このメソッドは、オーサリングツールインターフェイスにおいてオブジェクトに対して標準ベクターレンダラを使ってオブジェクトを描画する方法に直接対応します。
ソース表示オブジェクトは、この呼び出しで適用される変換を使用しません。ライブラリやファイル内に存在するように処理され、マトリックス変換、カラー変換、ブレンドモードはありません。変換プロパティを使って (ムービークリップなどの) 表示オブジェクトを描画するには、transform プロパティオブジェクトを、BitmapData オブジェクトを使用する Bitmap オブジェクトの transform プロパティにコピーすることができます。
メモ : source オブジェクト (Sprite または MovieClip オブジェクトの場合はそのすべての子オブジェクトも含む) は、呼び出し元と同じドメインに属するか、Security.allowDomain() メソッド呼び出し後に呼び出し元からアクセスできる SWF ファイルに含まれている必要があります。これらの条件が満たされない場合、draw() メソッドは何も描画しません。
このメソッドは、Update 3 以降の RTMP を介してサポートされます。サーバーサイドスクリプトで、Flash Media Server 上のストリームへのアクセスを制御することができます。詳細については、Client.audioSampleAccess プロパティおよび Client.videoSampleAccess プロパティのトピック (『Server-Side ActionScript Language Reference for Flash Media Server』) を参照してください。
パラメータ
source:IBitmapDrawable — BitmapData オブジェクトに描画される表示オブジェクトまたは BitmapData オブジェクトです (DisplayObject およびBitmapData クラスは IBitmapDrawable インターフェイスを実装しています)。
|
|
matrix:Matrix (default = null) — ビットマップの座標を拡大 / 縮小、回転、または変換するために使われる Matrix オブジェクトです。マトリックス変換をイメージに適用したくない場合は、(デフォルト new Matrix() コンストラクタを使って作成される) 単位マトリックスにこのパラメータを設定するか、null 値を渡してください。
|
|
colorTransform:ColorTransform (default = null) — ビットマップのカラー値を調整するために使用する ColorTransform オブジェクトです。オブジェクトが提供されない場合、ビットマップイメージのカラーは変換されません。このパラメータを渡す必要があるが、イメージを変換したくない場合、このパラメータを、デフォルトの new ColorTransform() コンストラクタを使って作成される ColorTransform オブジェクトに設定します。
|
|
blendMode:String (default = null) — 結果として生成されるビットマップに適用されるブレンドモードを指定する、flash.display.BlendMode クラスのストリング値です。
|
|
clipRect:Rectangle (default = null) — 描画するソースオブジェクトの領域を定義する矩形オブジェクトです。この値を指定しない場合、クリッピングは発生せず、ソースオブジェクト全体が描画されます。
|
|
smoothing:Boolean (default = false) — matrix パラメータでの拡大 / 縮小または回転により、拡大 / 縮小時または回転時に BitmapData オブジェクトがスムージングされるかどうかを決定するブール値です。smoothing パラメータが適用されるのは、source パラメータが BitmapData オブジェクトである場合のみです。smoothing を false に設定すると、回転または拡大 / 縮小した BitmapData イメージはピクセル化されたように、またはぎざぎざに表示されます。たとえば、次の 2 つのイメージは、source パラメータの同じ BitmapData オブジェクトを使用していますが、smoothing パラメータは左の true と右の false に設定されています。
|
ArgumentError — source パラメータが、BitmapData または DisplayObject オブジェクトではありません。
|
|
SecurityError — source オブジェクト、および (Sprite または MovieClip オブジェクトの) すべての子オブジェクトが呼び出し元と同じドメインに属していないか、Security.allowDomain() メソッド呼び出し後に呼び出し元からアクセスできる SWF ファイルに含まれていません。
|
|
ArgumentError — source が null であるか、有効な IBitmapDrawable オブジェクトではありません。
|
関連項目
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.draw(tf); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
| fillRect | () | メソッド |
public function fillRect(rect:Rectangle, color:uint):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
指定された ARGB カラーで矩形領域のピクセルを塗りつぶします。
パラメータ
rect:Rectangle — 塗りつぶす矩形領域です。
|
|
color:uint — 領域を塗りつぶすため使用される ARGB カラー値です。ARGB カラー値は通常、16 進数形式 (たとえば、0xFF336699) で指定します。
|
TypeError — rect が null です。
|
関連項目
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x0000FF); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm);
| floodFill | () | メソッド |
public function floodFill(x:int, y:int, color:uint):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
(x , y) 座標を始点として所定の色で塗りつぶすことにより、イメージに対する塗りつぶし処理を実行します。floodFill() メソッドは、各種のペイントプログラムのバケツツールのようなものです。color は、アルファ情報とカラー情報を含む ARGB カラーです。
パラメータ
x:int — イメージの x 座標です。
|
|
y:int — イメージの y 座標です。
|
|
color:uint — 塗りとして使用する ARGB カラーです。
|
(10, 10) で定義されたピクセルを囲んでいる領域) を赤で塗りつぶす方法を示しています。import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x000000FF); rect = new Rectangle(15, 15, 25, 25); myBitmapData.fillRect(rect, 0x000000FF); myBitmapData.floodFill(10, 10, 0x00FF0000); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm);
| generateFilterRect | () | メソッド |
public function generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
BitmapData オブジェクト、ソース矩形、フィルタオブジェクトを指定して、applyFilter() 呼び出しによって影響を受ける矩形領域を決定します。
たとえば、ぼかしフィルタは通常、元のイメージのサイズよりも大きい領域に影響します。デフォルトの BlurFilter インスタンスによってフィルタが適用される 100 x 200 ピクセルのイメージでは、blurX = blurY = 4 が (-2,-2,104,204) というターゲット矩形を生成します。generateFilterRect() メソッドを使用すると、このターゲット矩形のサイズを前もって知ることができるので、フィルタ処理の前にターゲットイメージを適切なサイズにすることができます。
一部のフィルタでは、ソースイメージのサイズに基づいてターゲット矩形がクリッピングされる場合があります。たとえば、内側の DropShadow は、ソースイメージよりも大きい結果を生成しません。この API では、ソースの rect パラメータではなく、BitmapData オブジェクトをソースの境界として使用します。
パラメータ
sourceRect:Rectangle — 入力として使用するソースイメージの領域を定義する矩形です。
|
|
filter:BitmapFilter — ターゲット矩形を算出するために使用するフィルタオブジェクトです。
|
Rectangle — イメージ、sourceRect パラメータ、およびフィルタを使って算出されるターゲット矩形です。
|
TypeError — sourceRect または filter が null です。
|
generateFilterRect() メソッドを使用して、ぼかしフィルタの結果が占める矩形領域を決定する方法を示しています。generateFilterRect() メソッドの結果は、trace() 関数により出力されます。import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); trace(bmd.generateFilterRect(rect, filter)); // (x=8, y=8, w=44, h=14) bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
generateFilterRect() メソッドはフィルタを適用しない点に注意してください。applyFilter() メソッドを呼び出してフィルタを適用します。 | getColorBoundsRect | () | メソッド |
public function getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
(findColor パラメータが true に設定されている場合) ビットマップイメージ内の指定された色のすべてのピクセルを完全に囲む矩形領域を判別します。または、(findColor パラメータが false に設定されている場合) 指定された色ではないすべてのピクセルを完全に囲む矩形領域を判別します。
たとえば、あるソースイメージで、0 以外のアルファチャンネルを含むイメージの矩形を判別するには、パラメータとして {mask: 0xFF000000, color: 0x00000000} を渡します。findColor パラメータが true に設定されている場合、(value & mask) == color であるピクセルの境界を見つけるためにイメージ全体が検索されます (value はピクセルのカラー値)。findColor パラメータが false に設定されている場合、(value & mask) != color (value はピクセルのカラー値) であるピクセルの境界を見つけるためにイメージ全体が検索されます。イメージの周囲の空白を判別するには、空白以外のピクセルの境界を見つけるために、{mask: 0xFFFFFFFF, color: 0xFFFFFFFF} を渡してください。
パラメータ
mask:uint — 対象となる ARGB カラーのビットを指定する 16 進数値です。カラー値とこの 16 進数値は、& (ビット単位の論理積 (AND)) 演算子でつなげられます。
|
|
color:uint — 16 進数値です。(findColor が true に設定されている場合は) 一致すべき ARGB カラー、一致すべきでない ARGB カラー (findColor が false に設定されている場合) をそれぞれ指定します。
|
|
findColor:Boolean (default = true) — 値が true に設定された場合、イメージ内のカラー値の境界を返します。値が false に設定された場合、指定されたカラーがイメージ内に存在しない場所の境界を返します。
|
Rectangle — 指定された色であるイメージの領域です。
|
getColorBoundsRect() メソッドを呼び出して、赤 (0xFF0000) のピクセルからなる矩形を判別します。さらに、(findColor パラメータを false に設定して) 同じメソッドを呼び出し、中のピクセルが赤でない矩形を判別します。import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFFFFFF); var rect:Rectangle = new Rectangle(0, 0, 80, 20); bmd.fillRect(rect, 0xFF0000); var maskColor:uint = 0xFFFFFF; var color:uint = 0xFF0000; var redBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, true); trace(redBounds); // (x=0, y=0, w=80, h=20) var notRedBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, false); trace(notRedBounds); // (x=0, y=20, w=80, h=20) var bm:Bitmap = new Bitmap(bmd); addChild(bm);
| getPixel | () | メソッド |
public function getPixel(x:int, y:int):uint
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
BitmapData オブジェクトの特定ポイント (x, y) の RGB ピクセル値を表す整数を返します。getPixel() メソッドは、乗算されていないピクセル値を返します。アルファ情報は返しません。
BitmapData オブジェクト内のピクセルはすべて、乗算済みカラー値として保存されます。乗算済みイメージピクセルは、アルファデータが既に乗算された赤、緑、青の各カラーチャンネル値を保持します。たとえば、アルファ値が 0 の場合、乗算されていない値に関わらず、RGB チャンネルの値も 0 になります。このようにデータが失われると、処理の実行時に問題が生じることがあります。BitmapData のすべてのメソッドは、乗算されていない値を受け取ったり返したりします。ピクセルの内部表現は、値として返される前に、乗算済みから非乗算に変換されます。設定処理の際は、ピクセル値が事前に乗算されてから、生のイメージピクセルが設定されます。
パラメータ
x:int — ピクセルの x 座標。
|
|
y:int — ピクセルの y 座標。
|
uint — RGB ピクセル値を表す数値。(x , y) 座標がイメージの境界外である場合は、0 を返します。
|
関連項目
getPixel() メソッドを使用して、左上隅のピクセルの色の値を決定しています。import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFF0000); var pixelValue:uint = bmd.getPixel(1, 1); trace(pixelValue.toString(16)); // ff0000;
| getPixel32 | () | メソッド |
public function getPixel32(x:int, y:int):uint
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
アルファチャンネルデータと RGB データを含む ARGB カラー値を返します。このメソッドは getPixel() メソッドと似ていますが、getPixel() メソッドはアルファチャンネルデータがない RGB カラーを返します。
BitmapData オブジェクト内のピクセルはすべて、乗算済みカラー値として保存されます。乗算済みイメージピクセルは、アルファデータが既に乗算された赤、緑、青の各カラーチャンネル値を保持します。たとえば、アルファ値が 0 の場合、乗算されていない値に関わらず、RGB チャンネルの値も 0 になります。このようにデータが失われると、処理の実行時に問題が生じることがあります。BitmapData のすべてのメソッドは、乗算されていない値を受け取ったり返したりします。ピクセルの内部表現は、値として返される前に、乗算済みから非乗算に変換されます。設定処理の際は、ピクセル値が事前に乗算されてから、生のイメージピクセルが設定されます。
パラメータ
x:int — ピクセルの x 座標。
|
|
y:int — ピクセルの y 座標。
|
uint — ARGB ピクセル値を表す数値です。(x, y) 座標がイメージの境界外である場合は、0 を返します。
|
関連項目
getPixel32() メソッドを使用して左上隅のピクセルの色の値を決定し、さらに各カラー成分 (アルファ、赤、緑、青) の 16 進数値を決定します。import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, true, 0xFF44AACC); var pixelValue:uint = bmd.getPixel32(1, 1); var alphaValue:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alphaValue.toString(16)); // ff trace(red.toString(16)); // 44 trace(green.toString(16)); // aa trace(blue.toString(16)); // cc
| getPixels | () | メソッド |
public function getPixels(rect:Rectangle):ByteArray
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ピクセルデータの矩形領域からバイト配列を生成します。各ピクセルごとに、符号なし整数 (32 ビットの乗算されないピクセル値) をバイト配列に書き込みます。
パラメータ
rect:Rectangle — 現在の BitmapData オブジェクト内の矩形領域です。
|
ByteArray — 特定の矩形内のピクセルを表す ByteArray です。
|
TypeError — rect が null です。
|
関連項目
getPixels() メソッドを使用して、ByteArray オブジェクトを BitmapData オブジェクトのピクセル値で塗りつぶします。import flash.display.BitmapData; import flash.geom.Rectangle; import flash.utils.ByteArray; var bmd:BitmapData = new BitmapData(80, 40, true); var seed:int = int(Math.random() * int.MAX_VALUE); bmd.noise(seed); var bounds:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height); var pixels:ByteArray = bmd.getPixels(bounds);
| hitTest | () | メソッド |
public function hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
1 つのビットマップイメージと、ポイント、矩形、または他のビットマップイメージとの間でピクセルレベルのヒットを検出します。ヒットテストの際、どちらのオブジェクトの変換 (伸縮、回転など) も考慮されません。
イメージが不透明である場合、このメソッドでは完全に不透明な矩形とみなされます。透過性を考慮するピクセルレベルのヒットテストを実施する場合は、両方のイメージとも透明である必要があります。2 つの透明なイメージをテストする場合、アルファしきい値パラメータによって、アルファチャンネル値 (0 ~ 255) がいくつであれば不透明とみなすかを制御します。
パラメータ
firstPoint:Point — 任意の座標空間における BitmapData イメージの左上隅の位置です。同じ座標空間を使って secondBitmapPoint パラメータが定義されます。
|
|
firstAlphaThreshold:uint — このヒットテストで不透明とみなされるアルファチャンネルの最大値です。
|
|
secondObject:Object — Rectangle、Point、Bitmap、または BitmapData オブジェクトです。
|
|
secondBitmapDataPoint:Point (default = null) — 2 番目の BitmapData オブジェクト内のピクセル位置を定義するポイントです。このパラメータは、secondObject の値が BitmapData オブジェクトである場合にのみ使用します。
|
|
secondAlphaThreshold:uint (default = 1) — 2 番目の BitmapData オブジェクト内で不透明であるとみなされるアルファチャンネルの最大値です。このパラメータは、secondObject の値が BitmapData オブジェクトであり、両方の BitmapData オブジェクトが透明である場合にのみ使用します。
|
Boolean — ヒットが発生する場合は true、そうでない場合は false です。
|
ArgumentError — secondObject パラメータが、Point、Rectangle、Bitmap、または BitmapData オブジェクトではありません。
|
|
TypeError — firstPoint が null です。
|
hitTest() メソッドを呼び出します (secondObject として Point オブジェクトを使用)。最初の呼び出しでは、Point オブジェクトが (不透明ではない) BitmapData オブジェクトの左上隅を定義し、2 番目の呼び出しでは、Point オブジェクトが (不透明な) BitmapData オブジェクトの中央を定義します。import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(80, 80, true, 0x00000000); var rect:Rectangle = new Rectangle(20, 20, 40, 40); bmd1.fillRect(rect, 0xFF0000FF); var pt1:Point = new Point(1, 1); trace(bmd1.hitTest(pt1, 0xFF, pt1)); // false var pt2:Point = new Point(40, 40); trace(bmd1.hitTest(pt1, 0xFF, pt2)); // true
| lock | () | メソッド |
public function lock():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
この BitmapData オブジェクトが変更されたときに、BitmapData オブジェクトを参照するすべてのオブジェクト (たとえば Bitmap オブジェクト) が更新されないように、イメージをロックします。パフォーマンスを向上させるには、このメソッドを unlock() メソッドと共に、setPixel() メソッドまたは setPixel32() メソッドを何度も呼び出す前後に使用してください。
関連項目
bitmapData プロパティ (Bitmap オブジェクトである picture のプロパティ) に基づいて BitmapData オブジェクトを作成します。次に、lock() メソッドを呼び出してから、Bitm