【问题标题】:Display base64 encoded image without UIImage [duplicate]显示没有 UIImage 的 base64 编码图像 [重复]
【发布时间】: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? 
    }     
}

【问题讨论】:

    标签: swift swiftui swift5


    【解决方案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)
    }
    

    【讨论】:

    • 根据stackoverflow.com/a/60732521/2926577,在 SwiftUI 中应避免使用 UIImage,因为“这就像在 swift 中使用目标 c 代码,这对于发布新语言没有意义”。这是准确的吗?如果是,有没有办法将base64直接解析为Image()省略UIImage?
    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    相关资源
    最近更新 更多