YuvImage image = new YuvImage(data,ImageFormat.NV21,IMG_WIDTH,IMG_HEIGHT,null);
不过这种jpg图片似乎和传统jpg编码格式有差异,打开是可以正常打开的,而用FFMpeg压缩的时候显示是jpg-yuv的格式,也就是说直接将yuv以jpg格式压缩的。如果需要进一步转换可能依然需要转为RGB格式。
@Override protected Void doInBackground(Void... params) { // Size size = myCamera.getParameters().getPreviewSize(); //获取预览大小 // final int w = size.width; //宽度 // final int h = size.height; final YuvImage image = new YuvImage(mData, ImageFormat.NV21, mCameraView.mPicWidth, mCameraView.mPicHeight, null); ByteArrayOutputStream os = new ByteArrayOutputStream(mData.length); if (!image.compressToJpeg(new Rect(0, 0, mCameraView.mPicWidth, mCameraView.mPicHeight), 100, os)) { return null; } byte[] tmp = os.toByteArray();
Bitmap mapLbb = BitmapFactory.decodeByteArray(tmp, 0, tmp.length);// detBmp = Bitmap.createBitmap(mapLbb, 0, 0, mCameraView.mPicWidth, mCameraView.mPicHeight, m, true); // Bitmap mapLbb = BitmapFactory.decodeResource(getResources(), R.drawable.id2); // 识别人脸,画出人脸框的位置 publishProgress(drawFaceRect( mapLbb)) ; mapLbb.recycle() ; return null; }