decodeByteArray返回null
2016-08-01 10:15 29人阅读 评论(0) 收藏 编辑 删除
在做 自定义相机 截取图像 的时候,调用 系统函数 都会有 byte[] data 参数,一般 第一时间 会想到使用 BitmapFactory.decodeByteArray 函数,可是当 使用的时候,发现 得到的 Bitmap 对象是 null,所以 这个函数 不能 直接使用,使用方法如下:
Size previewSize = camera.getParameters().getPreviewSize();
YuvImage yuvimage=new YuvImage(nv21, ImageFormat.NV21, previewSize.width, previewSize.height, null);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
yuvimage.compressToJpeg(new Rect(0, 0, previewSize.width, previewSize.height), 80, baos); //这里 80 是图片质量,取值范围 0-100,100为品质最高
byte[] jdata = baos.toByteArray();//这时候 bmp 就不为 null 了
Bitmap bmp = BitmapFactory.decodeByteArray(jdata, 0, jdata.length);
Log.i(TAG, "track21------>bmp.width== "+bmp.getWidth() +" bmp.height=="+bmp.getHeight());
http://www.th7.cn/Program/Android/201511/694685.shtml