iphone - bagaimana saya bisa mendapatkan tinggi dan lebar uiimage


Jawaban:


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

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

3
Poin. Kalikan dengan properti skala untuk mendapatkan piksel.
rmooney

Itu aneh. Saya mengambil foto dengan kamera dan memperkirakan tinggi> tingginya. Tetapi titik lebarnya adalah 1280 dan tinggi 720. Apa masalah dengan mereka?
Henry

1
saat memuat gambar dari gulungan kamera (melalui UIImagePickerController) skala selalu tampak 1,0 tetapi ukuran image.size tidak image.size tidak diberikan dalam piksel. (sebenarnya setengah ukuran piksel). -> bagaimana cara mendapatkan ukuran piksel yang tepat - tidak dapat menggunakan penyebab UIScreen.main.scale 3 pada iPhone 6/7 Plus, tetapi ukuran image.size tetap sama
benrudhart

Tampaknya image.scale hanya 1,0 secara default, seperti yang disebutkan dalam komentar sebelumnya. Yang sedang berkata, saya mendapatkan nilai seperti (3000, 2002) untuk gambar simulator default, jadi itu harus piksel aktual dan bukan nilai poin, kan? Posting ini berumur beberapa tahun jadi mungkin image.size telah berubah untuk mencerminkan nilai piksel yang sebenarnya.
Austin Whitelaw


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

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

6

Beberapa jawaban di atas, tidak berfungsi dengan baik saat memutar perangkat.

Mencoba:

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

Ini mudah digunakan dari UIImage daripada menggunakan framework lain.
Satyam

0

Ada banyak solusi bermanfaat di luar sana, tetapi tidak ada cara yang disederhanakan dengan ekstensi. Berikut adalah kode untuk menyelesaikan masalah dengan ekstensi:

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

Anda menunjukkan cara mendapatkan ukuran imageView, itu tidak sama dengan ukuran gambar
ramzesenok
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.