4.0中使用RequestTargetTexture 回调得到的RenderTexture 能够用于二维码识别吗? 我吧他转换成Texture2D保存出来的图片是空白的?

0 投票
最新提问 8月 18, 2021 用户: teihin (180 分)
修改于 8月 18, 2021 用户:teihin

4.0中使用RequestTargetTexture 回调得到的RenderTexture  能够用于二维码识别吗? 我吧他转换成Texture2D保存出来的图片是空白的?

回调实现如下:

private CameraImageRenderer imgRender;

 imgRender.RequestTargetTexture(CallBackFun);

        public void CallBackFun(Camera camara,RenderTexture texture)
        {
            Debug.Log(camara);
            Debug.Log(texture);
            if (texture == null)
                return;
            imgShow.texture = camara.targetTexture;


            RenderTexture.active = texture;
            Texture2D tex = new Texture2D(texture.width, texture.height);//新建纹理存储渲染纹理
            tex.ReadPixels(new Rect(0, 0, texture.width, texture.height), 0, 0);//把渲染纹理的像素给Texture2D,才能在项目里面使用
            tex.Apply();//记得应用一下,不然很蛋疼
            byte[] bytes = tex.EncodeToPNG();//拿到图片的byte
            File.WriteAllBytes("c:\\hihi\\111.png", bytes);//写入本地  这里保存出来的图片只有几十K  没有内容

        }

如上所示, 我需要对画面进行二维码识别, 但是Texture2D  图片没有内容, 请问怎么才能  获取摄像机实时画面并转换成Texture2D ?

另外在 Session.FrameChange 里面也可以获取到 图片Buffer  但是格式是 BGR888   请问怎么才能转换为 png 图片呢, 网上没有查询到相关资料。

1个回答

0 投票
最新回答 8月 19, 2021 用户: kenn (19,220 分)
这个函数只是拿texture,在这个回调的时候texture是无数据的。texture数据会在每一帧更新。
发表于 8月 19, 2021 用户: teihin (180 分)

请问我如果想要获取摄像头数据 进行二维码识别  我需要怎么做 ?    Session.FrameChange  拿到的 Buffer  也是  裸数据   怎么才能转成  Color32[]  的数据 ?  有参考代码么

发表于 8月 19, 2021 用户: kenn (19,220 分)
RGB数据就是RGBRGBRGB。。。,可以网上搜一下,EasyAR提供的是标准数据,后面怎么使用你需要自己解决
欢迎来到 EasyAR Q&A ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...