ICO (format berkas)

Format berkas ICO adalah format filegambaruntukikonkomputerdiMicrosoft Windows. File ICO berisi satu atau beberapa gambar kecil dengan berbagai ukuran dan kedalamanwarna, sehingga dapat diskalakan dengan tepat. Di Windows, semua file yang dapat dijalankan yang menampilkan ikon ke pengguna, di desktop, di Start Menu, atau di Windows Explorer, harus membawa ikon dalam format ICO.
Format berkas CUR adalah format file gambar hampir identik untuk non-animasikursordi Microsoft Windows. Satu-satunya perbedaan antara kedua format file ini adalah byte yang digunakan untuk mengidentifikasinya dan penambahan hotspot di header format CUR; hotspot didefinisikan sebagai offset piksel (dalam koordinat x, y) dari sudut kiri atas gambar kursor di mana pengguna sebenarnya mengarahkan mouse.
Ikon yang diperkenalkan diWindows 1.0berukuran 32 × 32pikseldanmonokrom.  Dukungan untuk 16 warna diperkenalkan diWindows 3.0.
Win32memperkenalkan dukungan untuk menyimpan gambar ikon hingga 16,7 juta warna (TrueColor) dan hingga 256x256 piksel dalam dimensi.Windows 95juga memperkenalkan mesin Device IndependentBitmap(DIB) baru.  Namun, 256 warna adalah kedalaman warna ikon default di Windows 95. Dimungkinkan untuk mengaktifkan 65535 ikon warna (Highcolor) dengan memodifikasi nilaiBPP Ikon Shelldi registri  atau dengan membeliMicrosoft Plus! untuk Windows 95. NilaiUkuran IkonKerangka memungkinkan penggunaan ikon yang lebih besar sebagai pengganti ikon 32 × 32 danUkuran IkonKerangkaKecilnilai memungkinkan menggunakan ukuran khusus sebagai pengganti ikon 16 × 16.  Dengan demikian, satu file ikon dapat menyimpan gambar dengan ukuran berapa pun dari 1 × 1 piksel hingga 256 × 256 piksel (termasuk ukuran non-persegi) dengan 2 (jarang digunakan), 16, 256, 65535, atau 16,7 juta warna ; tetapi shell tidak dapat menampilkan ikon berukuran sangat besar. Area pemberitahuan bilah tugas Windows dibatasi hingga 16 ikon warna secara default hingga Windows Me saat diperbarui untuk mendukung ikon warna tinggi.
Windows XPmenambahkan dukungan untuk gambar ikon warna 32-bit (16,7 juta warna ditambah transparansi saluran alfa), sehingga memungkinkan area semitransparan seperti bayangan , anti-aliasing , dan efek seperti kaca untuk digambar dalam sebuah ikon. Windows XP, secara default, menggunakan ikon 48 × 48 piksel diWindows Explorer. Windows XP dapat dipaksa untuk menggunakan ikon sebesar 256 × 256 dengan memodifikasi nilaiukuran ikon Shelltetapi ini akan menyebabkan semua ikon 32 × 32 di seluruh shell akan ditingkatkan.  Microsoft hanya merekomendasikan ukuran ikon hingga 48 × 48 piksel untuk Windows XP.  Windows XP dapat memperkecil ukuran 256 × 256 dan ikon yang lebih besar jika tidak tersedia ukuran gambar yang lebih dekat.
Windows Vistamenambahkan tampilan ikon 256 × 256-piksel ke Windows Explorer, serta dukungan untuk formatPNG yang dikompresi. Meskipun kompresi tidak diperlukan, Microsoft menganjurkan agar semua 256 × 256 ikon dalam file ICO harus disimpan dalam format PNG untuk mengurangi ukuran file secara keseluruhan.  Windows Vista Explorer mendukung ikon skala halus ke ukuran non-standar yang ditampilkan dengan cepat bahkan jika gambar tidak ada untuk ukuran itu di file ikon. Shell Windows Vista menambahkan penggeser untuk "memperbesar" ukuran ikon masuk dan keluar. Dengan pengguna yang menggunakan resolusi lebih tinggi dan mode DPI tinggi, format ikon yang lebih besar (seperti 256 × 256) direkomendasikan.
Sementara tipe MIME yang terdaftarIANAuntuk file ICO adalahimage/vnd.microsoft.icon,MIME itu dikirimkan ke IANA pada tahun 2003 oleh pihak ketiga dan tidak dikenali oleh perangkat lunak Microsoft, yang menggunakanimage/x-iconsebagai gantinya.Jenisimage/ico,image/icon,text/icodanapplication/icojuga telah terlihat digunakan.
File ICO atau CUR terdiri dari struktur ICONDIR ("Direktori ikon"), yang berisi struktur ICONDIRENTRY untuk setiap gambar dalam file, diikuti oleh blok yang berdekatan dari semua data bitmap gambar (yang mungkin dalam formatWindows BMP, tidak termasuk struktur BITMAPFILEHEADER, atau dalam formatPNG, disimpan secara keseluruhan).
Gambar dengan kedalaman warna kurang dari32 bitmengikuti format tertentu: gambar dikodekan sebagai gambar tunggal yang terdiri dari topeng warna ("topeng XOR") bersama dengan topeng opasitas ("topeng DAN").Topeng XOR harus mendahului topeng AND di dalam data bitmap; jika gambar disimpan dalam urutan bottom-up (yang kemungkinan besar adalah), topeng XOR akan digambar di bawah topeng AND. Masker AND adalah 1 bit per piksel, terlepas dari kedalaman warna yang ditentukan oleh header BMP, dan menentukan piksel mana yang sepenuhnya transparan dan mana yang sepenuhnya buram. Topeng XOR sesuai dengan kedalaman bit yang ditentukan di header BMP dan menentukan warna numerik atau nilai palet untuk setiap piksel. Bersama-sama, topeng AND dan topeng XOR membuat gambar tidak transparan yang mewakili gambar dengan transparansi 1-bit; mereka juga memungkinkan pembalikan latar belakang. Tinggi gambar dalam struktur ICONDIRENTRY file ICO / CUR sama dengan dimensi gambar yang diinginkan (setelah topeng digabungkan), sedangkan tinggi di header BMP sama dengan dua gambar topeng yang digabungkan (sebelum digabungkan). Oleh karena itu, masing-masing masker harus memiliki dimensi yang sama, dan tinggi yang ditentukan dalam header BMP harus tepat dua kali tinggi yang ditentukan dalam struktur ICONDIRENTRY.
Gambar 32-bit (termasuk gambar BMP format BITMAPINFOHEADER 32-bit) secara khusus adalah gambar 24-bit dengan tambahan saluran 8-bit untuk pengomposisian alfa . Oleh karena itu, pada gambar 32-bit, mask AND tidak diperlukan, tetapi disarankan untuk dipertimbangkan. Windows XP dan yang lebih tinggi akan menggunakan gambar 32-bit dalam mode kurang dariTrue colordengan membuat topeng AND berdasarkan saluran alfa (jika tidak ada gambar yang sudah ada) jika tidak ada versi 24-bit dari gambar yang disediakan di file ICO / CUR. Namun, versi Windows sebelumnya menafsirkan semua piksel dengan opasitas 100% kecuali masker AND disertakan dengan gambar. Menyediakan topeng AND khusus juga akan memungkinkan untuk mengubah dan memberi petunjuk oleh pembuat ikon. Meskipun masker AND tidak disediakan, jika gambar dalam format Windows BMP, header BMP harus tetap menentukan tinggi dua kali lipat.
Semua nilai dalam file ICO / CUR direpresentasikan dalam urutan byte little-endian .
Header
Struktur direktori gambar
Data gambar yang direferensikan
Semua data gambar yang direferensikan oleh entri dalam direktori gambar dilanjutkan langsung setelah direktori gambar. Ini adalah praktik umum untuk menyimpannya dalam urutan yang sama seperti yang ditentukan dalam direktori gambar.
Ingatlah bahwa jika sebuah gambar disimpan dalam format BMP, maka gambar tersebut harus mengecualikan struktur BITMAPFILEHEADER pembuka, sedangkan jika disimpan dalam format PNG, gambar tersebut harus disimpan secara keseluruhan.
Perhatikan bahwa tinggi gambar BMP harus dua kali tinggi yang dinyatakan dalam direktori gambar. Paruh kedua bitmap harus berupa masker AND untuk piksel layar yang ada, dengan piksel keluaran yang diberikan oleh rumus Gambar XOR Output = (Existing AND Mask). Setel topeng menjadi nol di mana-mana untuk penimpaan yang bersih.
Kemampuan untuk membaca gambar PNG dari gambar format ICO dan CUR diperkenalkan di Windows Vista .  Gambar PNG dapat disimpan dalam gambar dengan cara yang sama seperti yang dilakukan untuk gambar format BMP Windows standar, dengan pengecualian bahwa gambar PNG harus disimpan secara keseluruhan, dengan header file-nya.
Perpustakaan ikonadalah cara untuk mengemas ikon Windows. Ini biasanya merupakan file biner 16-bit New Executable atau 32-bit Portable Executable yang memiliki file biner. Ekstensi ICL dengan sumber daya ikon menjadi ikon yang dikemas.Windows Vistadan versi yang lebih baru tidak mendukung tampilan ikon dari file 16-bit ( New Executable ).