Android 字节数组的长度小于位图
我将位图转换为字节数组:Android 字节数组的长度小于位图,android,bitmap,byte,Android,Bitmap,Byte,我将位图转换为字节数组: ByteArrayOutputStream stream = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] byteArray = stream.toByteArray(); 例如,我的位图213x350=74550像素, 因此,长度byteArray74550*4=298200 但是byteArray.length返回了57+000
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
例如,我的位图213x350=74550
像素,因此,长度byteArray
74550*4=298200
但是
byteArray.length返回了57+000
怎么了?您的位图是213x350像素,但您的字节数组包含一个压缩的PNG图像数据,它不使用每像素4个字节。当数据被压缩时,PNG文件的总大小会变小
要直观地看到它,只需打开任何图形编辑器(例如gimp)并创建一个新图像213x350像素。然后将此图像另存为PNG文件并查看其大小。AFAIK,每个像素用8字节编码,而不是4字节,因为默认位图格式为