comment obtenir la largeur et la hauteur de l'image à partir de l'url sans les télécharger?
Je suis en utilisant SDWebImage pour montrer des images à l'intérieur des cellules. Mais il est parfait mached à l'image de UImageView que je suis en train de faire dans le code ci-dessous:
NSString * s =[NSString stringWithFormat:@"url of image to show"];
NSURL *url = [NSURL URLWithString:s];
[cell.shopImageView sd_setImageWithURL:url];
Mon UIImageView est de taille 50x50.
Par exemple l'image à partir de l'url est de la taille 990x2100 et mon image ne s'affiche pas bien dans le cadre donné.
Dans ce cas, lorsque la hauteur est plus grande, je veux redimensionner mon image avec un bon ratio de hauteur pour correspondre à la largeur de 50.
Est-il un moyen de vérifier la taille de votre image à partir de l'url sans le télécharger et de l'allocation de mémoire dans la terrible?
Vous pourriez essayer de mettre en place un
ouais... ça ne va pas marcher, l'API n'est pas modifiable, mais merci pour les conseils
Alors ce que vous me demandez n'est pas possible. Vous ne pouvez pas obtenir des informations sur l'image, sans que l'image elle-même, de sorte que les règles de sortir votre appareil de la solution. La seule solution serait d'avoir le serveur d'analyser l'image et l'envoyer sous forme de métadonnées, mais si le serveur Api ne peut pas changer, alors vous êtes coincé.
HEAD
demande, mais vous devez parler à l'homme qui le gère votre serveur pour vous assurer que les dimensions de l'image sont renvoyées dans la demande.ouais... ça ne va pas marcher, l'API n'est pas modifiable, mais merci pour les conseils
Alors ce que vous me demandez n'est pas possible. Vous ne pouvez pas obtenir des informations sur l'image, sans que l'image elle-même, de sorte que les règles de sortir votre appareil de la solution. La seule solution serait d'avoir le serveur d'analyser l'image et l'envoyer sous forme de métadonnées, mais si le serveur Api ne peut pas changer, alors vous êtes coincé.
OriginalL'auteur | 2014-07-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez récupérer ces données à partir de l'URL en-tête, dans Swift 3.0 utilisez code ci-dessous
Salut mansu, ajouter
#import <ImageIO/ImageIO.h>
merci, ça m'a aidé.
OriginalL'auteur arunjos007
Essayer de jouer avec les différents contentMode options pour obtenir le look que vous voulez. Un exemple pourrait être
cell.shopImageView.contentMode = UIViewContentModeScaleAspectFit;
Qui va juste faire de l'image s'adaptent bien, mais ne fait pas redimensionner l'affichage de l'image.Voici votre contentMode options: UIViewContentModes
Une solution de rechange pourrait être quelque chose le long des lignes de ce:
NSData *data = [[NSData alloc]initWithContentsOfURL:URL];
UIImage *image = [[UIImage alloc]initWithData:data];
CGFloat height = image.size.height;
CGFloat width = image.size.width;
Vous pouvez ensuite configurer votre imageView hauteur/largeur en fonction du ratio de l'image en hauteur et en largeur.
Oh, je vois, je suppose que j'ai mal compris la question. Peut-être quelque chose le long des lignes de: "NSData *data = [[NSData alloc]initWithContentsOfURL: "URL"]; UIImage *image = [[UIImage alloc]initWithData:données]; " et de vérifier ensuite l'image en hauteur et en largeur. Ou n'avez-vous pas envie de créer une UIImage?
oui, je ne voulais pas en créer un pour faire de la mémoire un faible usage à cette tâche 🙂
Je ne vous attendez pas à prendre beaucoup de mémoire si vous créez localement, mais je comprends. Eh bien, je ne peux pas penser à un moyen pour le moment. Je vais mettre à jour ma réponse au cas où quelqu'un d'autre le trouve utile.
Beau Travail de l'homme ... tqqq 🙂 +1 pour vous
OriginalL'auteur chetem
Je ne sais pas comment obtenir la taille de votre image à partir de l'URL sans le téléchargement de l'image.
Mais je peux vous donner quelques extrait de code pour faire de votre UIImageView cadre proportionnellement après le téléchargement de l'image.
Si vous utilisez la méthode ci-dessus pour télécharger l'image il permet de bloquer votre INTERFACE utilisateur. Merci donc de l'éviter.
Que vous utilisez SDWebImage, je suppose que cela va avoir des méthodes pour télécharger l'image d'abord. Ainsi, vous pouvez utiliser cette méthode pour télécharger l'image au lieu d'utiliser UIImageView catégories méthode que vous avez utilisé ci-dessus.
Après que vous avez téléchargé l'image. Essayez quelque chose comme ci-dessous.
Extrait De Code
Assumer le téléchargement de l'image et de l'objet est "l'image", et "imageView' que votre cellulaire imageview
OriginalL'auteur raja
OriginalL'auteur deepak vaishnav