转换[UInt8]?在IOs swift中成像

时间:2015-10-21 12:58:53

标签: ios swift

您好

我有一种从服务器获取图像的方法,该图像我将其作为字节数组获取,因此我转换为[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
}

提前谢谢大家

2 个答案:

答案 0 :(得分:1)

您要做的是首先将二进制数组([UInt8])转换为NSData。你可以用:

来做到这一点
let data = NSData(bytes: [UInt8], length: 2)

(你需要给出字节数组的长度)

转换(并展开每个可选项)后,将其转换为UIImage:

let image = UIImage(data: data)

再打开以获得非可选图像。

答案 1 :(得分:0)

试试这个:

if let array = try GetSnapshotFromCamera(...) {
   let data = NSData(bytes: array, length: array.count)
   let image = UIImage(data: data)
}