1

我有一个使用 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[] 时会中断?

4

0 回答 0