2013年8月10日土曜日

Bitmapの合成 サンプル

複数のBitmapを一つのBitmapに合成するサンプル。

INT配列に書き込むなど、キャンパスを使わない方法もあるが処理速度はあまり変わらない。
getPixcelとsetPixcelで合成するのは処理が遅すぎて使い物にならない。※高性能な端末でも不可能だと思っていい。



// 配列ゼロ板をキャンパスサイズにする。添え字が大きいほど上位レイヤー
public Bitmap gousei(Bitmap[] bmp) {
// ARGB_8888,RGB_565 ARGB_4444 RGB_565
Bitmap rbmp = Bitmap.createBitmap(bmp[0].getWidth(),
bmp[0].getHeight(), Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(rbmp);

for (int i = 0; i < bmp.length; i++) {
canvas.drawBitmap(bmp[i], 0, 0, (Paint) null);
}

return rbmp;
}

//任意のタイミングでメモリ解放を
public void kaihou(Bitmap[] bmp){
for (int i = 0; i < bmp.length; i++) {
bmp[0].recycle();
}
}

0 件のコメント:

コメントを投稿