Saya memiliki aplikasi yang akan menampilkan banyak gambar dalam tayangan slide. Gambar-gambar itu akan menjadi bagian dari bundel, sehingga didistribusikan dengan aplikasi.
Semua gambar adalah foto atau fotografi, dll.
Saya pernah membaca bahwa lebih suka menggunakan PNG sebagai format gambar, tetapi melihat bahwa versi JPG akan jauh lebih kecil, saya lebih suka menggunakannya.
Apakah ada pedoman format mana yang digunakan dan dalam kasus apa?
Jawaban:
PNG adalah piksel sempurna (non-lossy), dan membutuhkan sedikit energi CPU ekstra untuk ditampilkan. Namun, PNG besar mungkin membutuhkan waktu lebih lama untuk dibaca dari penyimpanan daripada format gambar yang lebih terkompresi, dan karenanya lebih lambat untuk ditampilkan.
JPG lebih kecil untuk disimpan, tetapi lossy (jumlah tergantung pada tingkat kompresi), dan untuk menampilkannya membutuhkan algoritma decoding yang jauh lebih rumit. Tetapi kompresi tipikal dan kualitas gambar biasanya cukup memadai untuk foto.
Gunakan JPG untuk foto dan untuk apa pun yang besar, dan PNG untuk apa pun yang kecil dan / atau dirancang untuk ditampilkan "piksel sempurna" (mis. Ikon kecil) atau sebagai bagian dari hamparan transparan gabungan, dll.
sumber
Apple mengoptimalkan gambar PNG yang disertakan dalam bundel aplikasi iPhone Anda. Faktanya, iPhone menggunakan pengkodean khusus di mana byte warna dioptimalkan untuk perangkat keras. XCode menangani pengkodean khusus ini untuk Anda ketika Anda membangun proyek Anda. Jadi, Anda memang melihat manfaat tambahan menggunakan PNG di iPhone selain pertimbangan ukurannya. Untuk alasan ini, sangat disarankan untuk menggunakan PNG untuk gambar apa pun yang muncul sebagai bagian dari antarmuka (dalam tampilan tabel, label, dll).
Sedangkan untuk menampilkan gambar layar penuh seperti foto, Anda mungkin masih mendapatkan keuntungan dengan PNG karena tidak merugikan dan kualitas visual harus lebih baik daripada JPG belum lagi penggunaan sumber daya dengan decoding gambar. Anda mungkin perlu menurunkan kualitas JPG Anda untuk melihat manfaat nyata dalam ukuran file tetapi kemudian Anda menampilkan gambar yang tidak optimal.
Ukuran file tentunya merupakan faktor tetapi ada pertimbangan lain yang berperan juga saat memilih format gambar.
sumber
Ada satu hal penting yang harus dipikirkan dengan PNG. Jika PNG disertakan dalam Xcode build Anda, itu akan dioptimalkan untuk iOS. Ini disebut naksir PNG. Jika PNG Anda diunduh pada saat dijalankan, itu tidak akan dihancurkan. PNG yang dihancurkan berjalan hampir sama dengan 100% JPG. JPG kualitas rendah berjalan lebih baik daripada JPG kualitas lebih tinggi. Jadi dari sudut pandang kinerja dari yang tercepat hingga yang paling lambat akan menghasilkan JPG berkualitas rendah, JPG berkualitas tinggi, PNG Hancur, PNG.
Jika Anda perlu mengunduh PNG, Anda harus mempertimbangkan untuk menghancurkan PNG di server sebelum mengunduh.
http://www.cocoanetics.com/2011/10/avoiding-image-decompression-sickness/
sumber
The Cocoanetics blog yang diterbitkan patokan kinerja iOS bagus dari JPG pada berbagai tingkat kualitas, dan PNG, dengan dan tanpa menghancurkan.
Dari kesimpulannya:
sumber
Hanya berpikir saya akan membagikan sedikit data kinerja dekompresi ...
Saya melakukan beberapa prototipe penampil 360 derajat - korsel tempat pengguna dapat memutar melalui serangkaian foto yang diambil dari berbagai sudut, untuk memberikan kesan dapat memutar objek dengan mulus.
Saya telah memuat data gambar ke dalam array NSData untuk mengambil i / o file dari persamaan, tetapi membuat NSImage dengan cepat. Menguji pada frekuensi gambar mendekati maks (~ 25 fps) dan menonton di Instrumen Saya melihat aplikasi ini jelas terikat dengan CPU dan ada peningkatan sekitar 10% dalam beban CPU yang menunjukkan ~ 275 kb png vs ~ 75 kb jpg.
Saya tidak bisa mengatakan dengan pasti tetapi tebakan saya adalah batas CPU hanya dari eksekusi program umum dan memindahkan semua data di sekitar memori, tetapi dekompresi gambar itu dilakukan pada GPU. Either way dan argumen kinerja JPG vs. PNG tampaknya mendukung JPG, terutama ketika ukuran file yang lebih kecil (dan karena itu ukuran objek yang lebih kecil dalam memori setidaknya di beberapa bagian rantai) dipertimbangkan.
Tentu saja setiap situasi berbeda, tidak ada pengganti untuk pengujian ...
sumber
Saya menemukan perbedaan besar dalam performa animasi saat menggunakan jpegs vs png. Misalnya menempatkan tiga jpeg seukuran layar berdampingan dalam UIScrollView dan menggulir secara horizontal pada iPhone4 menghasilkan kelambatan dan animasi tersentak-sentak yang tidak menyenangkan. Dengan png non-transparan dengan dimensi yang sama, pengguliran menjadi mulus. Saya tidak pernah menggunakan jpegs, meskipun gambarnya besar.
sumber
Saya rasa jika Anda ingin menggunakan transparan, Anda tidak punya pilihan selain PNG. Tapi, jika background Anda sudah buram, maka Anda bisa menggunakan JPG. Itulah satu-satunya perbedaan yang bisa saya lihat
sumber
'Gunakan JPEG untuk foto' seperti yang disebutkan dalam Panduan Antarmuka Manusia di bawah bagian Menghasilkan karya seni dalam format yang sesuai.
sumber