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


Antworten:


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

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

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


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

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

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;

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

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
        }
    }
}

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

let imageViewHeight: CGFloat = imageView.frame.height

let imageViewWidth: CGFloat = imageView.frame.width

Sie zeigen, wie Sie die Größe von imageView erhalten. Es ist nicht dasselbe wie die Größe von
imageView
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.