在Swift中解压缩Base64编码的图像字节

时间:2018-10-26 19:05:57

标签: ios swift base64 compression

我正在开发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字符串的图像字节。

0 个答案:

没有答案