从url下载图像并将其存储为文件

时间:2017-11-25 01:01:49

标签: ios swift

我正在尝试从此网址下载图片。

  

https://t0.rbxcdn.com/8d05159c75d0f5f7c8068bc928bb1a12

我想将它用作纹理,因此必须将其存储为应用程序中的文件。 我将改变服务器上的图像,这就是我试图这样做的原因。

这是我到目前为止所做的。

override func viewDidLoad() {
    super.viewDidLoad()

    let imageUrlString = "https://t0.rbxcdn.com/8d05159c75d0f5f7c8068bc928bb1a12"
    let imageUrl:URL = URL(string: imageUrlString)!

    DispatchQueue.global(qos: .userInitiated).async {

        let imageData:NSData = NSData(contentsOf: imageUrl)!
        let imageView = UIImageView(frame: CGRect(x:0, y:0, width:200, height:200))
        imageView.center = self.view.center

        DispatchQueue.main.async {
            let image = UIImage(data: imageData as Data)
            imageView.image = image
            imageView.contentMode = UIViewContentMode.scaleAspectFit
            self.view.addSubview(imageView)

        }
    }
}

该脚本允许我查看图像,但我不确定如何将其保存为文件。

1 个答案:

答案 0 :(得分:0)

您可以将图像放入文档目录

func saveImageDocumentDirectory(tempImage:UIImage){

let documentsDirectoryURL = try! FileManager().url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let fileURL = documentsDirectoryURL.appendingPathComponent("texture.png")
    do {
        try UIImagePNGRepresentation(tempImage)?.write(to: fileURL)
    } catch {
        print(error)
        }
}

您可以使用以下功能从文档目录中检索图像

func getTextre()->UIImage?{

    let documentsDirectoryURL = try! FileManager().url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
 let fileURL = documentsDirectoryURL.appendingPathComponent("texture.png")

if FileManager.default.fileExists(atPath: fileURL.path){
    return UIImage(contentsOfFile: fileURL)
}else{
    return nil
    }
}

" texture.png"是样品名称,您可以随意保留它。