Jabarkan Struktur sumber daya ikon dari ICO (format berkas)

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.