Wie bekomme ich die Breite und Höhe des Bildes von der URL ohne Download?

8

Ich verwende SDWebImage zum Anzeigen von Bildern in Zellen. Aber es ist perfekt auf Frame von UImageView, die ich in Code unten mache:

%Vor%

Mein UIImageView ist Größe 50x50.

Zum Beispiel ist das Bild von der URL die Größe 990x2100 und mein Bild wird nicht gut im angegebenen Frame angezeigt. In diesem Fall, wenn die Höhe größer ist, möchte ich mein Bild mit einem passenden Höhenverhältnis skalieren, um die Breite 50 zu erreichen.

Gibt es eine Möglichkeit, die Größe eines Bildes von einer URL aus zu überprüfen, ohne es herunterzuladen und Speicher auf schreckliche Weise zuzuordnen?

    
Łukasz Szpyrka 22.07.2014, 18:47
quelle

4 Antworten

6

Versuchen Sie, mit den verschiedenen Optionen von contentMode zu spielen, um das gewünschte Aussehen zu erhalten. Ein Beispiel könnte sein cell.shopImageView.contentMode = UIViewContentModeScaleAspectFit; Das wird nur das Bild passen, aber wird nicht die Größe der Bildansicht ändern.

Hier sind Ihre Optionen für contentMode: UIViewContentModes

Eine Alternative könnte in etwa so aussehen:

NSData *data = [[NSData alloc]initWithContentsOfURL:URL]; UIImage *image = [[UIImage alloc]initWithData:data]; CGFloat height = image.size.height; CGFloat width = image.size.width;

Sie können Ihre imageView-Höhe / -Breite dann abhängig vom Verhältnis der Höhe / Breite des Bildes einstellen.

    
chetem 22.07.2014 18:53
quelle
3

Sie können diese Daten aus dem URL-Header abrufen, in Swift 3.0 verwenden Sie den Code

%Vor%     
arunjos007 18.07.2017 13:13
quelle
1
  • Ich weiß nicht, wie Sie die Größe Ihres Bildes aus der URL ermitteln können, ohne das Bild herunterzuladen.

  • Aber ich kann Ihnen ein Code-Snippet zur Verfügung stellen, um Ihren UIImageView-Frame proportional zu machen, nachdem das Bild heruntergeladen wurde.

    %Vor%
  • Wenn Sie die oben genannte Methode zum Herunterladen von Bildern verwenden, wird Ihre Benutzeroberfläche blockiert. Also bitte vermeide es.

    %Vor%
  • Da Sie SDWebImage verwenden, wird es wahrscheinlich einige spezielle Methoden geben, um das Bild zuerst herunterzuladen. Sie können diese Methode also verwenden, um das Bild herunterzuladen, anstatt die UIImageView-Kategorien-Methode wie oben zu verwenden.

  • Nachdem Sie das Bild heruntergeladen haben. Versuchen Sie etwas wie unten.

  • Code-Snippet

  • Nehmen Sie an, das Bild wird heruntergeladen und das Objekt ist 'theImage' und 'imageView' als Ihre Zellbildansicht

    %Vor%
raja 23.07.2014 09:13
quelle
1
%Vor%     
deepak vaishnav 16.06.2017 10:54
quelle