27 Memahami format file gambar yang paling umum digunakan
Siapa pun yang membuat angka untuk visualisasi data pada akhirnya harus mengetahui beberapa hal tentang bagaimana angka disimpan di komputer. Ada banyak format file gambar yang berbeda, dan masing-masing memiliki kelebihan dan kekurangan masing-masing. Memilih format file yang tepat dan alur kerja yang tepat dapat meringankan banyak sakit kepala persiapan angka.
Preferensi saya sendiri adalah menggunakan pdf untuk file siap publikasi berkualitas tinggi dan umumnya bila memungkinkan, png untuk dokumen online dan skenario lain di mana grafik bitmap diperlukan, dan jpeg sebagai pilihan terakhir jika file png terlalu besar. Berikut ini, saya menjelaskan perbedaan utama antara format file ini dan masing-masing kelebihan dan kekurangannya.
27.1 Bitmap dan grafik vektor
Perbedaan paling penting antara berbagai format grafik adalah apakah itu bitmap atau vektor (Tabel 27.1 ). Bitmap atau grafik raster menyimpan gambar sebagai kisi-kisi titik individual (disebut piksel), masing-masing dengan warna yang ditentukan. Sebaliknya, grafik vektor menyimpan susunan geometrik elemen grafis individual dalam gambar.Dengan demikian, gambar vektor berisi informasi seperti "ada garis hitam dari sudut kiri atas ke sudut kanan bawah, dan garis merah dari sudut kiri bawah ke sudut kanan atas," dan gambar sebenarnya dibuat kembali dengan cepat seperti yang ditampilkan di layar atau dicetak.
| Akronim | Nama | Tipe | Aplikasi |
|---|---|---|---|
| Format Dokumen Portabel | vektor | tujuan umum | |
| eps | Encapsulated PostScript | vektor | tujuan umum, ketinggalan jaman; gunakan pdf |
| svg | Grafik Vektor yang Dapat Dikukur | vektor | penggunaan online |
| png | Grafik Jaringan Portable | bitmap | dioptimalkan untuk gambar garis |
| jpeg | Kelompok Ahli Fotografi Bersama | bitmap | dioptimalkan untuk gambar fotografi |
| bertengkar | Format File Gambar Tagged | bitmap | produksi cetak, reproduksi warna yang akurat |
| mentah | File gambar mentah | bitmap | fotografi digital, perlu pasca-pemrosesan |
| gif | Format Pertukaran Grafik | bitmap | ketinggalan jaman karena angka statis, ok untuk animasi |
Grafik vektor juga disebut "resolusi-independen," karena mereka dapat diperbesar ke ukuran sewenang-wenang tanpa kehilangan detail atau ketajaman. Lihat Gambar 27.1 untuk demonstrasi.

