newBitmapData
public static FREBitmapData newBitmapData (int width, int height, boolean transparent, Byte[] fillColor)
FREBitmapData オブジェクトを作成します。このオブジェクトは、BitmapData インスタンスとして拡張の ActionScript 側に返すことができます。
パラメーター:
-
width
-
ピクセル単位の幅。AIR 3+ では、ビットマップの幅と高さに恣意的な制限はありません(ActionScript の符号付き整数の上限値のみ)。ただし、実際に使用できるメモリの制約は存在します。ビットマップデータでは、1 ピクセルにつき 32 bit のメモリが使用されます。
-
height
-
ピクセル単位の高さ。
-
transparent
-
そのビットマップでアルファチャンネルが使用されているかどうかを示します。このパラメーターは、作成した FREBitmapData の
hasTransparency()
メソッドと、ActionScript BitmapData オブジェクトの
transparent
プロパティに対応します。
-
fillColor
-
新しいビットマップの全体に設定する 32 bit の ARGB カラー値。
transparent
パラメーターが
false
の場合、このカラーのアルファ成分は無視されます。
戻り値:
-
FREBitmapData
-
ActionScript BitmapData オブジェクトに関連付けられている FREBitmapData オブジェクト。
例:
Byte[] fillColor = {0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf};
FREBitmapData bitmap = FREBitmapData.newBitmapData( 320, 200, true, fillColor );
getWidth
public int getWidth()
ビットマップの幅をピクセル単位で返します。この値は、ActionScript BitmapData クラスオブジェクトの
width
プロパティに対応します。このメソッドを呼び出す場合は、前もって、そのオブジェクトの
acquire()
関数を呼び出しておく必要があります。
戻り値:
-
int
-
ビットマップの横軸方向のサイズをピクセル単位で表した数値。
getHeight
public int getHeight()
ビットマップのピクセル単位の高さ。この値は、ActionScript BitmapData クラスオブジェクトの
height
プロパティに対応します。このメソッドを呼び出す場合は、前もって、そのオブジェクトの
acquire()
関数を呼び出しておく必要があります。
戻り値:
-
int
-
ビットマップの縦軸方向のサイズをピクセル単位で表した数値。
hasAlpha
public boolean hasAlpha()
そのビットマップでピクセル単位の透明効果がサポートされているかどうかを示します。この値は、ActionScript BitmapData クラスオブジェクトの
transparent
プロパティに対応します。この値が
true
の場合、ピクセルカラー値のアルファ成分が使用されます。
false
の場合、カラーのアルファ成分は使用されません。このメソッドを呼び出す場合は、前もって、そのオブジェクトの
acquire()
関数を呼び出しておく必要があります。
戻り値:
-
boolean
-
true の場合、そのビットマップではアルファチャンネルが使用されています。
isPremultiplied
public boolean isPremultiplied()
ビットマップのピクセルに乗算済みカラー値が格納されているかどうかを示します。true の場合は、ピクセルカラーの赤、緑、青のそれぞれの成分にアルファ成分の値があらかじめ乗算されています。現時点では、ActionScript BitmapData オブジェクトのデータは常に乗算済みです(将来的には、乗算済みでないビットマップを作成できるような変更がランタイムに加えられる可能性があります)。乗算済みカラー値について詳しくは、『
Adobe Flash Platform 用 ActionScript 3.0 リファレンスガイド
』で BitmapData.getPixel() の項を参照してください。このメソッドを呼び出す場合は、前もって、そのオブジェクトの
acquire()
関数を呼び出しておく必要があります。
戻り値:
-
boolean
-
true
の場合、ピクセルの各カラー成分にはアルファ成分の値があらかじめ乗算されています。
getLineStride32
public int getLineStride32()
ビットマップの水平ライン 1 本あたりのデータ量を示します。この値は、
getBits()
から返されるバイト配列を使用して画像を解析する場合に使用します。例えば、バイト配列内の位置
n
にあるピクセルのすぐ下にあるピクセルを表すデータの位置は、
n + getLineStride32()
です。このメソッドを呼び出す場合は、前もって、そのオブジェクトの
acquire()
関数を呼び出しておく必要があります。
戻り値:
-
int
-
画像の水平ライン 1 本あたりのデータ量。
例:
次の例では、ピクセルのカラー値を含んだバイト配列の位置を、ビットマップ内の 3 本目のラインの先頭に移動します。
Byte[] fillColor = {0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf};
FREBitmapData bitmap = FREBitmapData.newBitmapData( 320, 200, true, fillColor );
int lineStride = bitmap.getLineStride32();
bitmap.acquire();
ByteBuffer pixels = bitmap.getBits();
pixels.position( lineStride * 3 );
//do something with the image data
bitmap.release();
getBits
ByteBuffer getBits()
ピクセルカラー値の配列を返します。このメソッドを使用する前には
acquire()
を呼び出し、データの変更が完了した後には
release()
を呼び出す必要があります。ピクセルデータに変更を加えた場合は、ビットマップが変化したことを AIR ランタイムに伝えるために
invalidateRect()
を呼び出します。そうしないとグラフィックの表示は更新されません。
戻り値:
-
java.nio.ByteBuffer
-
画像データ。
例:
FREBitmapData bitmap = FREBitmapData.newBitmapData( 320, 200, true, fillColor );
bitmap.acquire();
ByteBuffer pixels = bitmap.getBits();
//do something with the image data
bitmap.release();
acquire
public void acquire()
その画像に対するロックを取得します。ロックを取得すると、アクセス中にランタイムやアプリケーションコードがその画像に変更を加えたり、破棄したりすることはできなくなります。ロックを取得する必要があるのは、拡張の ActionScript 側から関数に渡されたビットマップを操作する場合のみです。
ロックを保持している間は、
getBits()
関数から返されたデータに対するアクセスのみ可能です。FREBitmapData の他のプロパティに対してアクセスや変更を試みると、例外が発生します。
invalidateRect
void invalidateRect( int x, int y, int width, int height )
画像内の何らかの領域に変更を加えたことをランタイムに伝えます。このメソッドを呼び出さないと、ビットマップデータオブジェクトの変更内容が画面に反映されません。このメソッドを呼び出す場合は、前もって、そのオブジェクトの
acquire()
関数を呼び出しておく必要があります。
パラメーター:
-
x
-
現在の表示を無効にする長方形領域の左上隅を表す座標。
-
y
-
現在の表示を無効にする長方形領域の左上隅を表す座標。
-
width
-
現在の表示を無効にする長方形領域の幅。
-
height
-
現在の表示を無効にする長方形領域の高さ。
release
public void release()
acquire()
で取得したロックを解放します。
getBits()
から返されるピクセルデータ以外のビットマッププロパティにアクセスするには、ロックが解放されている必要があります。
isInvertedY
public boolean isInvertedY()
画像データの行が格納される順番を示します。
true
の場合、画像データの最後の行は
getBits()
メソッドから返されるバッファの最初に表示されます。Android の画像は一般的にはデータの最初の行から順番に格納されるので、Android プラットフォームではこのプロパティは通常
false
になります。
AIR 3.1 の追加項目です。