我正在开发一些tumblr客户端.我想在仪表板中下载所有照片并将其保存到documentDirectory.其中一些是jpg,有些是gif.我已经使用以下代码成功下载了jpg图像:
do {
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = documentsURL.appendingPathComponent(fname)
if let pngImageData = UIImagePNGRepresentation(myImage!) {
try pngImageData.write(to: fileURL, options: .atomic)
print(fname + " - saved")
}
} catch {print(fname + " - not saved") }
Run Code Online (Sandbox Code Playgroud)
myImage是从URL下载的图像.此代码适用于jpg图像但不适合GIF.
最后我用这个读了这些文件:
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let filePath = documentsURL.appendingPathComponent(fname).path
if FileManager.default.fileExists(atPath: filePath) {
return UIImage(contentsOfFile: filePath)!
}
Run Code Online (Sandbox Code Playgroud)
它适用于jpg,但不适用于GIF.当我在GIF图像上尝试这种写/读代码时,我得到的图像不是动画.
你能告诉我一个例子的方式会很棒吗?
谢谢.
我个人使用这个小工具用于GIF.只需将iOSDevCenters + GIF.swift文件直接添加到您的项目中并使用它,如下所示
1.在线URL
let imageURL = UIImage.gifImageWithURL(gifURL)
let yourImageView = UIImageView(image: imageURL)
Run Code Online (Sandbox Code Playgroud)
2.本地文件名
let imageName = UIImage.gifImageWithName(imageName)
let yourImageView = UIImageView(image: imageName)
Run Code Online (Sandbox Code Playgroud)
3.使用数据
let imageData = NSData(contentsOf: Bundle.main.url(forResource: "name", withExtension: ".gif"))
let imageData = UIImage.gifImageWithData(imageData)
let yourImageView = UIImageView(image: imageData)
Run Code Online (Sandbox Code Playgroud)