Apa perbedaan antara Gambar "JPG" / "JPEG" / "PNG" / "BMP" / "GIF" / "TIFF"?

102

Saya telah melihat banyak jenis ekstensi gambar tetapi tidak pernah memahami perbedaan nyata di antara keduanya. Apakah ada tautan di luar sana yang dengan jelas menjelaskan perbedaan mereka?

Adakah standar yang perlu dipertimbangkan saat memilih jenis gambar tertentu untuk digunakan dalam aplikasi? Apa yang kami gunakan untuk aplikasi web?

MOZILLA
sumber
Seseorang dengan reputasi yang lebih baik daripada saya harus melalui jawaban ini dan mengkonsolidasikannya.
Dana Robinson
Inilah jawaban Anda: stackoverflow.com/questions/2336522/…
Chuck Le Butt
Pertanyaan itu sudah ditutup dan akhirnya bisa dihapus. The jawaban yang sama di bawah dan harus diterima jawaban IMO.
Toxalot

Jawaban:

91

Iya. Mereka adalah format file yang berbeda (dan ekstensi file mereka).

Entri Wikipedia untuk setiap format akan memberi Anda cukup banyak informasi:

  • JPEG (atau JPG, untuk ekstensi file; Kelompok Ahli Fotografi Bersama)
  • PNG (Grafik Jaringan Portabel)
  • BMP (Bitmap)
  • GIF (Format Interchange Grafik)
  • TIFF (atau TIF, untuk ekstensi file; Tagged Image File Format)

Format gambar dapat dipisahkan menjadi tiga kategori besar:

  • kompresi lossy,
  • kompresi lossless,
  • tidak terkompresi,

Format yang tidak terkompresi memakan data paling banyak, tetapi merupakan representasi tepat dari gambar. Format bitmap seperti BMP umumnya tidak terkompresi, meskipun ada juga file BMP terkompresi.

Format kompresi lossy umumnya cocok untuk foto. Ini tidak cocok untuk ilustrasi, gambar dan teks, sebagai artefak kompresi kompresi dari pengompresan gambar akan menonjol. Kompresi lossy, seperti yang tersirat dari namanya, tidak menyandikan semua informasi file, jadi ketika dipulihkan menjadi gambar, itu tidak akan menjadi representasi yang tepat dari aslinya. Namun, ia mampu mengompres gambar dengan sangat efektif dibandingkan dengan format lossless, karena ia membuang informasi tertentu. Contoh utama format kompresi lossy adalah JPEG.

Format kompresi lossless cocok untuk ilustrasi, gambar, teks, dan materi lain yang tidak akan terlihat bagus saat dikompresi dengan kompresi lossy. Seperti namanya, kompresi lossless akan menyandikan semua informasi dari aslinya, jadi saat gambar didekompresi, gambar tersebut akan menjadi representasi yang tepat dari aslinya. Karena tidak ada informasi yang hilang dalam kompresi lossless, kompresi lossy tidak dapat mencapai setinggi kompresi lossy, dalam banyak kasus. Contoh kompresi gambar lossless adalah PNG dan GIF. (GIF hanya mengizinkan gambar 8-bit.)

TIFF dan BMP adalah format "pembungkus", karena data di dalamnya dapat bergantung pada teknik kompresi yang digunakan. Ini dapat berisi gambar yang dikompresi dan tidak dikompresi.

Kapan menggunakan format kompresi gambar tertentu sangat tergantung pada apa yang dikompres.

Pertanyaan terkait: Mengompresi gambar besar dengan kejam untuk web

