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[] に変換すると画像が壊れるのはなぜですか?