1

Camera と Opencv を使用したプロジェクトがあります。私はOpenCvで写真を撮って画像をトリミングしています。バイト[]データをアクティビティに送信するためにJpegを変換するMatファイルを取得した後。

マットからビットマップへ

bmp2 = Bitmap.createBitmap(checkFrame.cols(),checkFrame.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(checkFrame, bmp2, true);
checkFrame.release();

ビットマップから byte[]

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