Gambar 27.1: Ilustrasi perbedaan utama antara grafik vektor dan bitmap.(a) Gambar asli. Kotak hitam menunjukkan area yang kita perbesar di bagian (b) dan (c). (B) Meningkatkan perbesaran area yang disorot dari bagian (a) ketika gambar telah disimpan sebagai grafik bitmap. Kita bisa melihat bagaimana gambar menjadi semakin pixel ketika kita memperbesar lebih jauh. (c) Meningkatkan perbesaran representasi vektor dari gambar.Gambar mempertahankan ketajaman sempurna pada tingkat pembesaran sewenang-wenang.
Grafik vektor memiliki dua kelemahan yang dapat dan sering menyebabkan masalah dalam aplikasi dunia nyata. Pertama, karena grafik vektor digambar ulang dengan cepat oleh program grafik yang dengannya mereka ditampilkan, dapat terjadi bahwa ada perbedaan dalam bagaimana grafik yang sama terlihat dalam dua program yang berbeda, atau pada dua komputer yang berbeda. Masalah ini paling sering terjadi pada teks, misalnya ketika font yang diperlukan tidak tersedia dan perangkat lunak render mengganti font yang berbeda.Penggantian font biasanya akan memungkinkan pengunjung untuk membaca teks sebagaimana dimaksud, tetapi gambar yang dihasilkan jarang terlihat bagus. Ada beberapa cara untuk menghindari masalah ini, seperti menguraikan atau menyematkan semua font dalam file pdf, tetapi mereka mungkin memerlukan perangkat lunak khusus dan / atau pengetahuan teknis khusus untuk mencapainya. Sebaliknya, gambar bitmap akan selalu terlihat sama.
Kedua, untuk gambar yang sangat besar dan / atau rumit, grafik vektor dapat tumbuh hingga ukuran file yang sangat besar dan lambat untuk di-render. Sebagai contoh, sebaran sebaran jutaan titik data akan berisi koordinat x dan y dari setiap titik individu, dan setiap titik perlu digambar ketika gambar diberikan, bahkan jika titik tumpang tindih dan / atau disembunyikan oleh elemen grafis lainnya. Sebagai konsekuensinya, ukuran file mungkin banyak megabyte, dan mungkin butuh perangkat lunak rendering beberapa saat untuk menampilkan gambar. Ketika saya seorang postdoc pada awal 2000-an, saya pernah membuat file pdf yang pada saat itu hampir satu jam untuk ditampilkan di Acrobat reader.Sementara komputer modern jauh lebih cepat dan waktu rendering beberapa menit sama sekali tidak terdengar hari ini, bahkan waktu rendering beberapa detik dapat mengganggu jika Anda ingin menanamkan gambar Anda ke dalam dokumen yang lebih besar dan pembaca pdf Anda terhenti. setiap kali Anda menampilkan halaman dengan satu tokoh yang menyinggung itu. Tentu saja, di sisi lain, angka-angka sederhana dengan hanya sejumlah kecil elemen (beberapa titik data dan beberapa teks, katakanlah) akan sering jauh lebih kecil daripada grafik vektor daripada sebagai bitmap, dan perangkat lunak pengamat bahkan dapat membuat angka-angka tersebut lebih cepat daripada gambar bitmap yang sesuai.
27.2 Kompresi grafis bitmap lossless dan lossy
Sebagian besar format file bitmap menggunakan beberapa bentuk kompresi data untuk menjaga ukuran file dapat dikelola. Ada dua jenis dasar kompresi: lossless dan lossy.Kompresi lossless menjamin bahwa gambar yang dikompresi adalah pixel-for-pixel yang identik dengan gambar asli, sedangkan kompresi lossy menerima beberapa degradasi gambar dengan imbalan untuk ukuran file yang lebih kecil.
Untuk memahami ketika menggunakan kompresi lossless atau lossy tepat, akan sangat membantu untuk memiliki pemahaman dasar tentang bagaimana algoritma kompresi yang berbeda ini bekerja. Pertama mari kita pertimbangkan kompresi lossless. Bayangkan sebuah gambar dengan latar belakang hitam, di mana area besar dari gambar tersebut adalah hitam pekat dan karenanya banyak piksel hitam muncul bersebelahan. Setiap piksel hitam dapat diwakili oleh tiga nol berturut-turut: 0 0 0, mewakili intensitas nol pada saluran warna merah, hijau, dan biru pada gambar. Area latar belakang hitam pada gambar sesuai dengan ribuan nol pada file gambar. Sekarang asumsikan suatu tempat dalam gambar adalah 1000 piksel hitam berturut-turut, sesuai dengan 3000 nol. Alih-alih menuliskan semua nol ini, kita dapat menyimpan hanya jumlah total nol yang kita butuhkan, misalnya dengan menulis 3000 0. Dengan cara ini, kami telah menyampaikan informasi yang sama persis hanya dengan dua angka, hitungan (hitungan, 3000) dan nilai (di sini, 0).Selama bertahun-tahun, banyak trik pintar sepanjang garis ini telah dikembangkan, dan format gambar lossless modern (seperti png) dapat menyimpan data bitmap dengan efisiensi yang mengesankan. Namun, semua algoritma kompresi lossless berkinerja terbaik ketika gambar memiliki area warna seragam yang besar, dan karenanya Tabel 27.1mencantumkan png sebagaimana dioptimalkan untuk gambar garis.
Gambar fotografi jarang memiliki banyak piksel dengan warna dan kecerahan yang identik tepat di sebelah satu sama lain.Sebaliknya mereka memiliki gradien dan pola agak teratur lainnya pada banyak skala yang berbeda. Oleh karena itu, kompresi lossless dari gambar-gambar ini sering tidak berfungsi dengan baik, dan kompresi lossy telah dikembangkan sebagai alternatif. Gagasan utama kompresi lossy adalah bahwa beberapa detail dalam gambar terlalu halus untuk mata manusia, dan itu dapat dibuang tanpa degradasi kualitas gambar yang jelas. Misalnya, pertimbangkan gradien 1000 piksel, masing-masing dengan nilai warna yang sedikit berbeda. Peluangnya adalah gradien akan terlihat hampir sama jika digambar dengan hanya 200 warna berbeda dan mewarnai setiap lima piksel yang berdekatan dengan warna yang sama persis.
Format gambar lossy yang paling banyak digunakan adalah jpeg (Tabel 27.1 ), dan memang banyak kamera digital menghasilkan gambar sebagai jpeg secara default. Kompresi Jpeg bekerja sangat baik untuk gambar foto, dan pengurangan besar dalam ukuran file sering dapat diperoleh dengan sedikit penurunan kualitas gambar. Namun, kompresi jpeg gagal ketika gambar berisi tepi yang tajam, seperti dibuat oleh gambar garis atau oleh teks. Dalam kasus tersebut, kompresi jpeg dapat menghasilkan artefak yang sangat nyata (Gambar 27.2 ).

