複数のビットマップ画像を jpeg 画像にマージします。
複数のビットマップ画像 (タイル) から大きな .bmp ファイルを作成できます。そして、jpegライブラリでjpegファイルに変換できます。
しかし、このプロセスの速度は非常に遅いです。これをSamSung電話でテストしました。
タイル状の bmp 画像で大きなビットマップを作成するには、約 15 秒かかります。これを解決する方法はありますか?
ありがとう。
画像操作の問題は、正しく行わないと、画像全体を何度もコピーしてしまうことです。課題は、画像のバッファーを 1 つだけ保持しようとすることです。次のようなものはかなり効率的です。
// create one big bitmap
Bitmap finalBitmap = Bitmap.create(finalWidht, finalHeight, Bitmap.Config.ARGB_8888);
for(int i=0;i<numTilesWide;i++) {
for(int j=0;j<numTilesHigh;j++) {
int[] tilePixels = // load tile bitmap into this int array
// copy tile onto final bitmap
finalBitmap.setPixels(tilePixels, 0, tileWidth, i*tileWidth, j*tileHeight);
}
}
// write the image as a jpeg to the file
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 50, /* file stream */);