将YUV_420_888 android.media.Image转换为位图时,在yuvImage.compressToJpeg崩溃

时间:2018-10-24 21:38:51

标签: android bitmap yuv image-reader

我正在尝试将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);

0 个答案:

没有答案