iphone - come posso ottenere l'altezza e la larghezza di uiimage


Risposte:


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

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

3
Punti. Moltiplicare per la proprietà scale per ottenere i pixel.
rmooney,

Era strano. Ho fatto una foto con la macchina fotografica e suppongo che fosse altezza> larghezza. Ma i punti di larghezza erano 1280 e altezza 720. Che problema hanno?
Henry,

1
quando si carica un'immagine dal rullino fotografico (tramite UIImagePickerController) la scala sembra sempre essere 1.0 ma la dimensione dell'immagine non è dell'immagine. (in realtà è la metà della dimensione dei pixel). -> come posso ottenere le dimensioni corrette dei pixel - impossibile utilizzare UIScreen.main.scale perché è 3 su iPhone 6/7 Plus, ma image.size rimane lo stesso
benrudhart

Sembra che image.scale sia solo 1,0 per impostazione predefinita, come menzionato nel commento precedente. Detto questo, sto ottenendo valori come (3000, 2002) per un'immagine predefinita del simulatore, quindi devono essere i pixel effettivi e non un valore in punti, giusto? Questo post ha qualche anno, quindi forse image.size è cambiato per riflettere il valore reale dei pixel.
Austin Whitelaw,


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

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

6

Alcune delle risposte precedenti non funzionano bene durante la rotazione del dispositivo.

Provare:

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

È semplice da usare da UIImage che usare un altro framework.
Satyam,

0

Ci sono molte soluzioni utili là fuori, ma non esiste un modo semplificato con l'estensione. Ecco il codice per risolvere il problema con un'estensione:

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

mostri come ottenere le dimensioni di imageView, non è lo stesso con le dimensioni dell'immagine
ramzesenok
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.