首页 > 解决方案 > 在 Swift 中解压缩 Base64 编码的图像字节

问题描述

我正在用 Swift 开发一个 iOS 应用程序,供我工作的公司的客户使用。除了 iOS 应用程序,我还在用 ASP.Net Core 制作后端 API。我选择用于发送图像的方法是 JSON 数组中图像的压缩 base64 编码字符串表示。这是为了节省带宽并使其更容易发送多个图像。

在 API 方面,我使用 .NET 类System.IO.Compression.DeflateStream压缩内存中的图像字节,然后将它们编码为 base64 字符串并将它们发送到 iOS 应用程序。

在 iOS 方面,我对解码字符串和解压缩数据以创建一个UIImage对象以显示在UIImageView.

这一切都可以在没有压缩的情况下工作,但我想尝试这样做以节省带宽。但是,这很可能不是最佳解决方案,我愿意改变。下面是我用来将 base64 字符串转换为Data对象,然后从中创建UIImage对象的代码片段。

static func imageComplete(data json: JSON) -> [UIImage] {
    var images: [UIImage] = []

    for imageString in json.arrayValue {
        if let compressedImageData = Data(base64Encoded: imageString.stringValue),
            let image = UIImage(data: compressedImageData) {

            images.append(image)
        }
    }
    return images
}

TL;DR 在 Swift 中,我想解压缩从 ASP.Net Core WebAPI 返回的编码为 Base64 字符串的图像字节。

标签: iosswiftbase64compression

解决方案


推荐阅读