【问题标题】:How do I create an image from a Base64-encoded string in Swift? [duplicate]如何在 Swift 中从 Base64 编码的字符串创建图像? [复制]
【发布时间】:2015-04-26 21:53:44
【问题描述】:

Web 服务将 Base64 编码的图像作为字符串回显。如何在 Swift 项目中解码和显示此编码图像?

具体来说,我想获取一个已经由 Web 服务提供为 Base64 格式字符串的图像,并了解如何在 UIImageView 中显示它。

到目前为止,我发现的文章描述了已弃用的技术,或者是用我不熟悉的 Objective-C 编写的。如何接收 Base64 编码的字符串并将其转换为 UIImage?

【问题讨论】:

    标签: ios swift uiimageview base64


    【解决方案1】:

    通过执行以下操作将您的 base64 编码字符串转换为 NSData 实例:

    let encodedImageData = ... get string from your web service ...
    let imageData = NSData(base64EncodedString: encodedImageData options: .allZeros)
    

    然后把imageData变成一个UIImage:

    let image = UIImage(data: imageData)
    

    然后您可以在UIImageView 上设置图像,例如:

    imageView.image = image
    

    【讨论】:

    • 在 Swift 2 中,让 imageData = NSData(base64EncodedString: encodedImageData options: [])
    • NSData的参数之间缺少逗号。
    • 在 Swift 3/4 中,它是 Data(base64Encoded: encodedImageData)
    【解决方案2】:

    要将 Base64 编码的字符串解码为图像,您可以在 Swift 中使用以下代码:

    let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions.fromRaw(0)!)
    var decodedimage = UIImage(data: decodedData)
    println(decodedimage)
    yourImageView.image = decodedimage as UIImage
    

    更好的是,您可以在分配给图像视图之前检查decodedimage 是否为nil

    【讨论】:

    • 这不是 wokring.. decodedimage 总是 nil
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多