iphone - bagaimana saya bisa mendapatkan tinggi dan lebar uiimage

227

Dari Gambar URL di Mail

Saya menambahkan gambar ke tampilan surat. Ini akan menampilkan gambar penuh. Tapi saya ingin menghitung, secara proporsional mengubah tinggi dan lebar gambar.

Bagaimana saya bisa mendapatkan tinggi dan lebar UIImage?

Satyam
sumber

Jawaban:

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

let widthInPoints = image.size.width
let widthInPixels = widthInPoints * image.scale
Jgubman
sumber
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
35

Gunakan sizeproperti pada instance UIImage. Lihat dokumentasi untuk lebih jelasnya.

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

CGFloat width = img.size.width;
CGFloat height = img.size.height;
MaxEcho
sumber
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;
Sinuhe Huidobro
sumber
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
sumber
0
    import func AVFoundation.AVMakeRect

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

    x = imageRect.minX

    y = imageRect.minY
ironRoei
sumber
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
        }
    }
}
Bruno Eigenmann
sumber
-2
let imageView: UIImageView = //this is your existing imageView

let imageViewHeight: CGFloat = imageView.frame.height

let imageViewWidth: CGFloat = imageView.frame.width
Wyatt
sumber
Anda menunjukkan cara mendapatkan ukuran imageView, itu tidak sama dengan ukuran gambar
ramzesenok