Introduction
L'extension «.ICO» est une extension d'un fichier d'icône pour l'environnement graphique ou système d'exploitation Windows et/ou OS/2. Il est principalement utiliser pour l'affichage du bureau ou pour son application «Gestionnaire de programmes».
Ressource d'icônes du format de fichier Windows
Le fichier est constitué d'un répertoire identifiant le type d'images d'icônes que renferme le fichier. Ensuite, il est suivie d'une ou plusieurs images d'icônes. L'extension par défaut pour une icône est ICO.
Répertoire d'icônes: Chaque ressource d'icône débute par le répertoire d'icônes. Le répertoire d'icônes, surnommé structure ICONDIR, permet d'indiquer le nombre d'icônes que contient la ressource d'icône et la dimension/couleur de chaque image icône. La structure «IconDir» est construite de la façon suivante :
Déplacement | Taille | Description | |||
---|---|---|---|---|---|
0000h | 2 octets | Ce champ contient une valeur réservé. Contient toujours la valeur 0. | |||
0002h | 2 octets | Ce champ permet d'indiquer le type de membre. La valeur est toujours 1. | |||
0004h | 2 octets | Ce champ permet d'indiquer le nombre d'icônes que contient le répertoire. | |||
0006h | variable | Ce champ contient un tableau de structure «IconDirEntry». |
Voici la structure «IconDirEntry»:
Déplacement | Taille | Nom | Description | |||
---|---|---|---|---|---|---|
0000h | 1 octet | bWidth | Ce champ permet d'indiquer la largeur de l'icône. Les valeurs autorisés sont: 16, 32 ou 64. | |||
0001h | 1 octet | bHeight | Ce champ permet d'indiquer la hauteur de l'icône. Les valeurs autorisés sont: 16, 32 ou 64. | |||
0002h | 1 octet | bColorCount | Ce champ permet d'indiquer le nombre de couleurs que prend en charge l'icône: 2, 4, 8 ou 16. Si la valeur est 0, il s'agit d'une icône de 256 couleurs ou plus. | |||
0003h | 1 octet | bReserved | Ce champ est réservé, et il devrait toujours contenir la valeur 0. | |||
0004h | 2 octets | wPlanes | Ce champ permet d'indiquer le nombre de plages de couleurs que contient l'icône. | |||
0006h | 2 octets | wBitCount | Ce champ permet d'indiquer le nombre de bits par pixel que contient l'icône. | |||
0008h | 4 octets | dwBytesInRes | Ce champ permet d'indiquer la taille de la ressource en octets. | |||
000Ch | 4 octets | dwImageOffset | Ce champ permet d'indiquer la position de déplacement (Offset), en octets, du début du fichiers jusqu'à l'icône. |
Image icône: Chaque ressource d'icône contient une icône de chaque image identifiée dans le répertoire. Une image icône est constitué d'une entête, une table de couleurs avec un masque XOR, et un masque AND. L'image d'icône a le format suivant :
Déplacement | Taille | Nom | Description | |||
---|---|---|---|---|---|---|
0000h | icHeader | Ce champ contient la structure d'information Bitmap du nom de «BitMapInfoHeader» selon le format suivant: | ||||
Déplacement | Taille | Nom | Description | |||
0000h | 4 octets | biSize | Ce champ permet d'indiquer la taille de la structure d'information. | |||
0004h | 4 octets | biWidth | Ce champ permet d'indiquer la largeur du Bitmap. | |||
0008h | 4 octets | biHeight | Ce champ permet d'indiquer la hauteur du Bitmap. | |||
000Ch | 2 octets | biPlanes | Ce champ permet d'indiquer le nombre de plage. | |||
000Eh | 2 octets | biBitCount | Ce champ permet d'indiquer le nombre de bits par pixel. | |||
0010h | 4 octets | biCompression | Ce champ permet d'indiquer le type de compression. | |||
0014h | 4 octets | biSizeImage | Ce champ permet d'indiquer la taille de l'image. | |||
0018h | 4 octets | biXPelsPerMeter | Ce champ permet d'indiquer l'échelle de pixel par mètre à l'horizontale. | |||
001Ch | 4 octets | biYPelsPerMeter | Ce champ permet d'indiquer l'échelle de pixel par mètre à la verticale. | |||
0020h | 4 octets | biClrUsed | Ce champ permet d'indiquer le nombre de couleurs indexés dans la table des couleurs. | |||
0024h | 4 octets | biClrImportant | Ce champ permet d'indiquer le nombre de couleurs indexés requis pour afficher le Bitmap. | |||
0028h | variable | icColors | Ce champ contient un tableau de couleurs RVB (RGB en anglais) en format 32 bits. | |||
variable | variable | icXOR | Ce champ contient un tableau d'octets d'un masque XOR (ou exclusif binaire). | |||
variable | variable | icAND | Ce champ contient un tableau d'octets d'un masque AND (et binaire). |
Code source
Voici des exemples de code source d'utilitaires pour manipuler les icônes :
Lien | Langage de programmation | Description | Projet | Syntaxe |
---|---|---|---|---|
ICO2ASM.PAS | Free Pascal, Turbo Pascal | Cette commande permet de transformer un icône (.ICO) en code source assembleur. | Corail | ICO2ASM |
ICO2BAS.PAS | Free Pascal, Turbo Pascal | Cette commande permet de transformer un icône (.ICO) en code source BASIC. | Corail | ICO2BAS |
ICO2C.PAS | Free Pascal, Turbo Pascal | Cette commande permet de transformer un icône (.ICO) en code source C. | Corail | ICO2C |
ICO2CSP.PAS | Free Pascal, Turbo Pascal | Cette commande permet de transformer un icône (.ICO) en code source CSP (C Server Pages). | Corail | ICO2CSP |
ICO2PAS.PAS | Free Pascal, Turbo Pascal | Cette commande permet de transformer un icône (.ICO) en code source Pascal. | Corail | ICO2PAS |
ICO2PPM.PAS | Free Pascal, Turbo Pascal | Cette commande permet de transformer un icône (.ICO) en format d'image PPM (Portable PixMap). | Corail | ICO2PPM |
ICO2PSP.PAS | Free Pascal, Turbo Pascal | Cette commande permet de transformer un icône (.ICO) en code source PSP (Pascal Server Pages). | Corail | ICO2PSP |
ICO2PY.PAS | Free Pascal, Turbo Pascal | Cette commande permet de transformer un icône (.ICO) en code source Python. | Corail | ICO2PY |
ICO2RUBY.PAS | Free Pascal, Turbo Pascal | Cette commande permet de transformer un icône (.ICO) en code source Ruby. | Corail | ICO2RUBY |
ICO2XBM.PAS | Free Pascal, Turbo Pascal | Cette commande permet de transformer un icône (.ICO) en format XBM (X BitMap). | Corail | ICO2XBM |
Voir également
Format d'image Bitmap pour Windows (.BMP)
BITMAPINFOHEADER (C pour Windows)
Format de fichier compressé pour Windows (.CAB)
Langage de programmation - Traitement d'image - Accueil