iphone - comment obtenir la hauteur et la largeur de uiimage


Réponses:


424
let heightInPoints = image.size.height
let heightInPixels = heightInPoints * image.scale

let widthInPoints = image.size.width
let widthInPixels = widthInPoints * image.scale

3
Points. Multipliez par la propriété scale pour obtenir les pixels.
rmooney

C'était étrange. J'ai pris une photo par appareil photo et supposé sa hauteur> largeur. Mais les points de largeur étaient 1280 et la hauteur 720. Quel est le problème avec eux?
Henry

1
lors du chargement de l'image à partir de la pellicule (via UIImagePickerController), l'échelle semble toujours être 1,0 mais l'image.size ne correspond pas à l'image.size n'est pas donnée en pixels. (c'est en fait la moitié de la taille des pixels). -> comment obtenir la bonne taille de pixel - ne peut pas utiliser UIScreen.main.scale car c'est 3 sur iPhone 6/7 Plus, mais image.size reste le même
benrudhart

Il semble que image.scale ne soit que de 1,0 par défaut, comme mentionné dans le commentaire précédent. Cela étant dit, j'obtiens des valeurs comme (3000, 2002) pour une image de simulateur par défaut, donc ce doit être les pixels réels et non une valeur en points, non? Ce message a quelques années, alors peut-être que image.size a changé pour refléter la valeur réelle des pixels.
Austin Whitelaw


11
UIImage *img = [UIImage imageNamed:@"logo.png"];

CGFloat width = img.size.width;
CGFloat height = img.size.height;

6

Certaines des réponses ci-dessus, ne fonctionnent pas bien lors de la rotation de l'appareil.

Essayer:

CGRect imageContent = self.myUIImage.bounds;
CGFloat imageWidth = imageContent.size.width;
CGFloat imageHeight = imageContent.size.height;

2
UIImageView *imageView = [[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"MyImage.png"]]autorelease];

NSLog(@"Size of my Image => %f, %f ", [[imageView image] size].width, [[imageView image] size].height) ;

0
    import func AVFoundation.AVMakeRect

    let imageRect = AVMakeRect(aspectRatio: self.image!.size, insideRect: self.bounds)

    x = imageRect.minX

    y = imageRect.minY

C'est simple à utiliser depuis UIImage plutôt qu'avec un autre framework.
Satyam

0

Il existe de nombreuses solutions utiles, mais il n'y a pas de moyen simplifié avec l'extension. Voici le code pour résoudre le problème avec une extension:

extension UIImage {

    var getWidth: CGFloat {
        get {
            let width = self.size.width
            return width
        }
    }

    var getHeight: CGFloat {
        get {
            let height = self.size.height
            return height
        }
    }
}

-2
let imageView: UIImageView = //this is your existing imageView

let imageViewHeight: CGFloat = imageView.frame.height

let imageViewWidth: CGFloat = imageView.frame.width

vous montrez comment obtenir la taille de l'imageView, ce n'est pas la même chose avec la taille de l'image
ramzesenok
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.