Lebih
Dapatkan ukuran UIImage (panjang byte) tidak tinggi dan lebar
I'm mencoba untuk mendapatkan panjang UIImage
. Tidak lebar atau tinggi gambar, tetapi ukuran dari data.
57
10
Data yang mendasarinya yang
UIImage
dapat bervariasi, sehingga untuk sama "gambar" seseorang dapat memiliki berbagai ukuran dari data. Satu hal yang dapat anda lakukan adalah menggunakanUIImagePNGRepresentation
atauUIImageJPEGRepresentation
untuk mendapatkan setara denganNSData
konstruksi untuk baik, kemudian memeriksa ukuran yang.Gunakan CGImage properti UIImage. Kemudian menggunakan kombinasi CGImageGetBytesPerRow * CGImageGetHeight, tambahkan di sizeof UIImage, anda harus hanya beberapa byte dari ukuran sebenarnya.
Ini akan mengembalikan ukuran dari gambar, tidak terkompresi, jika anda ingin menggunakannya untuk keperluan seperti malloc dalam persiapan untuk manipulasi bitmap (dengan asumsi 4 byte pixel format 3 byte untuk RGB dan 1 untuk Alpha):
Contoh di Swift:
Berikut ini adalah cara tercepat, paling bersih, paling umum, dan paling rawan kesalahan cara untuk mendapatkan jawabannya. Dalam kategori
UIImage+Stick
:Atau jika anda hanya ingin sebenarnya bitmap dan tidak UIImage contoh wadah, maka hal ini benar-benar sederhana seperti ini:
I'm tidak yakin situasi anda. Jika anda memerlukan sebenarnya ukuran byte, I don't pikir anda melakukan itu. Anda dapat menggunakan UIImagePNGRepresentation atau UIImageJPEGRepresentation untuk mendapatkan NSData objek kompresi data citra.
Saya pikir anda ingin mendapatkan ukuran yang sebenarnya dari gambar terkompresi(piksel data). Anda perlu mengkonversi UIImage* atau CGImageRef untuk data mentah. Ini adalah contoh konversi UIImage untuk IplImage(dari OpenCV). Anda hanya perlu mengalokasikan cukup memori dan lulus pointer ke CGBitmapContextCreate's pertama arg.
Swift 3:
Jika diperlukan dalam bentuk yang dapat dibaca manusia kita dapat menggunakan ByteCountFormatter
Di mana
Int64(data.count)
adalah apa yang anda butuhkan dalam format numerik.SWIFT 4+
anda dapat menggunakan trik ini untuk mengetahui ukuran gambar.