我正在尝试从此网址下载图片。
我想将它用作纹理,因此必须将其存储为应用程序中的文件。 我将改变服务器上的图像,这就是我试图这样做的原因。
这是我到目前为止所做的。
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)
}
}
}
该脚本允许我查看图像,但我不确定如何将其保存为文件。
答案 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"是样品名称,您可以随意保留它。