Сбой при yuvImage.compressToJpeg при преобразовании YUV_420_888 android.media.Image в растровое изображение - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь преобразовать 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);
...