iphone - uiimage'in yüksekliğini ve genişliğini nasıl alabilirim


Yanıtlar:


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

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

3
Nokta. Pikselleri almak için scale özelliğiyle çarpın.
rmooney

Garipti. Kamera ile fotoğraf çektim ve yüksekliğini> genişliği düşündüm. Ancak genişlik noktaları 1280 ve yükseklik 720 idi. Onlarda sorun ne?
Henry

1
kamera rulosundan görüntü yüklerken (UIImagePickerController aracılığıyla) ölçek her zaman 1.0 gibi görünür, ancak image.size image.size piksel olarak verilmez. (aslında piksel boyutunun yarısıdır). -> uygun piksel boyutunu nasıl alabilirim - iPhone 6/7 Plus'ta 3 olan UIScreen.main.scale nedenini kullanamıyorum, ancak image.size aynı kalıyor
benrudhart

Önceki yorumda belirtildiği gibi image.scale varsayılan olarak yalnızca 1.0'dır. Bununla birlikte, varsayılan bir simülatör görüntüsü için (3000, 2002) gibi değerler alıyorum, bu yüzden bir nokta değeri değil gerçek pikseller olmalı, değil mi? Bu yazı birkaç yaşında, bu yüzden image.size gerçek piksel değerini yansıtacak şekilde değişti.
Austin Whitelaw


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

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

6

Yukarıdaki anws'lardan bazıları, cihazı döndürürken iyi çalışmıyor.

Deneyin:

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

Başka bir çerçeve kullanmaktan çok UIImage'dan kullanımı basit.
Satyam

0

Dışarıda birçok yararlı çözüm var, ancak uzantı ile basitleştirilmiş bir yol yok. Sorunu bir uzantıyla çözmek için kod:

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

imageView'in boyutunu nasıl alacağınızı gösterirsiniz, görüntünün boyutu ile aynı değildir
ramzesenok
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.