burung coobird
sumber
Saya tidak berpikir BMP adalah format 'pembungkus' seperti TIFF (atau PDF untuk amtter itu), juga tidak dapat dikompresi (maksud saya, Anda dapat membuat ZIP, tetapi tidak berisi data terkompresi ).
ChrisW
2
@ChrisW: BMP memungkinkan konten file dikompresi. Saya baru saja melihat halaman Wikipedia yang saya referensikan, dan mendukung RLE, PNG dan JPEG. (Saya tidak tahu itu mendukung konten PNG dan JPEG - mempelajari sesuatu yang baru!)
coobird
2
BMP umumnya menderita masalah yang sama dengan WAV, keduanya tidak pernah standar dan karena itu disalahgunakan untuk hampir semua hal yang dapat Anda temukan.
Jasper Bekkers
3
@PhilWhittington Anda mengacaukan objek bitmap dengan format file. Kelas Bitmap menyimpan dalam banyak format berbeda, termasuk BMP, TIFF dan PNG - tetapi menyimpan dari objek bitmap (yaitu data piksel mentah). Tidak ada yang namanya PNG di dalam file BMP.
Chuck Le Butt
1
@Monk msdn.microsoft.com/en-us/library/windows/desktop/… dan cari "biCompression". Struktur C ini disimpan byte-untuk-byte dalam file BMP, sehingga file BMP juga dapat mendukung jenis kompresi tersebut. Hanya karena tidak ada yang menggunakannya bukan berarti tidak valid.
pengguna253751
78

Anda harus mengetahui beberapa faktor utama ...

Pertama, ada dua jenis kompresi: Lossless dan Lossy .

Lossless berarti gambar dibuat lebih kecil, tetapi tidak merusak kualitas. Lossy berarti gambar dibuat (bahkan) lebih kecil, tetapi merusak kualitas. Jika Anda menyimpan gambar dalam format Lossy berulang kali, kualitas gambar akan semakin buruk dan semakin buruk.

Ada juga kedalaman warna yang berbeda (palet): Warna yang diindeks dan Warna langsung .

Dengan Indexed artinya gambar hanya dapat menyimpan sejumlah warna (biasanya 256) yang dipilih oleh pembuat gambar, dengan Direct artinya Anda dapat menyimpan ribuan warna yang belum dipilih oleh pembuatnya.


BMP - Lossless / Terindeks dan Langsung

Ini adalah format lama. Ini Lossless (tidak ada data gambar yang hilang saat disimpan) tetapi ada juga sedikit atau tidak ada kompresi sama sekali, yang berarti menyimpan karena BMP menghasilkan ukuran file yang SANGAT besar. Ia dapat memiliki palet Indexed dan Direct, tapi itu sedikit penghiburan. Ukuran file terlalu besar sehingga tidak ada yang benar-benar menggunakan format ini.

Baik untuk: Tidak ada. Tidak ada keunggulan BMP, atau tidak dilakukan dengan lebih baik oleh format lain.

BMP vs GIF


GIF - Hanya Lossless / Terindeks

GIF menggunakan kompresi lossless, artinya Anda dapat menyimpan gambar berulang kali dan tidak pernah kehilangan data apa pun. Ukuran file jauh lebih kecil daripada BMP, karena kompresi yang baik sebenarnya digunakan, tetapi hanya dapat menyimpan palet Indexed. Ini berarti maksimal hanya ada 256 warna berbeda dalam file. Kedengarannya seperti jumlah yang kecil, dan memang begitu.

Gambar GIF juga dapat dianimasikan dan memiliki transparansi.

Cocok untuk: Logo, gambar garis, dan gambar sederhana lainnya yang harus berukuran kecil. Hanya benar-benar digunakan untuk situs web.

GIF vs JPEG


JPEG - Lossy / Langsung

Gambar JPEG dirancang untuk membuat gambar fotografi detail sekecil mungkin dengan menghilangkan informasi yang tidak akan terlihat oleh mata manusia. Akibatnya, ini adalah format Lossy, dan menyimpan file yang sama berulang kali akan mengakibatkan lebih banyak data hilang seiring waktu. Ini memiliki palet ribuan warna dan sangat bagus untuk foto, tetapi kompresi lossy berarti buruk untuk logo dan gambar garis: Tidak hanya akan terlihat kabur, tetapi gambar seperti itu juga akan memiliki ukuran file yang lebih besar dibandingkan dengan GIF!

Baik untuk: Foto. Juga, gradien.

JPEG vs GIF


PNG-8 - Lossless / Indexed

