| パッケージ | flash.display |
| public class BitmapData | |
| 継承 | BitmapData Object |
| 実装 | IBitmapDrawable |
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(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
指定された幅と高さで BitmapData オブジェクトを作成します。
| BitmapData | ||
| applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
ソースイメージとフィルタオブジェクトを受け取り、フィルタを適用して得られるイメージを生成します。
| BitmapData | ||
| clone():BitmapData
新しい BitmapData オブジェクトとして、元のインスタンスのクローンを返します。含まれるビットマップはまったく同じコピーになります。
| BitmapData | ||
colorTransform(rect:Rectangle, colorTransform:ColorTransform):void
ColorTransform オブジェクトを使用して、ビットマップイメージの特定領域のカラー値を調整します。 | BitmapData | ||
| compare(otherBitmapData:BitmapData):Object
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 | ||
| dispose():void
BitmapData オブジェクトの格納に使用されるメモリを解放します。
| BitmapData | ||
| draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Flash Player のベクターレンダラを使用して、
source 表示オブジェクトをビットマップイメージ上に描画します。 | BitmapData | ||
| fillRect(rect:Rectangle, color:uint):void
指定された ARGB カラーで矩形領域のピクセルを塗りつぶします。
| BitmapData | ||
| floodFill(x:int, y:int, color:uint):void
(x, y) 座標を始点として所定の色で塗りつぶすことにより、イメージの塗りつぶし処理を実行します。
| BitmapData | ||
| generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle
BitmapData オブジェクト、ソース矩形、フィルタオブジェクトを指定して、
applyFilter() メソッド呼び出しによって影響を受けるターゲット矩形を決定します。 | BitmapData | ||
| getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
(
findColor パラメータが true に設定されている場合) ビットマップイメージ内の指定された色のすべてのピクセルを完全に囲む矩形領域を判別します。または、(findColor パラメータが false に設定されている場合) 指定された色ではないすべてのピクセルを完全に囲む矩形領域を判別します。 | BitmapData | ||
| getPixel(x:int, y:int):uint
BitmapData オブジェクトの特定ポイント (x, y) の RGB ピクセル値を表す整数を返します。
| BitmapData | ||
| getPixel32(x:int, y:int):uint
アルファチャンネルデータと RGB データを含む ARGB カラー値を返します。
| BitmapData | ||
| getPixels(rect:Rectangle):ByteArray
ピクセルデータの矩形領域からバイト配列を生成します。
| BitmapData | ||
![]() | hasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
| hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
1 つのビットマップイメージと、ポイント、矩形、または他のビットマップイメージとの間でピクセルレベルのヒットを検出します。
| BitmapData | ||
![]() | isPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
| lock():void
この 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 | ||
![]() | propertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
| Object | |
| scroll(x:int, y:int):void
所定の (x, y) ピクセル量だけイメージをスクロールします。
| BitmapData | ||
| setPixel(x:int, y:int, color:uint):void
BitmapData オブジェクトの 1 つのピクセルを設定します。
| BitmapData | ||
| setPixel32(x:int, y:int, color:uint):void
BitmapData オブジェクトの 1 つのピクセルにカラー値とアルファ透明度値を設定します。
| BitmapData | ||
| setPixels(rect:Rectangle, inputByteArray:ByteArray):void
バイト配列をピクセルデータの矩形領域に変換します。
| BitmapData | ||
![]() | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
| threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
指定されたしきい値と比較してイメージ内のピクセル値をテストし、テストに適合したピクセルに新しいカラー値を設定します。
| BitmapData | ||
![]() | toString():String
指定されたオブジェクトのストリング表現を返します。
| Object | |
| unlock(changeRect:Rectangle = null):void
この BitmapData オブジェクトが変更されたときに、BitmapData オブジェクトを参照するすべてのオブジェクト (たとえば Bitmap オブジェクト) が更新されるように、イメージをロック解除します。
| BitmapData | ||
![]() | valueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
| Object | |
| height | プロパティ |
| rect | プロパティ |
rect:Rectangle [read-only]ビットマップイメージのサイズと位置を定義する矩形です。矩形の上端と左端は 0 になります。幅と高さは、BitmapData オブジェクトのピクセルの幅および高さと等しくなります。
実装 public function get rect():Rectangle
| transparent | プロパティ |
transparent:Boolean [read-only]
ビットマップイメージがピクセル単位の透明度をサポートするかどうかを定義します。この値を設定できるのは、コンストラクタの transparent パラメータに true を渡すことによって BitmapData オブジェクトを作成する場合だけです。BitmapData オブジェクトを作成した後、transparent プロパティの値が true であるかどうかを確認することにより、このオブジェクトがピクセルごとの透明度をサポートするかどうかを検査できます。
public function get transparent():Boolean
| width | プロパティ |
| BitmapData | () | コンストラクタ |
public 関数 BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
指定された幅と高さで BitmapData オブジェクトを作成します。fillColor パラメータに値を指定した場合、ビットマップのすべてのピクセルにその色が設定されます。
transparent パラメータに false を渡さない限り、デフォルトではビットマップが透明として作成されます。不透明のビットマップを作成した後、それを透明のビットマップに変更することはできません。不透明のビットマップに含まれるすべてのピクセルは、24 ビットのカラーチャンネル情報だけを使用します。ビットマップを透明に定義した場合、すべてのピクセルは、アルファ透明チャンネルを含む 32 ビットのカラーチャンネル情報を使用します。
BitmapData オブジェクトの最大の幅と高さは 2880 ピクセルです。幅または高さに 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ソースイメージとフィルタオブジェクトを受け取り、フィルタを適用して得られるイメージを生成します。
このメソッドはビルトインフィルタオブジェクトの動作に依存します (このオブジェクトは、入力ソース矩形によって影響を受けるターゲット矩形を決定します)。
フィルタを適用した後、結果として得られるイメージは入力イメージよりも大きくなることがあります。たとえば、BlurFilter クラスを使用してソース矩形 (50,50,100,100) とターゲットポイント (10,10) をぼかすと、ターゲットイメージで変更される領域は、ぼかしのために、(10,10,60,60) よりも大きくなります。これは、applyFilter() 呼び出し時に内部で発生します。
sourceBitmapData パラメータの sourceRect パラメータが内側領域 (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新しい BitmapData オブジェクトとして、元のインスタンスのクローンを返します。含まれるビットマップはまったく同じコピーになります。
戻り値BitmapData —
元のオブジェクトと同一の新しい BitmapData オブジェクトです。
|
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(100, 80, true, 0x00000000); var bmd2:BitmapData = bmd1.clone(); bmd1.setPixel32(1, 1, 0xFFFFFFFF); trace(bmd1.getPixel32(1, 1)); // 4294967295 == 0xFFFFFFFF trace(bmd2.getPixel32(1, 1)); // 0 var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 110;
| colorTransform | () | メソッド |
public function colorTransform(rect:Rectangle, colorTransform:ColorTransform):void
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):Object2 つの BitmapData オブジェクトを比較します。2 つの BitmapData オブジェクトのサイズ (幅と高さ) が同じであれば、メソッドは新しい BitmapData オブジェクトを返します。この新しいオブジェクトの各ピクセルは、2 つのソースオブジェクトのピクセル間の「差分」です。
たとえば、次のような 2 つの BitmapData オブジェクトがあるとします。
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF0000); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = bmd1.compare(bmd2);
メモ: 2 つの BitmapData オブジェクトを塗りつぶすために使用されるそれぞれの色の RGB 値はわずかに異なります (0xFF0000 と 0xFFAA00)。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);
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)); // -3
otherBitmapData:BitmapData — ソース BitmapData オブジェクトと比較される BitmapData オブジェクトです。
|
Object —
2 つの BitmapData オブジェクトのサイズ (幅と高さ) が同じであれば、このメソッドは、2 つのオブジェクト間の差分を示す新しい BitmapData オブジェクトを返します (主な説明の項を参照してください)。2 つの 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別の BitmapData オブジェクトまたは現在の BitmapData オブジェクトの 1 つのチャンネルのデータを、現在の BitmapData オブジェクトのチャンネルに転送します。ターゲット BitmapData オブジェクト内のその他のチャンルのデータはすべて保たれます。
ソースチャンネルの値とターゲットチャンネルの値は、次のいずれかになります。
BitmapDataChannel.REDBitmapDataChannel.GREENBitmapDataChannel.BLUEBitmapDataChannel.ALPHAsourceBitmapData: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イメージ間のピクセル操作 (伸長、回転、カラー効果なし) を高速に実行するルーチンを提供します。このメソッドは、ソースイメージの矩形領域を、ターゲット BitmapData オブジェクトのターゲットポイントにある同じサイズの矩形領域にコピーします。
alphaBitmap パラメータと alphaPoint パラメータを含めれば、2 番目のイメージをソースイメージのアルファソースとして使用できます。ソースイメージにアルファデータがある場合、2 つのアルファデータセットを使用して、ソースイメージのピクセルがターゲットイメージ上に合成されます。alphaPoint パラメータは、ソース矩形の左上隅に対応する、アルファイメージ内のポイントです。ソースイメージとアルファイメージが交わらない部分のピクセルは、ターゲットイメージにコピーされません。
mergeAlpha プロパティは、透明なイメージが別の透明なイメージにコピーされるときにアルファチャンネルが使用されるかどうかを制御します。(アルファを使用せずに) ピクセルをコピーするには、mergeAlpha プロパティを false に設定すると、すべてのピクセルがソースからターゲットにコピーされます。mergeAlpha プロパティのデフォルト値は true です。
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():voidBitmapData オブジェクトの格納に使用されるメモリを解放します。
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
Flash Player のベクターレンダラを使用して、source 表示オブジェクトをビットマップイメージ上に描画します。matrix、colorTransform、blendMode、およびターゲット clipRect パラメータを指定することにより、レンダリングの実行方法を制御できます。さらに、必要に応じて、拡大・縮小時にビットマップのスムージングを行うかどうかを指定することもできます (これはソースオブジェクトが BitmapData オブジェクトの場合にのみ可能です)。
このメソッドは、オーサリングツールインターフェイスにおいてオブジェクトに対して標準ベクターレンダラを使ってオブジェクトを描画する方法に直接対応します。
ソース表示オブジェクトは、この呼び出しで適用される変換を使用しません。ライブラリやファイルの中に存在するものとして扱われ、マトリックス変換、カラー変換、ブレンドモードはありません。変換プロパティを使って (ムービークリップなどの) 表示オブジェクトを描画するには、BitmapData オブジェクトを使用する Bitmap オブジェクトの transform プロパティに transform プロパティオブジェクトをコピーすることができます。
セキュリティ上の注意事項:source オブジェクトおよび (Sprite または MovieClip オブジェクトの) すべての子オブジェクトは、呼び出し元と同じドメインに属するか、Security.allowDomain() メソッド呼び出し後に呼び出し元からアクセスできる SWF ファイルに含まれていなければなりません。これらの条件が満たされない場合、draw() メソッドは何も描画しません。
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) — 拡大・縮小時に BitmapData オブジェクトのスムージングを行うかどうかを決定するブール値です。
|
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指定された 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
(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
BitmapData オブジェクト、ソース矩形、フィルタオブジェクトを指定して、applyFilter() メソッド呼び出しによって影響を受けるターゲット矩形を決定します。
たとえば、ぼかしフィルタは通常、元のイメージのサイズよりも大きい領域に影響を与えます。デフォルトの BlurFilter インスタンス (blurX = blurY = 4) によってフィルタが適用される 100 ●x● 200 ピクセルのイメージは (-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
(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 進数値です。カラー値は、& (ビット単位の論理積 (AND)) 演算子を使用して、この 16 進数値と組み合わせられます。
|
|
color:uint — 16 進数値です。(findColor が true に設定されている場合は) 一致すべき ARGB カラー、(findColor が false に設定されている場合は) 一致すべきでない ARGB カラーをそれぞれ指定します。
|
|
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 mask:uint = 0xFFFFFF; var color:uint = 0xFF0000; var redBounds:Rectangle = bmd.getColorBoundsRect(mask, color, true); trace(redBounds); // (x=0, y=0, w=80, h=20) var notRedBounds:Rectangle = bmd.getColorBoundsRect(mask, 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
BitmapData オブジェクトの特定ポイント (x, y) の RGB ピクセル値を表す整数を返します。getPixel() メソッドは、乗算されていないピクセル値を返します。アルファ情報は返しません。
BitmapData オブジェクト内のすべてのピクセルは、乗算済みカラー値として保存されます。乗算済みイメージピクセルは、アルファデータが既に乗算された赤、緑、青の各カラーチャンネル値を保持します。たとえば、アルファ値が 0 の場合、乗算されていない値とは無関係に、RGB チャンネルの値も 0 になります。このようにデータが失われると、処理の実行時に問題が生じることがあります。BitmapData のすべてのメソッドは、乗算されていない値を受け取ったり返したりします。ピクセルの内部表現は、値として返される前に、乗算済みから非乗算に変換されます。設定処理の際は、ピクセル値が事前に乗算されてから、生のイメージピクセルが設定されます。
パラメータx:int — ピクセルの x 座標。
|
|
y:int — ピクセルの y 座標。
|
uint —
RGB ピクセル値を表す数値。(x, y) 座標がイメージ境界の外側である場合、メソッドは 0 を返します。ビットマップが透明ではなく不透明として作成された場合、指定されたポイントがイメージ境界の内側であれば、メソッドはエラーコード -1 を返します。
|
関連項目
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
アルファチャンネルデータと 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 alpha:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alpha.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ピクセルデータの矩形領域からバイト配列を生成します。各ピクセルごとに、符号なし整数 (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):Boolean1 つのビットマップイメージと、ポイント、矩形、または他のビットマップイメージとの間でピクセルレベルのヒットを検出します。ヒットテストの際、どちらのオブジェクトの変換 (伸縮、回転など) も考慮されません。
イメージが不透明である場合、このメソッドでは完全に不透明な矩形とみなされます。透過性を考慮するピクセルレベルのヒットテストを実施するには、両方のイメージとも透明でなければなりません。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 です。
|
secondObject に Point オブジェクトを指定して hitTest() メソッドを呼び出します。
最初の呼び出しでは、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
この BitmapData オブジェクトが変更されたときに、BitmapData オブジェクトを参照するすべてのオブジェクト (たとえば Bitmap オブジェクト) が更新されないように、イメージをロックします。パフォーマンスを向上させるには、setPixel() メソッドまたは setPixel32() メソッドを何度も呼び出す前後に、このメソッドを unlock() メソッドとともに使用してください。
関連項目
picture の bitmapData プロパティに基づいています。
その後、lock() メソッドを呼び出した後で、BitmapData オブジェクトを変更する
複雑なカスタム関数 complexTransformation() を呼び出します。(picture オブジェクトと
complexTransformation() 関数はこの例では定義されません。)たとえ
complexTransformation() 関数が picture オブジェクトの bitmapData プロパティを
更新した場合でも、unlock() メソッドが
bitmapData オブジェクトに対して呼び出されるまでは、変更内容が反映されません。
import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
| merge | () | メソッド |
public function merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):voidソースイメージとターゲットイメージをチャンネルごとにブレンドします。チャンネルごとに次の式を使用します。
new red dest = (red source * redMultiplier) + (red dest * (256 - redMultiplier) / 256;
redMultiplier 値、greenMultiplier 値、blueMultiplier 値、および alphaMultiplier 値は、それぞれのカラーチャンネルの乗数です。有効な範囲は 0 ~ 256 です。
sourceBitmapData:BitmapData — 使用する入力ビットマップイメージです。ソースイメージは、別の BitmapData オブジェクトにすることも、現在の BitmapData オブジェクトを参照することもできます。
|
|
sourceRect:Rectangle — 入力として使用するソースイメージの領域を定義する矩形です。
|
|
destPoint:Point — ソース矩形の左上隅に対応する、ターゲットイメージ (現在の BitmapData インスタンス) 内のポイントです。
|
|
redMultiplier:uint — 赤チャンネル値に乗算する数値です。
|
|
greenMultiplier:uint — 緑チャンネル値に乗算する数値です。
|
|
blueMultiplier:uint — 青チャンネル値に乗算する数値です。
|
|
alphaMultiplier:uint — アルファ透明度の値に乗算する数値です。
|
TypeError — sourceBitmapData、sourceRect、または destPoint が null です。
|
merge() メソッドを呼び出し、
2 番目の BitmapData ピクセルを最初の BitmapData オブジェクトの指定された矩形領域にのみ結合します。
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(100, 80, true, 0xFF00FF00); var bmd2:BitmapData = new BitmapData(100, 80, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(20, 20); var mult:uint = 0x80; // 50% bmd1.merge(bmd2, rect, pt, mult, mult, mult, mult); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
| noise | () | メソッド |
public function noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):voidランダムノイズを表すピクセルでイメージを塗りつぶします。
パラメータrandomSeed:int — ランダムシード (乱数の種) として使用する数値です。他のすべてのパラメータを同じままにした場合、ランダムシードの値を変更することでさまざまな疑似乱数を生成できます。ノイズ関数はマッピング関数であり、真の乱数生成関数ではありません。このため、同じランダムシードから毎回同じ結果が作成されます。
|
|
low:uint (default = 0) — チャンネルごとに生成する最小値です (0 ~ 255)。
|
|
high:uint (default = 255) — チャンネルごとに生成する最大値です (0 ~ 255)。
|
|
channelOptions:uint (default = 7) — 任意の 4 つのカラーチャンネル値 (BitmapDataChannel.RED、BitmapDataChannel.BLUE、BitmapDataChannel.GREEN、および BitmapDataChannel.ALPHA) の組み合わせである数値。OR 論理演算子 (|) を使用して、複数のチャンネル値を組み合わせることができます。
|
|
grayScale:Boolean (default = false) — ブール値。値が true の場合、すべてのカラーチャンネルに同じ値を設定することでグレースケールのイメージが作成されます。このパラメータを true に設定しても、アルファチャンネル選択には影響しません。
|
関連項目
noise()
メソッドを呼び出します。ただし、grayscale パラメータは false (最初のオブジェクトに対する
noise() メソッド呼び出し)、および true (2 番目のオブジェクトに対する
noise() メソッド呼び出し) にそれぞれ設定します。
import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; var bmd1:BitmapData = new BitmapData(80, 80); var bmd2:BitmapData = new BitmapData(80, 80); var seed:int = int(Math.random() * int.MAX_VALUE); bmd1.noise(seed, 0, 0xFF, BitmapDataChannel.RED, false); bmd2.noise(seed, 0, 0xFF, BitmapDataChannel.RED, true); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 90;
| paletteMap | () | メソッド |
public function paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void最大で 4 つのカラーパレットデータ配列 (各チャンネルごとに 1 つの配列) を使用して、イメージ内のカラーチャンネル値をマッピングし直します。
Flash Player は以下の手順に従って、結果として得られるイメージを生成します。
redArray、greenArray、blueArray、および alphaArray があります。これら 4 つの配列にはそれぞれ 256 個の値が含まれている必要があります。 このメソッドではクロスチャンネル効果をサポートすることが可能です。それぞれの入力配列は完全な 32 ビット値を含むことができます。値を足し合わせるときに移動は発生しません。このルーチンは、チャンネル単位のクランピングに対応していません。
チャンネルに対して配列が指定されない場合は、ソースイメージからターゲットイメージにカラーチャンネルがコピーされます。
このメソッドはさまざまな効果のために使用できます。たとえば、通常のパレットマッピング (1 つのチャンネルを選択して疑似色イメージに変換する) が可能です。さらに、ガンマ、曲線、平準化、量子化といったさまざまなカラー操作アルゴリズムにもこのメソッドを使用できます。
パラメータsourceBitmapData:BitmapData — 使用する入力ビットマップイメージです。ソースイメージは、別の BitmapData オブジェクトにすることも、現在の BitmapData インスタンスを参照することもできます。
|
|
sourceRect:Rectangle — 入力として使用するソースイメージの領域を定義する矩形です。
|
|
destPoint:Point — ソース矩形の左上隅に対応する、ターゲットイメージ (現在の BitmapData オブジェクト) 内のポイントです。
|
|
redArray:Array (default = null) — redArray が null でない場合、red = redArray[source red value]
else red = source rect value。
|
|
greenArray:Array (default = null) — greenArray が null でない場合、green = greenArray[source
green value] else green = source green value。
|
|
blueArray:Array (default = null) — blueArray が null でない場合、blue = blueArray[source blue
value] else blue = source blue value。
|
|
alphaArray:Array (default = null) — alphaArray が null でない場合、alpha = alphaArray[source
alpha value] else alpha = source alpha value。
|
TypeError — sourceBitmapData、sourceRect、または destPoint が null です。
|
paletteMap() メソッドを使用して、赤と緑を
BitmapData オブジェクトの下半分の矩形で入れ替えます。
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
var myBitmapData:BitmapData = new BitmapData(80, 80, false, 0x00FF0000);
myBitmapData.fillRect(new Rectangle(20, 20, 40, 40), 0x0000FF00);
var redArray:Array = new Array(256);
var greenArray:Array = new Array(256);
for(var i:uint = 0; i < 255; i++) {
redArray[i] = 0x00000000;
greenArray[i] = 0x00000000;
}
redArray[0xFF] = 0x0000FF00;
greenArray[0xFF] = 0x00FF0000;
var bottomHalf:Rectangle = new Rectangle(0, 0, 100,