Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转换[UInt8]?在IOs swift中拍摄图像_Ios_Swift - Fatal编程技术网

转换[UInt8]?在IOs swift中拍摄图像

转换[UInt8]?在IOs swift中拍摄图像,ios,swift,Ios,Swift,你好 我有一个从服务器获取图像的方法,该图像是以字节数组的形式获取的,所以我转换为[UInt8] 问题是我找不到将[UInt8]转换为要在应用程序中显示的图像的方法 这是我用来从服务器获取映像的代码: func GetSnapshotFromCamera(user: String?, password: String?, deviceNumber: String?, deviceItemId: String?) throws -> [UInt8]?{ let url = SERVI

你好

我有一个从服务器获取图像的方法,该图像是以字节数组的形式获取的,所以我转换为[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
}
提前谢谢大家

试试这个:

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

您要做的是首先将二进制数组([UInt8])转换为NSData。您可以通过以下方式实现:

let data = NSData(bytes: [UInt8], length: 2)
(您需要给出字节数组的长度)

转换(并展开每个可选项)后,使用以下命令将其转换为UIImage:

let image = UIImage(data: data)

然后再次展开以获得非可选图像。

谢谢,我将这样做,看看会发生什么,我会给您反馈