PNG adalah format yang lebih baru, dan PNG-8 (versi PNG yang diindeks) benar-benar pengganti yang baik untuk GIF. Sayangnya, bagaimanapun, ini memiliki beberapa kelemahan: Pertama tidak dapat mendukung animasi seperti GIF (memang bisa, tetapi hanya Firefox yang tampaknya mendukungnya, tidak seperti animasi GIF yang didukung oleh setiap browser). Kedua, ada beberapa masalah dukungan dengan browser lama seperti IE6. Ketiga, perangkat lunak penting seperti Photoshop memiliki implementasi format yang sangat buruk. (Sialan, Adobe!) PNG-8 hanya bisa menyimpan 256 warna, seperti GIF.

Bagus untuk: Hal utama yang dilakukan PNG-8 lebih baik daripada GIF adalah memiliki dukungan untuk Transparansi Alfa.

PNG-8 vs GIF

Catatan Penting: Photoshop tidak mendukung Transparansi Alfa untuk file PNG-8. (Sialan, Photoshop!) Ada cara untuk mengonversi file Photoshop PNG-24 ke PNG-8 sambil tetap mempertahankan transparansi. Salah satu metode adalah PNGQuant , metode lainnya adalah menyimpan file Anda dengan Fireworks .


PNG-24 - Lossless / Langsung

PNG-24 adalah format hebat yang menggabungkan pengkodean Lossless dengan warna Langsung (ribuan warna, seperti JPEG). Ini sangat mirip dengan BMP dalam hal itu, kecuali PNG sebenarnya mengompres gambar, sehingga menghasilkan file yang jauh lebih kecil. Sayangnya file PNG-24 masih jauh lebih besar dari JPEG, GIF, dan PNG-8, jadi Anda masih perlu mempertimbangkan jika Anda benar-benar ingin menggunakannya.

Meskipun PNG-24 memungkinkan ribuan warna saat mengalami kompresi, mereka tidak dimaksudkan untuk menggantikan gambar JPEG. Sebuah foto yang disimpan sebagai PNG-24 kemungkinan akan berukuran setidaknya 5 kali lebih besar dari gambar JPEG yang setara, yang sangat sedikit peningkatan kualitas terlihat. (Tentu saja, ini mungkin hasil yang diinginkan jika Anda tidak khawatir tentang ukuran file, dan ingin mendapatkan gambar dengan kualitas terbaik yang Anda bisa.)

Sama seperti PNG-8, PNG-24 juga mendukung transparansi alfa.

Saya harap itu membantu!

Chuck Le Butt
sumber
8
+1 Satu-satunya hal yang hilang untuk menjadikan ini jawaban lengkap atas pertanyaan OP adalah penyebutan JPG (ekstensi file umum untuk JPEG) dan bagian untuk TIFF.
Toxalot
2
Saya juga akan menyebutkan bahwa kompresi PNG membuatnya bagus dalam situasi yang mungkin tidak Anda duga. Misalnya, gradien sangat mudah dikompres dengan PNG.
Henry Merriam
27

Umumnya ini adalah:

Kompresi lossless Algoritme kompresi lossless mengurangi ukuran file tanpa kehilangan kualitas gambar, meskipun tidak dikompresi menjadi file sekecil file kompresi lossy. Ketika kualitas gambar dinilai di atas ukuran file, algoritma lossless biasanya dipilih.

Kompresi lossy Algoritma kompresi lossy memanfaatkan keterbatasan yang melekat pada mata manusia dan membuang informasi yang tidak terlihat. Sebagian besar algoritma kompresi lossy memungkinkan tingkat kualitas variabel (kompresi) dan saat level ini ditingkatkan, ukuran file berkurang. Pada tingkat kompresi tertinggi, penurunan kualitas gambar menjadi terlihat sebagai "artefak kompresi". Gambar di bawah ini menunjukkan artefak nyata dari algoritme kompresi lossy; pilih gambar thumbnail untuk melihat versi ukuran penuh.

Setiap format berbeda seperti yang dijelaskan di bawah ini:

