我要将多个位图图像合并到一个 jpeg 图像。
我可以从多个位图图像(平铺)制作大型 .bmp 文件。我可以使用 jpeg 库将其转换为 jpeg 文件。
但是这个过程的速度很慢。我在三星手机上对此进行了测试。
制作带有平铺 bmp 图像的大位图大约需要 15 秒。有没有办法解决这个问题?
谢谢。
图像处理的问题是,如果您没有正确操作,您最终会多次复制整个图像。挑战在于尝试只为图像保留一个缓冲区。像下面这样的东西会非常有效。
// 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 */);