如何在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的Byte(UInt8)数组,其大小为Width * Height * 3(R,G,B)Bytes

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

通过使用UIImagePNGRepresentation ,我对你究竟没有用的东西感到有点困惑,抱歉,如果我遗漏了某些东西,或者你可以澄清一下。

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

如果您正在尝试获取实际的NSMutableArray ,请查看此旧答案是否有帮助: https : //stackoverflow.com/a/29734175/8895191