UIImage视图编码为base64

时间:2016-12-15 14:05:19

标签: ios uiimageview swift2 base64 xcode7

我正在尝试将UIImage编码为base64字符串。我的代码是这样的:

@IBOutlet weak var photoImageView: UIImageView!

let image : UIImage = UIImage(named:"photoImageView")!
let imageData:NSData = UIImagePNGRepresentation(image)!
let strBase64:String = imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)

问题是我遇到了这样的错误:“致命错误:在打开可选值时意外发现nil”

我做错了什么?

2 个答案:

答案 0 :(得分:0)

普拉萨德的评论可能是您遇到的问题。

对于任何返回选项的函数,我通常使用if - let语法或防护来确保我不会意外打开nil。

if let image = UIImage(named:"photoImageView") {
    if let imageData = UIImagePNGRepresentation(image) {
        // swift 2
        // imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)

        // swift 3
        let strBase64:String = imageData.base64EncodedString(options: [.lineLength64Characters])
    } else {
        print("can't get PNG representation")
    }
} else {
    print("can't find photoImageView image file")
}

答案 1 :(得分:0)

@Enix你的评论成功了。解决我的问题就是这一行

let image = photoImageView.image

正如您所指出的,UIImage是使用图像资源初始化的,而不是使用图像视图