JPEG File JPEG (Joint Photographic Experts Group) adalah (dalam banyak kasus) dalam format lossy; ekstensi nama file DOS adalah JPG (OS lain mungkin menggunakan JPEG). Hampir setiap kamera digital dapat menyimpan gambar dalam format JPEG, yang mendukung 8 bit per warna (merah, hijau, biru) dengan total 24-bit, menghasilkan file yang relatif kecil. Jika tidak terlalu bagus, kompresi tidak terlalu mengurangi kualitas gambar, tetapi file JPEG mengalami degradasi generasi saat berulang kali diedit dan disimpan. Gambar fotografi mungkin lebih baik disimpan dalam format non-JPEG lossless jika akan diedit ulang, atau jika "artefak" kecil (noda yang disebabkan oleh algoritma kompresi JPEG) tidak dapat diterima. Format JPEG juga digunakan sebagai algoritma kompresi gambar di banyak file Adobe PDF.

TIFF TIFF (Tagged Image File Format) adalah format fleksibel yang biasanya menyimpan 8 bit atau 16 bit per warna (merah, hijau, biru) untuk total 24-bit dan 48-bit, masing-masing, menggunakan nama file TIFF atau TIF . Fleksibilitas TIFF adalah berkah sekaligus kutukan, karena tidak ada satu pembaca pun yang membaca setiap jenis file TIFF. TIFF bersifat lossy dan lossless; beberapa menawarkan kompresi lossless yang relatif baik untuk gambar dua level (hitam & putih). Beberapa kamera digital dapat menyimpan dalam format TIFF, menggunakan algoritma kompresi LZW untuk penyimpanan lossless. Format gambar TIFF tidak didukung secara luas oleh browser web. TIFF tetap diterima secara luas sebagai standar file foto dalam bisnis percetakan. TIFF dapat menangani ruang warna khusus perangkat, seperti CMYK yang ditentukan oleh satu set tinta mesin cetak tertentu.

PNG Format file PNG (Portable Network Graphics) dibuat sebagai penerus sumber terbuka gratis untuk GIF. Format file PNG mendukung warna asli (16 juta warna) sedangkan GIF hanya mendukung 256 warna. File PNG unggul jika gambar memiliki area yang besar dan berwarna seragam. Format PNG lossless paling cocok untuk mengedit gambar, dan format lossy, seperti JPG, paling baik untuk distribusi akhir gambar fotografi, karena file JPG lebih kecil dari file PNG. Banyak browser lama saat ini tidak mendukung format file PNG, namun dengan Internet Explorer 7, semua browser web kontemporer mendukung format PNG sepenuhnya. Adam7-interlace memungkinkan pratinjau awal, bahkan ketika hanya sebagian kecil dari data gambar yang telah dikirim.

GIF GIF (Graphics Interchange Format) terbatas pada palet 8-bit, atau 256 warna. Ini membuat format GIF cocok untuk menyimpan grafik dengan warna yang relatif sedikit seperti diagram sederhana, bentuk, logo, dan gambar gaya kartun. Format GIF mendukung animasi dan masih banyak digunakan untuk memberikan efek animasi gambar. Ini juga menggunakan kompresi lossless yang lebih efektif saat area yang luas memiliki satu warna, dan tidak efektif untuk gambar detail atau gambar buram.

BMP Format file BMP (Windows bitmap) menangani file grafik dalam OS Microsoft Windows. Biasanya, file BMP tidak dikompresi, oleh karena itu ukurannya besar; keuntungannya adalah kesederhanaan, penerimaan luas, dan penggunaannya dalam program Windows.

Gunakan untuk Halaman Web / Aplikasi Web

