我有一个使用 Camera 和 Opencv 的项目。我用 OpenCv 拍照和裁剪图像。在我有一个 Mat 文件将 Jpeg 转换为发送字节 [] 数据到 Activity 之后。
垫到位图
bmp2 = Bitmap.createBitmap(checkFrame.cols(),checkFrame.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(checkFrame, bmp2, true);
checkFrame.release();
位图到字节[]
ByteArrayOutputStream stream2 = new ByteArrayOutputStream();
bmp2.compress(Bitmap.CompressFormat.JPEG, 0,stream2);
bmp2.recycle();
bmp2 = null;
byte[] byteArray2 = stream2.toByteArray();
在活动中,
((ImageView) findViewById(R.id.photoView))
.setImageBitmap(BitmapFactory
.decodeByteArray(photo2, 0,
photo2.length));
但是这张图片和我裁剪的不一样。这就像 16 位颜色...如果我直接将 Bitmap 发送到活动并设置 ImageBitmap,这很好。为什么图像在转换为 byte[] 时会中断?