ICO (format berkas)

Format berkas ICO adalah format file gambar untuk ikon komputer di Microsoft Windows . File ICO berisi satu atau beberapa gambar kecil dengan berbagai ukuran dan kedalaman warna , 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-animasi kursor di 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.

## Sejarah
Ikon yang diperkenalkan di Windows 1.0 berukuran 32 × 32 piksel dan monokrom.  Dukungan untuk 16 warna diperkenalkan di Windows 3.0 .

Win32 memperkenalkan dukungan untuk menyimpan gambar ikon hingga 16,7 juta warna (TrueColor) dan hingga 256x256 piksel dalam dimensi.  Windows 95 juga memperkenalkan mesin Device Independent Bitmap (DIB) baru.  Namun, 256 warna adalah kedalaman warna ikon default di Windows 95. Dimungkinkan untuk mengaktifkan 65535 ikon warna (Highcolor) dengan memodifikasi nilai *BPP Ikon Shell* di registri  atau dengan membeli Microsoft Plus ! untuk Windows 95. Nilai *Ukuran Ikon* Kerangka memungkinkan penggunaan ikon yang lebih besar sebagai pengganti ikon 32 × 32 dan *Ukuran Ikon* Kerangka *Kecil*nilai 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 XP menambahkan 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 di Windows Explorer . Windows XP dapat dipaksa untuk menggunakan ikon sebesar 256 × 256 dengan memodifikasi nilai *ukuran ikon Shell* tetapi 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 Vista menambahkan tampilan ikon 256 × 256-piksel ke Windows Explorer, serta dukungan untuk format PNG 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. 

## Jenis MIME
Sementara tipe MIME yang terdaftar IANA untuk file ICO adalah `image/vnd.microsoft.icon`, MIME itu dikirimkan ke IANA pada tahun 2003 oleh pihak ketiga dan tidak dikenali oleh perangkat lunak Microsoft, yang menggunakan `image/x-icon` sebagai gantinya. Jenis `image/ico`, `image/icon`, `text/ico` dan `application/ico` juga telah terlihat digunakan. 

## Struktur sumber daya ikon
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 format Windows BMP , tidak termasuk struktur BITMAPFILEHEADER, atau dalam format PNG , disimpan secara keseluruhan). 

Gambar dengan kedalaman warna kurang dari 32 bit mengikuti format tertentu: gambar dikodekan sebagai gambar tunggal yang terdiri dari topeng warna ("topeng XOR") bersama dengan topeng opasitas ("topeng DAN").  [ *verifikasi gagal* ]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 dari True color dengan 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.

### Garis besar
Semua nilai dalam file ICO / CUR direpresentasikan dalam urutan byte little-endian .

**Header**

**Struktur direktori gambar**

Entri 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.

### Format PNG
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 ikon
**Perpustakaan ikon** adalah 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 Vista dan versi yang lebih baru tidak mendukung tampilan ikon dari file 16-bit ( New Executable ).

## Lihat juga

* Format Gambar Ikon Apple
* Format file BMP
* Ikon komputer
* Favicon
* Daftar perangkat lunak ikon

## Catatan


## Referensi

## Pranala luar

* Aktifkan Ikon Warna Tinggi di Windows 95 dan yang lebih baru
* Tingkatkan GUI Java dengan Ikon Windows
* Panduan pengembangan ikon untuk ikon Windows Vista
* Ikon (Artikel Teknis Microsoft 1995)
* Evolusi format file ICO ( Bagian 1, Bagian 2, Bagian 3, Bagian 4 )