-1

我正在尝试将我UIImage的从 a转换UIImageView为字符串,因为数据存储为 Base64。我正在使用下面的方法来转换图像,但是在尝试更新 convertStr.

func convertImg() {
    let imageData: NSData = UIImagePNGRepresentation(imageView.image!)! as NSData
    convertedStr = NSString(data: imageData as Data, encoding: String.Encoding.utf8.rawValue)!
}

这个函数大约是第 10 版,因为我尝试了不同的方法,但结果总是一样的。返回的错误是

“致命错误:在展开可选值时意外发现 nil”和

'函数签名特化)->()到@callee_owned(@unowned Swift.UnsafeBufferPointer)->(@out()),参数类型:[@callee_owned(@unowned Swift.UnsafeBufferPointer)->()]>泛型特化Swift.StaticString.withUTF8Buffer ((Swift.UnsafeBufferPointer) -> A) -> A'

难道是我使用的方法需要一个 png 文件并且不能使用UIImage

4

2 回答 2

1

在斯威夫特

在 swift 2.0 及更低版本中编码

let image : UIImage = UIImage(named:"imageNameHere")!
//Now use image to create into NSData format
let imageData:NSData = UIImagePNGRepresentation(image)!

 let strBase64:String = imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)

解码

let dataDecoded:NSData = NSData(base64EncodedString: strBase64, options: NSDataBase64DecodingOptions(rawValue: 0))!
let decodedimage:UIImage = UIImage(data: dataDecoded)!
print(decodedimage)
yourImageView.image = decodedimage
于 2016-10-19T12:05:45.503 回答
1
func convertImg() {
    let imageData: NSData = UIImagePNGRepresentation(imageView.image!)! as NSData
    convertstr = imageData.base64EncodedString(options: lineLength64Characters)

}
于 2016-10-19T11:32:52.943 回答