繁体   English   中英

如何在Swift中将UIimage更改为二进制数据

[英]How can I change UIimage to binary data in Swift

我想通过将信息解码为字节(UInt8)数组将图像数据(捕获快照)发送到Python服务器,但效果不佳:(

我的代码在这里

typealias Byte = UInt8

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

//change UIImage to binary data

let imageData: NSData = UIImageJPEGRepresentation(captureImage, 0)! as NSData

let AR_IMG_WIDTH = Int(captureImage.size.width) //750
let AR_IMG_HEIGHT = Int(captureImage.size.height) //1334
let AR_BUFFER_SIZE = AR_IMG_WIDTH * AR_IMG_HEIGHT * 3 + 6 //3001506 , 3(R,G,B),6 (MMS+MME)

print("size of imageData 750 * 1334 * 3 : \(imageData.length)")

//NSData to [Byte]
var mms: [Byte] = [Byte]("MMS".utf8) // 3Byte
let mme: [Byte] = [Byte]("MME".utf8) // 3Byte
var copyArray = [Byte](repeating: 0, count: imageData.length)
imageData.getBytes(&copyArray, length: imageData.length)
mms.append(contentsOf: copyArray)
mms.append(contentsOf: mme)

我的问题是

1)为什么imageData.length(byte的大小)值是可变的? 我想这个值必须是ImageWidth * ImageHeight * 3(R,G,B data)+ 6(MMS,MME)字节

2)如果我想传输图像信息,请使用其他函数或类?

让我回答你的问题1)

像许多其他图像格式一样,JPEG压缩RGB图像数据。 这意味着字节数不超过宽度X高度X 3,而是更少。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM