我正在尝试将YUV_420_888 android.media.Image
转换为Bitmap
,但是在YuvImage#compressToJpeg
遇到崩溃。
崩溃似乎发生在nativeCompressToJpeg
的某个地方,但我不确定。
任何帮助将不胜感激。
imageReader = ImageReader.newInstance(min, max,
ImageFormat.YUV_420_888, 2);
imageReader.setOnImageAvailableListener(reader -> {
try (Image image = reader.acquireNextImage())
{
if (image != null)
{
byte[] nv21Array = yuv420888ToNv21ByteArray(image);
YuvImage yuvImage = new YuvImage(nv21Array, ImageFormat.NV21, min, max, null);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
yuvImage.compressToJpeg(new Rect(0, 0, min, max), 80, stream); //causes crash
byte[] jpgArray = stream.toByteArray();
Bitmap bmp = BitmapFactory.decodeByteArray(jpgArray, 0, jpgArray.length);
// do something with bitmap
}
}
}, null);