显示没有 UIImage 的 base64 编码图像 [重复]

Posted

技术标签:

【中文标题】显示没有 UIImage 的 base64 编码图像 [重复]【英文标题】:Display base64 encoded image without UIImage [duplicate] 【发布时间】:2021-11-08 14:31:05 【问题描述】:

我有一个base64 编码图像存储为String。 (状态变量,因为我想定期更新图像。)我想使用Image() 类(不是UIImage)来显示这个图像。如何将base64 图像转换为Image() 可以接受?

import SwiftUI

struct ContentView: View
   
    @State var img_base64:String = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD [...]"
    
    var body: some View
            
            Image() // TODO: How to display img_base64 here? 
         

【问题讨论】:

【参考方案1】:

SwiftUI 的Image 是一个视图(如UIImagaView),UIImage 是一个数据,所以你可以使用

Image(uiImage: UIImage(data: Data(base64Encoded: "<your string here>") ?? Data())!)

if let uiImage = UIImage(data: Data(base64Encoded: "<your string here>") ?? Data()) 
    Image(uiImage: uiImage)

【讨论】:

根据***.com/a/60732521/2926577,在 SwiftUI 中应避免使用 UIImage,因为“这就像在 swift 中使用目标 c 代码,这对于发布新语言没有意义”。这是准确的吗?如果是,有没有办法将base64直接解析为Image()省略UIImage?

以上是关于显示没有 UIImage 的 base64 编码图像 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将image进行base64编码

NSData/UIImage 到字符串

将 zlib 压缩的 base64 字符串转换为 Uiimage 的问题

Base64 编码图像未显示 [重复]

Razor 页面 .Net 核心显示来自页面模型的 base64 图像

将UIImage转换为数据URI