ios - 在 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 字符串的图像字节。
解决方案
推荐阅读
- javascript - 我想将 TouchEvent 添加到我的滑动脚本中
- postgresql - 获取时间戳而不是日期时间对象,sqlalchemy python 2.7
- python - 将 4 字节 HEX 转换为单个字节
- kubernetes-helm - 如何将 helmfile values.yaml 中的环境变量传递给图表的 values.yaml?
- python - 在单个 .npz 文件中组合数据集
- makefile - Makefile ifeq 中单个参数的逻辑“或”条件
- scala - 未找到 Akka 集群单例
- angular - 无法实现用于在 Angular 中捕获 http 错误的方法装饰器?
- slack - 机器人直接消息的哪个范围?
- logging - 限制 salt-minion 日志文件的大小