我在我的網站的服務器上有一個圖像,我想通過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. 通過HTTP從服務器獲取對象的最佳方式是什麼?
- 3. 什麼是從服務器下載文件的最佳方式
- 4. 從audiofile獲取圖像的最佳方法是什麼?
- 5. 什麼是獲取用戶位置服務器端的最佳方式
- 6. Swift:什麼是不斷向服務器請求數據的最佳方式
- 7. 在PHP或Javascript中從S3獲取圖像的最佳方式是什麼?
- 8. 在服務器中實現AutoComplete的最佳方式是什麼?
- 9. 跨服務器分發代碼的最佳方式是什麼?
- 10. 什麼是與MySQL服務器通信的最佳方式?
- 11. 上傳文件到服務器的最佳方式是什麼?
- 12. SQL服務器:什麼是數據遷移的最佳方式?
- 13. 測試Atom服務器的最佳方式是什麼?
- 14. 打開TCP流到服務器的最佳方式是什麼?
- 15. 什麼是推出Jenkins服務器的最佳方式
- 16. 從Excel訪問WCF服務的最佳方式是什麼?
- 17. 捕獲圖像後調用StartPreview()的最佳方式是什麼?
- 18. 的最佳方式從服務器
- 19. 通過C#中的web服務傳輸圖像的最佳方式是什麼?
- 20. 廚師從用戶獲取UID的最佳方式是什麼?
- 21. 從配置文件獲取值的最佳方式是什麼?
- 22. 從div獲取內容的最佳方式是什麼?
- 23. 從jqGrid單元獲取數據的最佳方式是什麼?
- 24. 從app.config獲取數據的最佳方式是什麼?
- 25. 什麼是從目錄獲取csv文件的最佳方式?
- 26. 從NHibernate獲取聚合結果的最佳方式是什麼?
- 27. 從detailViewController獲取布爾值的最佳方式是什麼?
- 28. 什麼是直播iPhone攝像頭到媒體服務器的最佳方式?
- 29. swift什麼是從firebase檢索snap節點的最佳方式
用POD這個https://github.com/Alamofire/AlamofireImage –