unity3d 如何在C#中将字节数组转换为sensor_msgs.msg.CompressedImage?

hc2pp10m  于 2022-11-16  发布在  C#
关注(0)|答案(1)|浏览(111)

我正在尝试从Unity接收摄像头图像,并将其作为图像消息(如sensor_msgs.msg.CompressedImage)发送到ROS2。在TO DO:部分,我需要定义一个函数,将字节数组转换为图像消息。ByteArrayToImage函数应该是什么?

```     Texture2D snapshot = new Texture2D(resWidth, resHeight, TextureFormat.RGB24, false);
        snapCam.Render();
        RenderTexture.active = snapCam.targetTexture;
        snapshot.ReadPixels(new Rect(0,0,resWidth, resHeight), 0, 0);
        byte[] bytes = snapshot.EncodeToPNG();

        sensor_msgs.msg.CompressedImage ImageMsg = new sensor_msgs.msg.CompressedImage();

        // TO DO :  ImageMsg.Data = ByteArrayToImage(bytes);

        image_pub.Publish(ImageMsg); ```
hi3rlvi2

hi3rlvi21#

您是否查看了正在使用的库的文档?
this page about compressedImage开始,如果有一个包含png编码图像的字节数组,则只需将其设置为data,并指定格式:

ImageMsg.Data = bytes;
ImageMsg.Format = "png"

请注意,我对ROS2和Unity都一无所知。

相关问题