Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 字节数组的长度小于位图_Android_Bitmap_Byte - Fatal编程技术网

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字节,因为默认位图格式为