0

複数のビットマップ画像を jpeg 画像にマージします。

複数のビットマップ画像 (タイル) から大きな .bmp ファイルを作成できます。そして、jpegライブラリでjpegファイルに変換できます。

しかし、このプロセスの速度は非常に遅いです。これをSamSung電話でテストしました。

タイル状の bmp 画像で大きなビットマップを作成するには、約 15 秒かかります。これを解決する方法はありますか?

ありがとう。

4

1 に答える 1

0

画像操作の問題は、正しく行わないと、画像全体を何度もコピーしてしまうことです。課題は、画像のバッファーを 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 */); 
于 2013-07-15T18:22:58.783 に答える