Gambar 27.2: Ilustrasi artefak jpeg. (a) Gambar yang sama direproduksi beberapa kali menggunakan kompresi jpeg yang semakin parah. Ukuran file yang dihasilkan ditampilkan dalam teks merah di atas setiap gambar.Pengurangan ukuran file dengan faktor 10, dari 432KB pada gambar asli menjadi 43KB pada gambar terkompresi, hanya menghasilkan sedikit penurunan kualitas gambar. Namun, pengurangan lebih lanjut dalam ukuran file dengan faktor 2, menjadi hanya 25KB, mengarah ke banyak artefak yang terlihat. (B) Memperbesar ke gambar yang paling dikompresi mengungkapkan berbagai artefak kompresi. Kredit foto: Claus O. Wilke
Bahkan jika artefak jpeg cukup halus sehingga tidak langsung terlihat dengan mata telanjang, mereka dapat menyebabkan masalah, misalnya dalam produksi cetak. Oleh karena itu, adalah ide yang baik untuk menghindari format jpeg jika memungkinkan. Khususnya, Anda harus menghindarinya untuk gambar yang mengandung gambar garis atau teks, seperti halnya visualisasi data atau tangkapan layar. Format yang sesuai untuk gambar tersebut adalah png atau tiff. Saya menggunakan format jpeg khusus untuk gambar fotografi. Dan jika gambar mengandung elemen fotografi dan gambar garis atau teks, Anda harus tetap menggunakan png atau tiff. Skenario kasus terburuk dengan format file tersebut adalah file gambar Anda tumbuh besar, sedangkan skenario terburuk dengan jpeg adalah produk akhir Anda terlihat jelek.
27.3 Mengubah antara format gambar
Secara umum dimungkinkan untuk mengubah format gambar apa pun menjadi format gambar lainnya. Misalnya, pada Mac, Anda dapat membuka gambar dengan Pratinjau dan kemudian mengekspor ke sejumlah format berbeda. Namun dalam proses ini, informasi penting dapat hilang, dan informasi tidak pernah diperoleh kembali. Sebagai contoh, setelah menyimpan grafik vektor ke dalam format bitmap, misalnya file pdf sebagai jpeg, independensi resolusi yang merupakan fitur utama dari grafik vektor telah hilang.Sebaliknya, menyimpan gambar jpeg ke dalam file pdf tidak secara ajaib mengubah gambar menjadi grafik vektor.Gambar akan tetap menjadi gambar bitmap, hanya disimpan di dalam file pdf. Demikian pula, mengubah file jpeg menjadi file png tidak menghapus artefak yang mungkin telah diperkenalkan oleh algoritma kompresi jpeg.
Oleh karena itu adalah aturan praktis yang baik untuk selalu menyimpan gambar asli dalam format yang mempertahankan resolusi, akurasi, dan fleksibilitas maksimum. Jadi, untuk visualisasi data, buat gambar Anda sebagai pdf dan kemudian konversikan menjadi png atau jpg bila perlu, atau simpan sebagai png resolusi tinggi. Demikian pula, untuk gambar yang hanya tersedia sebagai bitmap, seperti foto digital, simpan dalam format yang tidak menggunakan kompresi lossy, atau jika itu tidak dapat dilakukan, kompres sesedikit mungkin. Juga, simpan gambar dalam resolusi setinggi mungkin, dan turunkan skala saat dibutuhkan.
