Saya dapat membuat UIImage
dari NSData
penggunaan [UIImage imageWithData:]
atau [UIImage initWithData:]
metode.
Saya ingin tahu apakah saya bisa mendapatkan NSData
kembali dari yang ada UIImage
? Sesuatu yang dipertaruhkanNSData *myData = [myImage getData];
cocoa-touch
uiimage
nsdata
Eugene
sumber
sumber
UIImageJPEGRepresentation
atauUIImagePNGRepresentation
akan mengubah data dan melakukan konversi ulang. Adakah cara untuk benar-benar mencapai apa yang diminta?Saat menginisialisasi
UIImage
objek denganinit(data: originalData)
, ituoriginalData
akan diubah menjadi data mentah dalam beberapa jenis format internal. Data ini dapat diambil nanti denganNamun karena
rawData
mentah, itu akan menjadi lebih besar daripada saat digunakanUIImagePNGRepresentation
.sumber
Anda dapat mengharapkan bahwa UIImage adalah objek yang diformat untuk tampilan dan karenanya tidak akan menggunakan data asli (yang mungkin dalam format PNG atau JPEG) tetapi lebih mungkin berupa larik piksel atau format internal lainnya. Dengan kata lain,
UIImage(data: foo)
tidak akan dipertahankanfoo
.Jika Anda hanya ingin menggunakannya di tempat lain di program Anda, UIImage asli akan baik-baik saja (saya kira sebenarnya tidak demikian di sini)
Jika Anda ingin membuat serial,
UIImagePNGRepresentation(...)
akan berfungsi tetapi akan menjadi besar jika aslinya adalah JPEG;UIImageJPEGRepresentation(...)
sering kali akan menghasilkan data yang sedikit terlalu besar dan sedikit merugikan jika aslinya adalah PNG. Seharusnya tidak masalah untuk memilih satu berdasarkan cara gambar akan ditampilkan dan format yang Anda harapkan disediakan. Jika Anda kebetulan menggunakan PNG dan ingin PNG, Anda harus mendapatkan ukuran file yang bagus dan data yang hampir sama, selain potongan PNG khusus.Jika Anda ingin mendapatkan salinan persis dari data asli (mungkin untuk menyimpan file setelah thumbnail, atau SHA1), maka Anda perlu menyimpannya secara terpisah. Anda mungkin melakukan sesuatu seperti:
sumber
Hanya karena saya tersandung pada ini dan saya suka cepat :)
Berikut adalah terjemahan cepat dari postingan Caroiline.
Atau
sumber
Swift 4.2.0
sumber
Banyak hal telah berubah sejak jawaban di atas diberikan, bagi mereka yang masih mencari karena mereka memiliki kekhawatiran yang sama dengan CipherCom: iOS 5 telah menambahkan properti CIImage .
sumber
CIImage
hanya disetel jika diinisialisasi denganimageWithCIImage:
. Juga ini bukan data yang digunakan secara langsung melainkan objek representasi gambar lain.