iphone - wie kann ich die Höhe und Breite von uiimage erhalten

227

Aus dem URL- Bild in Mail

Ich füge der Mailansicht ein Bild hinzu. Es wird das vollständige Bild angezeigt. Aber ich möchte berechnen, die Höhe und Breite des Bildes proportional ändern.

Wie kann ich die Höhe und Breite von erhalten UIImage?

Satyam
quelle

Antworten:

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

let widthInPoints = image.size.width
let widthInPixels = widthInPoints * image.scale
Jgubman
quelle
3
Punkte. Multiplizieren Sie mit der Skalierungseigenschaft, um die Pixel zu erhalten.
Rmooney
Es war komisch. Ich habe ein Foto mit der Kamera gemacht und angenommen, dass seine Höhe> Breite ist. Aber die Punkte der Breite waren 1280 und der Höhe 720. Was ist das Problem mit ihnen?
Henry
1
Beim Laden des Bildes von der Kamerarolle (über UIImagePickerController) scheint der Maßstab immer 1,0 zu sein, aber die Bildgröße nicht. Die Bildgröße wird nicht in Pixel angegeben. (Es ist tatsächlich die Hälfte der Pixelgröße). -> wie bekomme ich die richtige Pixelgröße - kann UIScreen.main.scale nicht verwenden, da dies 3 auf dem iPhone 6/7 Plus ist, aber image.size bleibt gleich
benrudhart
Es scheint, dass image.scale standardmäßig nur 1.0 ist, wie im vorherigen Kommentar erwähnt. Davon abgesehen erhalte ich Werte wie (3000, 2002) für ein Standard-Simulatorbild, das müssen also die tatsächlichen Pixel und kein Punktwert sein, oder? Dieser Beitrag ist einige Jahre alt, daher hat sich möglicherweise die Größe von image.size geändert, um den tatsächlichen Pixelwert wiederzugeben.
Austin Whitelaw
35

Verwenden Sie die sizeEigenschaft für die UIImage-Instanz. Weitere Informationen finden Sie in der Dokumentation .

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

CGFloat width = img.size.width;
CGFloat height = img.size.height;
MaxEcho
quelle
6

Einige der oben genannten Antworten funktionieren beim Drehen des Geräts nicht gut.

Versuchen:

CGRect imageContent = self.myUIImage.bounds;
CGFloat imageWidth = imageContent.size.width;
CGFloat imageHeight = imageContent.size.height;
Sinuhe Huidobro
quelle
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) ;
Sayeed S. Alam
quelle
0
    import func AVFoundation.AVMakeRect

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

    x = imageRect.minX

    y = imageRect.minY
ironRoei
quelle
Es ist einfach von UIImage aus zu verwenden als von einem anderen Framework.
Satyam
0

Es gibt viele hilfreiche Lösungen, aber es gibt keinen vereinfachten Weg mit der Erweiterung. Hier ist der Code, um das Problem mit einer Erweiterung zu lösen:

extension UIImage {

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

    var getHeight: CGFloat {
        get {
            let height = self.size.height
            return height
        }
    }
}
Bruno Eigenmann
quelle
-2
let imageView: UIImageView = //this is your existing imageView

let imageViewHeight: CGFloat = imageView.frame.height

let imageViewWidth: CGFloat = imageView.frame.width
Wyatt
quelle
Sie zeigen, wie Sie die Größe von imageView erhalten. Es ist nicht dasselbe wie die Größe von
imageView