我在我的网站的服务器上有一个图像,我想通过Swift获取它。通常我只是通过PHP发送数据到Swift使用HTTP请求,但我不知道如何发送图像。我该如何做?Swift从服务器获取图像的最佳方式是什么?
回答
这是我下载图像功能,你只需要下载网址:
let imageCache = NSCache<AnyObject, AnyObject>()
func downloadImageFromURL(string: String) -> UIImage {
if let cachedImage = imageCache.object(forKey: string as AnyObject) as? UIImage {
return cachedImage
} else {
let data = NSData(contentsOf: URL(string: string)!)
return UIImage(data: data! as Data)!
}
}
您只需拨打:let image = downloadImageFromURL("yourURL")
编辑
这是直接下载图片到版我以前用过的imageView;这是一个不同的方法,也许它会加载速度更快:
let imageCache = NSCache<AnyObject, AnyObject>()
extension UIImageView {
func downloadImage(from imgURL: String!) {
self.image = nil
// Check if there's an image in the cache
if let cachedImage = imageCache.object(forKey: imgURL as AnyObject) as? UIImage {
self.image = cachedImage
return
}
// Otherwise, download image from Firebase via URL-string
let url = URLRequest(url: URL(string: imgURL)!)
let task = URLSession.shared.dataTask(with: url) {
(data, response, error) in
if error != nil {
print(error!)
return
}
DispatchQueue.main.async {
if let image = UIImage(data: data!) {
imageCache.setObject(image, forKey: imgURL as AnyObject)
}
self.image = UIImage(data: data!)
}
}
task.resume()
}
}
谢谢,但它确实需要花费大量的时间来下载,是不是有什么更快的方式? –
这取决于您的互联网连接;)不,这是推荐的下载数据的方式。但是,如果有人连接不好,您可以做什么,以及我所做的是上传压缩版本的图像。上传时,只需说:let data = UIImageJPEGRepresentation(yourImage,0.7);上传压缩版本的图像,并认真地说,没有太大的区别。 –
好的,谢谢你的回答! –
- 1. 服务小静态图像的最佳方式是什么?
- 2. 从audiofile获取图像的最佳方法是什么?
- 3. Swift:什么是不断向服务器请求数据的最佳方式
- 4. SQL服务器:什么是数据迁移的最佳方式?
- 5. 打开TCP流到服务器的最佳方式是什么?
- 6. 在服务器中实现AutoComplete的最佳方式是什么?
- 7. 什么是与MySQL服务器通信的最佳方式?
- 8. 测试Atom服务器的最佳方式是什么?
- 9. 跨服务器分发代码的最佳方式是什么?
- 10. 什么是推出Jenkins服务器的最佳方式
- 11. 从Excel访问WCF服务的最佳方式是什么?
- 12. 捕获图像后调用StartPreview()的最佳方式是什么?
- 13. 通过C#中的web服务传输图像的最佳方式是什么?
- 14. 从detailViewController获取布尔值的最佳方式是什么?
- 15. 从jqGrid单元获取数据的最佳方式是什么?
- 16. 从app.config获取数据的最佳方式是什么?
- 17. 从NHibernate获取聚合结果的最佳方式是什么?
- 18. 厨师从用户获取UID的最佳方式是什么?
- 19. 什么是直播iPhone摄像头到媒体服务器的最佳方式?
- 20. 跨服务器分发多个服务副本的最佳方式是什么?
- 21. swift什么是从firebase检索snap节点的最佳方式
- 22. 实现OpenID服务器(最好是Ruby)的最佳方式是什么?
- 23. 发送图像文件到服务器的最佳方式是什么:作为base64或图像文件?
- 24. PHP - 从远程服务器获取ftp列表的最佳做法是什么?
- 25. 将更新从服务器发送到iphone的最佳方式是什么?
- 26. 从C#程序监控AWS服务器性能的最佳方式是什么?
- 27. 从Rails到EventMachine服务器安排工作的最佳方式是什么?
- 28. 什么是在.NET中“平方”图像的最佳方式?
- 29. 什么是改变图像视图来源的最佳方式?
- 30. 在Android中从Web服务器显示一堆图像的最佳方式是什么?
用POD这个https://github.com/Alamofire/AlamofireImage –