如何在ARKit中捕获图像并发送二进制数据?

时间:2018-01-21 07:47:35

标签: ios uiimage arkit

我想在ARKit中创建一个捕获图像并将字节数组发送到TCP服务器。

这是我的代码。

    @IBOutlet weak var sceneView: ARSCNView!
    @IBAction func sendButtonAction(_ sender: Any) {

    let captureImage:UIImage = self.sceneView.snapshot()
    }

我可以通过快照获取图像,但我不知道如何将其转换为字节数组(包括像素R,G,B数据。)

我试图将UIImage改为像这样的二进制数据。

    let imageData: NSData = UIImagePNGRepresentation(captureImage)! as NSData

但这不正确,因为每当我快照时,imageData的大小都是可变的:(

我的目的是制作一个captureImage的字节(UInt8)数组,其大小为宽*高* 3(R,G,B)字节

如果您有任何想法可以解决这个问题,请帮助我。

1 个答案:

答案 0 :(得分:0)

我对使用UIImagePNGRepresentation对您不起作用的内容感到有些困惑,抱歉,如果我遗漏了某些内容,或者您​​可以澄清一下。

但是对于其中一个,PNG会期待RGBA,所以你可能想尝试UIImageJPEGRepresentation,因为它不支持alpha通道。

如果您想要获得实际的NSMutableArray,请查看此旧答案是否有帮助:https://stackoverflow.com/a/29734175/8895191