我有一个方法从服务器获取图像,该图像我将其作为字节数组,所以我正在转换为[UInt8]。
问题是,我没有找到一种方法来转换[UInt8]到一个图像显示在我的应用程序。
这是我用来从服务器获取图像的代码:
func GetSnapshotFromCamera(user: String?, password: String?, deviceNumber: String?, deviceItemId: String?) throws -> [UInt8]?{
let url = SERVICEURL + "/GetSnapshotFromCamera/"+user! + "/" + password! + "/" + deviceNumber! + "/" + deviceItemId!
let data = ExecuteRequestService(url)
if(data != nil){
let dataConverted = try ResultEventImage.ParseResultSnapshotJson(data)
let json = NSString(data: dataConverted!, encoding:NSUTF8StringEncoding)
let snapshotObj = ResultEventImage.JsonToObject(json as! String)
return snapshotObj.ResultObject
}
return nil
}
你要做的是首先将二进制数组([UInt8])转换为NSData。你可以这样做:
let data = NSData(bytes: [UInt8], length: 2)
(你需要给出字节数组的长度)
转换(并展开每个可选)后,将其转换为UIImage:
let image = UIImage(data: data)
try this:
if let array = try GetSnapshotFromCamera(...) {
let data = NSData(bytes: array, length: array.count)
let image = UIImage(data: data)
}