首页 > 解决方案 > 如何将 YUVImage 大小调整为 JPG?

问题描述

Image从解码器中得到一个YUV_420_888格式。

我在这里了解到我可以将其转换为 NV21,这样使用:

Rect cropRect = myImage.getCropRect();
YuvImage yuvImage = new YuvImage(convertToNV21(myImage),
                                            ImageFormat.NV21,
                                            cropRect.width(),
                                            cropRect.height(),
                                            null);
yuvImage.compressToJpeg(cropRect, 100, jpegDataStream);

这样我就有了正确的 JPG 数据jpegDataStream

convertToNV21函数使用图像的平面进行操作,并进行大量移动,并大量使用getRowStrideand getPixelStride(如果您提出要求并认为它对更好的帮助有用,我可以分享它)。

我的愿望是获得分辨率较低的 JPG ,因此我需要调整图像大小。

我很清楚如何通过首先将其转换为位图 -> 调整大小 -> 转换回 JPG 来调整 JPG 的大小,但感觉开销太大。

我是否有更简单的方法可以compressToJpeg轻松有效地调整 YUVImage 的大小?

标签: javaandroidimage-processing

解决方案


推荐阅读