Berikut ini adalah ringkasan singkat untuk format gambar ini saat menggunakannya dengan halaman web / aplikasi.

  • PNG sangat bagus untuk IE6 dan yang lebih baru (membutuhkan tambalan CSS kecil agar transparansi berfungsi dengan baik). Bagus untuk ilustrasi dan foto.
  • JPG sangat bagus untuk foto online
  • GIF bagus untuk ilustrasi saat Anda tidak ingin pindah ke PNG
  • BMP tidak boleh digunakan secara online di dalam halaman web - membuang-buang bandwidth


  • Sumber: Format File Gambar

    Luke
    sumber
    5

    Karena orang lain telah menutupi perbedaannya, saya akan menggunakan kegunaannya.

    TIFF biasanya digunakan oleh pemindai. Itu membuat file besar dan tidak benar-benar digunakan dalam aplikasi.

    BMP tidak terkompresi dan juga membuat file besar. Itu juga tidak benar-benar digunakan dalam aplikasi.

    GIF dulunya tersebar di seluruh web tetapi tidak disukai karena hanya mendukung sejumlah warna dan dipatenkan.

    JPG / JPEG terutama digunakan untuk kualitas foto, meskipun bukan untuk teks. Kompresi lossy yang digunakan cenderung merusak garis tajam.

    PNG tidak sekecil JPEG tetapi tidak memiliki kerugian sehingga bagus untuk gambar dengan garis tajam. Ini umum digunakan di web sekarang.

    Secara pribadi, saya biasanya menggunakan PNG di mana pun saya bisa. Ini adalah kompromi yang bagus antara JPG dan GIF.

    Dana Robinson
    sumber
    BMP bisa dikompresi RLE ... Itu tidak banyak, tapi efektif untuk gambar sederhana. Ini juga merupakan format kepemilikan (Microsoft).
    PhiLho
    4
    Paten GIF kedaluwarsa pada tahun 2004.
    Dour High Arch
    1
    TIFF sangat populer di kalangan orang yang membutuhkan kualitas (artis) tanpa kerugian. Juga bagus untuk mengompresi gambar monokrom, oleh karena itu ini adalah salah satu format paling populer untuk perangkat lunak pemindaian faks / dokumen digital.
    Vilx-
    1
    Dalam BMP spesifikasi terbaru juga memungkinkan konten menjadi PNG atau JPEG dikompresi.
    Vilx-
    2

    JPG> Kelompok Ahli Fotografi Bersama

    1 gambar JPG mendukung 16 juta warna dan paling cocok untuk foto dan grafik yang kompleks

    2 JPG tidak mendukung transparansi.

    PNG> Grafik Jaringan Portabel

    1 Ini digunakan sebagai alternatif dari format file GIF ketika teknologi GIF memiliki hak cipta dan membutuhkan izin untuk menggunakannya.

    2 PNG memungkinkan kompresi 5 hingga 25 persen lebih besar daripada GIF, dan dengan rentang warna yang lebih luas. PNG menggunakan interlace dua dimensi, yang membuatnya memuat dua kali lebih cepat dari gambar GIF. ”

    3 Gambar yang memiliki banyak warna atau membutuhkan transparansi variabel lanjutan, PNG adalah jenis file yang lebih disukai.

    GIF> Format Interchange Grafik

    1 Mengurangi jumlah warna dalam gambar menjadi 256.

    2 GIF juga mendukung transparansi.

    3 GIF memiliki kemampuan unik untuk menampilkan urutan gambar, mirip dengan video, yang disebut GIF animasi.

    4 Jika gambar memiliki sedikit warna dan tidak memerlukan efek transparansi alfa tingkat lanjut, GIF adalah pilihan yang tepat.

    SVG> Grafik Vektor yang Dapat Diskalakan

    1 SVG adalah standar web berdasarkan XML yang mendeskripsikan gambar statis dan animasi dalam dua dimensi.

    2 SVG memungkinkan Anda membuat grafik dan animasi berkualitas sangat tinggi yang tidak kehilangan detail saat ukurannya bertambah / berkurang.

    Dev
    sumber
    1

    Nama-nama ini mengacu pada berbagai cara untuk menyandikan data gambar piksel (JPG dan JPEG adalah hal yang sama, dan TIFF mungkin hanya menyertakan jpeg dengan beberapa metadata tambahan).

    Format gambar ini dapat menggunakan algoritma kompresi yang berbeda, representasi warna yang berbeda, kemampuan yang berbeda dalam membawa data tambahan selain gambar itu sendiri, dan seterusnya.

    Untuk aplikasi web, menurut saya jpeg atau gif sudah cukup bagus. Jpeg lebih sering digunakan karena rasio kompresinya yang lebih tinggi, dan gif biasanya digunakan untuk animasi ringan di mana flash (atau yang serupa) bersifat over kill, atau tempat di mana latar belakang transparan diinginkan. PNG juga dapat digunakan, tetapi saya tidak memiliki banyak pengalaman dengan itu. BMP dan TIFF mungkin bukan kandidat yang baik untuk aplikasi web.

    PolyThinker
    sumber
    1

    Apa yang dikatakan coobird dan Gerald.

    Selain itu, JPEG adalah nama format file. JPG biasanya digunakan ekstensi file yang disingkat untuk format ini, karena Anda perlu memiliki ekstensi file 3 huruf untuk sistem Windows sebelumnya. Begitu juga dengan TIFF dan TIF.

    Browser web saat ini hanya menampilkan file JPEG, PNG dan GIF - jadi itulah yang dapat ditampilkan di halaman web.

    Gnudiff
    sumber
    Dukungan browser tidak terbatas pada JPEG, PNG dan GIF: format seperti BMP, ICO, SVG, dan XBM - antara lain - didukung secara native di banyak browser.
    scronide
    Cukup adil, saya harus mengatakan bahwa JPEG, GIF dan PNG adalah format yang didukung oleh sebagian besar browser.
    Gnudiff
    1

    PNG mendukung transparansi alphachannel.

    TIFF dapat memiliki opsi tambahan yaitu referensi Geo untuk aplikasi GIS .

    Saya merekomendasikan hanya menggunakan JPEG untuk foto, tidak pernah untuk gambar seperti clip art, logo, teks, diagram, seni garis.

    Mendukung PNG.

    Roger Nelson
    sumber
    1

    Yang disebutkan adalah semua grafik raster, tetapi di samping itu jangan lupakan grafik vektor yang semakin penting. Ada jenis yang dikompresi dan tidak dikompresi (dengan cara yang kurang lebih), tetapi semuanya tanpa kerugian. Yang terpenting adalah:

    Xn0vv3r
    sumber
    0

    Ekstensi file memberi tahu Anda bagaimana gambar disimpan. Beberapa dari format tersebut hanya menyimpan bit sebagaimana adanya, beberapa mengompres gambar dengan cara yang berbeda, termasuk metode lossless dan lossy. Web dapat memberi tahu Anda, meskipun saya tahu beberapa responden pasien akan menjelaskannya di sini.

    Web lebih menyukai gif, jpg, dan png. JPEG sama (atau sangat dekat) dengan jpg.

    gbarry
    sumber
    0

    Untuk perbedaan dan penggunaan yang ditentukan antara berbagai format gambar sudah dibahas baik di atas.

    Namun demikian, saya ingin menambahkan sesuatu untuk keseluruhan proses pengambilan gambar dan menyimpannya.

    Proses penangkapan

    Atau Anda bisa mengatakan proses pembuatannya (seperti kita bisa menggambar atau membuat gambar dengan komputer sekarang). Jika Anda mengambil foto dengan kamera, Anda sudah menggunakan banyak sensor (CCD atau CMOS) dan algoritma (Filter Pola Bayer, Sub-sampling dan kuantisasi, dll.) Juga ada hal-hal seperti Pixel Formatdan Color Space. Setelah Anda mendapatkan informasi piksel dasar, pasti ada cara untuk menyimpannya.

    Struktur file gambar dasar

    Untuk menyimpan info piksel sebuah file, kita membutuhkan konvensi dan algoritma terkait. Untuk menghemat ruang, ada kompresi, tetapi pada dasarnya masalahnya adalah mengkodekan piksel menjadi byte dan mendekode byte ke piksel untuk ditampilkan.

    File gambar tipikal dapat terdiri dari beberapa bagian, pada dasarnya dua: meta data or file headerdan pixel data section. The meta databercerita tentang gambar itu sendiri, mungkin heightdan width, file format, dll Dan pixel data sectionadalah nyata sectionyang berkaitan dengan real picture.

    Menyimpan dan Menampilkan

    Seperti yang kami katakan sebelumnya, file disimpan dalam hard disk dan dalam byte / bit. Jadi file gambar tidak memiliki prioritas tetapi juga aliran byte sebenarnya. Untuk tampilan, mungkin kita harus mengetahui cara kerja monitor. Monitor PC tipikal menggunakan model RGB untuk tampilan.

    Semoga ini membantu:-)

    Lihang Li
    sumber