1
这让我有点生气!Android Bitmap.Compress给字节[]带-1字节?
我已拍摄的图像,并使用Bitmap.Compress方法来获取图像到字节数组(如下)
InputStream is = MyActivity.this.getContentResolver().openInputStream(imageUri);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2; //try to decrease decoded image
options.inPurgeable = true; //purgeable to disk
Bitmap bitmap = BitmapFactory.decodeStream(is, null, options);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 20, bos);
myModel.setFullImage(bos.toByteArray());
然而,当我看一看该字节的前几个字节[]它包含了大量的-1以及有效号码(0-255)和负数像-98等
然后我送跨线这个数据(JSON格式),也未能将其转换到ac#byte []中,因为数组中的负数。
什么错误或有我错过了什么。我甚至尝试将compression fator设置为0以防压缩做某事。
奇怪的是,如果我将字节转换为base64然后发送我可以然后成功地转换所述的base64字符串转换成字节[]在C#作为保存图像。
怎么回事?
在此先感谢
乔恩
感谢马克,我给这个一去,但我下的印象的base64增加,而不是减少它的大小这就是为什么我只是想送一个普通的字节数组。 – Jon
@乔恩:BASE64 *不*增加尺寸(相对于原始字节),但JSON更增大了尺寸,所以BASE64应该比JSON较小编码。 – Gabe
@乔恩作为加布笔记 - 你是不是发送原始字节[] - 你发送文本;和整数作为文本是*很*大于base-64 –