从 Zip 存档中提取图像
Extract Images from Zip Archive
我的出发点:
我从 API 获得了一个包含一些压缩图像的 zip 存档。我想在幻灯片中显示图片。
问题:
在我从 URLSession.shared.dataTask
成功下载 Data
的 zip 存档并使用 let decompressedData = try (data as NSData) .decompressed (using: .zlib)
解压缩后,我没有进一步的。
我知道我可以使用 UIImage(data: data)
显示来自数据的图像。
但是如何从解压后的数据中获取图像的单独数据呢?
提前谢谢你,
卢卡斯
PS: 如果我没有解释清楚或者你需要进一步的细节,请问
没关系,我自己找到了解决方案:
guard let archive = Archive(data: data, accessMode: .read) else {
return
}
for entry in archive {
var extractedData: Data = Data([])
do {
_ = try archive.extract(entry) { extractedData.append([=10=]) }
if let image = UIImage(data: extractedData) {
self.images.append(image)
}
} catch {
print(error.localizedDescription)
}
}
此功能需要 Zip Foundation。感谢@jn-pdx 指出了正确的方向。经过一点点挖掘后,我找到了一种创建带有内存数据的 Archive
的方法。
我的出发点:
我从 API 获得了一个包含一些压缩图像的 zip 存档。我想在幻灯片中显示图片。
问题:
在我从 URLSession.shared.dataTask
成功下载 Data
的 zip 存档并使用 let decompressedData = try (data as NSData) .decompressed (using: .zlib)
解压缩后,我没有进一步的。
我知道我可以使用 UIImage(data: data)
显示来自数据的图像。
但是如何从解压后的数据中获取图像的单独数据呢?
提前谢谢你, 卢卡斯
PS: 如果我没有解释清楚或者你需要进一步的细节,请问
没关系,我自己找到了解决方案:
guard let archive = Archive(data: data, accessMode: .read) else {
return
}
for entry in archive {
var extractedData: Data = Data([])
do {
_ = try archive.extract(entry) { extractedData.append([=10=]) }
if let image = UIImage(data: extractedData) {
self.images.append(image)
}
} catch {
print(error.localizedDescription)
}
}
此功能需要 Zip Foundation。感谢@jn-pdx 指出了正确的方向。经过一点点挖掘后,我找到了一种创建带有内存数据的 Archive
的方法。