android image 转yuv_Android YuvImage类格式不正确?

有证据表明Android的相机预览数据在NV21(YUV 420)中返回 . 2.2添加了一个YuvImage类来解码数据 . 我遇到的问题是YuvImage类数据显示为损坏或不正确 . 我使用了名为HelloCompute的Renderscript示例应用程序,它将位图转换为单色铬位图 . 我使用两种方法将Preview数据解码为Bitmap并将其作为输入传递给Renderscript:

Method 1 - Android YuvImage Class:

YuvImage preview = new YuvImage(data,ImageFormat.NV21,width,height,null);

ByteArrayOutputStream mJpegOutput = new ByteArrayOutputStream(data.length);

preview.compressToJpeg(new Rect(0,0,width,height),100,mJpegOutput); mBitmapIn = BitmapFactory.decodeByteArray(mJpegOutput.toByteArray(),0,mJpegOutput.size());

//将mBitmapIn传递给RS

Method 2 - Posted Decoder Method: 发布于over here by David Pearlman

//为Yuv格式工作

mBitmapIn = Bitmap.createBitmap(ImageUtil.decodeYUV420SP(data,width,height),width,height,Bitmap.Config.ARGB_8888);

//将mBitmapIn传递给RS

当Renderscript处理图像并显示时,方法1非常粗糙而不是单色,而方法2产生预期输出,即预览帧的单色图像 . 我做错了还是YuvImage类不可用?我正在运行3.1的Xoom上测试这个 .

此外,我在传递给RS之前在屏幕上显示了两种方法产生的位图 . 方法1中的位图在光照方面有明显差异(我怀疑这是由于JPeg压缩),而方法2的位图与预览帧相同 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值