您当前的位置: 首页 > 

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4642博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

网上很多NV21数据直接使用BitmapFactory的代码是错误的

柳鲲鹏 发布时间:2020-04-24 06:07:13 ,浏览量:0

  • 典型的错误代码
        BitmapFactory.Options options = new BitmapFactory.Options();
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.STROKE);
        
        Bitmap bitmap = BitmapFactory.decodeByteArray(nv21, 0, nv21.length, options);
        if (bitmap != null) {
            m_canvas.drawBitmap(bitmap, m_srcRect, m_dstRect, paint);
        }
  • NV21转RGB的办法

https://blog.csdn.net/quantum7/article/details/105720150

  • 查表法

吾亦用了几套查表法,结果是颜色不对,而且性能比上述更慢。最后把这些代码全部删除。

  • JPEG中转
            YuvImage yuvimage = new YuvImage(
                    data,
                    ImageFormat.NV21,
                    mPreviewSize.width,
                    mPreviewSize.height,
                    null);

            mBaos = new ByteArrayOutputStream();
            yuvimage.compressToJpeg(new Rect(0, 0, mPreviewSize.width, mPreviewSize.height), 100, mBaos);
            mImageBytes = mBaos.toByteArray();

            //将mImageBytes转换成bitmap
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inPreferredConfig = Bitmap.Config.RGB_565;
            mBitmap = BitmapFactory.decodeByteArray(mImageBytes, 0, mImageBytes.length, options);
            icon.setImageBitmap(mBitmap);

  

 

关注
打赏
1665724893
查看更多评论
立即登录/注册

微信扫码登录

0.0555s