Potrzebuję załadować obraz z adresu URL i ustawić go w UIImageView; Problem polega na tym, że nie znam dokładnego rozmiaru obrazu, a następnie w jaki sposób mogę poprawnie wyświetlić obraz?iOS: załaduj obraz z adresu URL
Odpowiedz
Wystarczy użyć właściwości rozmiaru UIImage, na przykład:
NSURL *url = [NSURL URLWithString:path];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];
CGSize size = img.size;
Lub ustaw żądany rozmiar w widoku obrazu i po prostu rozciągnij obraz po pobraniu, aby dopasować go do widoku obrazu. (Powinieneś rozciągnąć I zachować aspekt, wszystko inne wygląda dziwnie) –
ah ok ... ale nie rozumiem, jak zmienić rozmiar tego obrazu dla mojego imageView; Ja sholud stworzyć miniaturę i nie mam dużo miejsca na mój imageView (max 236 szerokość i max 60 na wysokość); w tym miejscu powinienem załadować obraz z adresu URL, ale powinien on być proporcjonalny ... – CrazyDev
Myślę, że chcesz ustawić contentMode UIImageView na UIContentViewScaleAspectFit. Ale spójrz na dokumentację. – fbernardo
w Swift:
var url = NSURL.URLWithString("http://www.example.com/picture.png")
var data = NSData(contentsOfURL : url)
var image = UIImage(data : data)
image.size // if you need it
w Swift dotyczące korzystających optionals:
var url:NSURL? = NSURL(string: imageString)
var data:NSData? = NSData(contentsOfURL : url!)
var image = UIImage(data : data!)
Spowoduje to awarię, jeśli plik obrazu nie znajduje się w określonym ciągu obrazu. – Suragch
Skorzystaj z instrukcji if lets! Jest to niebezpieczny kod i ulegnie awarii, jeśli adres URL jest zerowy –
w Swift 3.0
Główny wątek musi być zawsze wolny, aby obsługiwać interfejs użytkownika i interakcje użytkownika.
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
private func fetchImage() {
let imageURL = URL(string: "https://i.stack.imgur.com/9z6nS.png")
var image: UIImage?
if let url = imageURL {
//All network operations has to run on different thread(not on main thread).
DispatchQueue.global(qos: .userInitiated).async {
let imageData = NSData(contentsOf: url)
//All UI operations has to run on main thread.
DispatchQueue.main.async {
if imageData != nil {
image = UIImage(data: imageData as! Data)
self.imageView.image = image
self.imageView.sizeToFit()
} else {
image = nil
}
}
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
fetchImage()
}
}
Aby pobrać Asynchronous obraz z biblioteki Kingfisher można wykonać ten krok URL: https://github.com/onevcat/Kingfisher:
func imageFromUrl(_ urlString: String) {
if let url = URL(string: urlString) {
ImageDownloader.default.downloadImage(with: url, options: [], progressBlock: nil) {
(image, error, url, data) in
DispatchQueue.main.async {
self.imageView.image = image
}
}
}
}
Można również pobrać obraz z domyślnie URLSession.shared.dataTask
func imageFromUrl(_ urlString: String) {
if let url = URL(string: urlString) {
let request = URLRequest(url: url)
URLSession.shared.dataTask(with: request) {(data,response,error) in
if let imageData = data as Data? {
if let img = UIImage(data: imageData){
DispatchQueue.main.async {
self.imageView.image = img
}
}
}
}
}
}
- 1. Javascript: Załaduj obraz z adresu URL i wyświetl
- 2. Facebook API załaduj zdjęcie z adresu URL
- 3. Eliksir - pobierz plik (obraz) z adresu URL:
- 4. Załaduj obraz Picturebox z pamięci?
- 5. Załaduj obraz wiosną mvc
- 6. Wstępnie załaduj obraz tła
- 7. Picasso Załaduj obraz do celu
- 8. Pobierz obraz z adresu URL za pomocą kodu php?
- 9. Uruchom przeglądarkę intencji, aby wyświetlić obraz z adresu URL
- 10. JavaScript narysuj dynamiczny obraz z adresu URL na element canvas
- 11. Jak przesłać obraz z jego adresu URL na kartę SD?
- 12. Pobierz odpowiedni obraz i podsumowanie z adresu URL
- 13. Jak mogę pobrać duży obraz z adresu URL?
- 14. Schemat adresu URL "Ustawienia otwarte" ios
- 15. UIWebView nie ładuje adresu URL, iOS
- 16. Android obraz widok z url
- 17. Obraz interwencji: zapisać obraz bezpośrednio z adresu URL z oryginalną nazwą pliku i zewn.
- 18. Obraz z URL strumienia
- 19. Jak uzyskać miniatury z dowolnego adresu URL w systemie iOS?
- 20. Uzyskiwanie pełnego adresu URL z adresu URL znakiem tyldy (~)
- 21. Szykuje jak zażądać adresu URL z wyjątkiem parametrów adresu URL?
- 22. Załaduj obraz w tagu img
- 23. SKSpriteNode z UIImage z adresu URL
- 24. Multipart Form Image Załaduj obraz i Json
- 25. Schemat adresu URL dla Linkedin
- 26. Jak powiązać obraz za pomocą dynamicznego adresu URL w WPF?
- 27. Obrazek do tablicy bajtów z adresu URL
- 28. Przeczytaj JSON z adresu URL
- 29. Obrazek aplikacji Android z adresu URL
- 30. Załaduj ABRecordRef z ABRecordID w iOS
Dlaczego Czy to byłby problem? Po pobraniu obrazu poznasz jego rozmiar. Możesz również sprawić, aby obraz miał pożądany rozmiar i rozciągnąć obraz tak, aby pasował. –