我想找出以字节为单位的字节数组中保存的图像的大小

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.mPicture);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();

以下日志显示一个11.7KB图像的两个不同结果:
Log.d(TAG, "bm size: " + bm.getByteCount()/1024); // 942
Log.d(TAG, "baos size: " + baos.size()/1024); // 81
Log.d(TAG, "byte size: " + b.length/1024); // 81

哪个是正确的结果,或如何获得正确的结果??任何帮助表示赞赏。

最佳答案

bm.getByteCount()/1024 // 942是图像的原始大小
baos.size()/1024 // 81是图像压缩后的大小

第一个给出代表原始图像资源的位图的大小,但是接下来两个给出代表压缩的的流或字节数组的大小。因此,第一个返回的值大于后两个返回的值。

10-07 18:55