Сбой при yuvImage.compressToJpeg при преобразовании YUV_420_888 android.media.Image в растровое изображение
Я пытаюсь конвертировать 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);