对不起,我不擅长英语。
我想制作一个实时图像处理应用程序。(Binarization, color inverse...etc.)
它需要速度,所以我想将其操作为byte[]
,而不转换为Image
或Bitmap
。
我从相机获取的图像格式为YUV(NV21)
,但由于我不了解此格式,因此我将其转换为JPEG格式。
但它也没有像我预期的那样工作。(我认为每个像素一个字节或每个像素三个字节。)
所以,
manipulation(binarization, color inverse)
作为JPEG字节数组?我使用该方法将NV21
转换为JPEG
。
YuvImage yuvimage = new YuvImage(bytes, ImageFormat.NV21, width, height, null);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
yuvimage.compressToJpeg(new Rect(0, 0, width, height), 100, outputStream);
我从yuv
获得了onPreviewFrame(Camra.PreviewCallback)
图像字节数组。
答案 0 :(得分:1)
我认为您可以使用setPreviewFormat(int)设置除摄像头捕获的默认NV21格式以外的其他格式。
https://developer.android.com/reference/android/graphics/ImageFormat.html#NV21