sample-ico-favicon-multi-res-16-32-48.ico
Dimensions:16×16, 32×32, 48×48
4,9 KB
ICO Télécharger l’exemple ICOICO · 5 fichiers ICO d’exemple disponibles
Téléchargez des fichiers ICO d’exemple gratuits : favicons web multi-résolutions, suites d’icônes d’applications Windows, ressources Retina et DIB classiques.
Suite de tests ICO
5 fichiers ICO d’exemple disponibles
sample-ico-favicon-multi-res-16-32-48.ico
Dimensions:16×16, 32×32, 48×48
4,9 KB
ICO Télécharger l’exemple ICOsample-ico-app-complete-16-to-256.ico
Dimensions:16×16 to 256×256
20,3 KB
ICO Télécharger l’exemple ICOsample-ico-high-res-256x256.ico
Dimensions:256×256
10 KB
ICO Télécharger l’exemple ICOsample-ico-standard-32x32.ico
Dimensions:32×32
1,4 KB
ICO Télécharger l’exemple ICOsample-ico-classic-dib-32x32.ico
Dimensions:32×32
4,2 KB
ICO Télécharger l’exemple ICOSpécifications techniques et guide
Le format d’icône Microsoft Windows (.ico) est un conteneur d’images conçu pour regrouper plusieurs bitmaps matriciels et images PNG compressées dans différentes résolutions, profondeurs de couleur et palettes au sein d’un seul fichier physique. Apparu avec Windows 1.0 (1985) et adopté comme standard universel de favicon par Internet Explorer 5 en 1999, ICO reste la norme fondamentale pour l’affichage des icônes de bureau et l’identité des onglets de navigateurs.
Introduit en 1985 avec Microsoft Windows 1.0, le format ICO contenait initialement des bitmaps monochromes de taille fixe (1 bit, 32×32 pixels). Avec Windows 3.0 et 95, les palettes se sont élargies à 16 couleurs (EGA 4 bits) et 256 couleurs (VGA 8 bits), avec une séparation entre masque de transparence booléen AND 1 bit et matrice de pixels de couleur XOR.
Avec Windows XP (2001), Microsoft a introduit les icônes RGBA 32 bits avec canal alpha réel 8 bits (256 niveaux d’ombrage et lissage des contours) au sein de structures DIB (Device-Independent Bitmap).
Windows Vista (2006) a apporté la modernisation majeure : la compression PNG native au sein du conteneur ICO pour les icônes haute densité de 256×256 pixels, réduisant le poids de plusieurs mégaoctets à quelques dizaines de kilo-octets tout en préservant la compatibilité avec les icônes DIB antérieures.
Sur le web, Internet Explorer 5 (mars 1999) a popularisé la convention /favicon.ico à la racine du serveur. Normalisé par le W3C et le WHATWG, les navigateurs web recherchent automatiquement ce fichier pour alimenter onglets, favoris et raccourcis mobiles.
Un fichier ICO débute par un en-tête de 6 octets (ICONDIR) : deux octets réservés à zéro (0x0000), un identifiant de type de 2 octets (0x0001 pour ICO, 0x0002 pour curseur .cur) et un entier de 2 octets indiquant le nombre total d’images contenues (idCount).
Immédiatement après suit un tableau contigu d’entrées de répertoire de 16 octets (ICONDIRENTRY). Chaque entrée spécifie la largeur (1 octet ; 0 équivaut à 256 px), la hauteur (1 octet ; 0 équivaut à 256 px), le nombre de couleurs (1 octet), un octet réservé (0x00), les plans de couleur (2 octets), les bits par pixel (2 octets, ex. 32 pour RGBA), la taille en octets de l’image (4 octets) et son décalage absolu dans le fichier (4 octets).
Les données d’image suivent deux formats distincts : DIB classique ou flux PNG. Dans les icônes DIB, l’image débute par un BITMAPINFOHEADER de 40 octets où biHeight est exactement le double de la hauteur visuelle (hauteur * 2) pour intégrer la matrice XOR et le masque AND.
Dans les icônes PNG (depuis Windows Vista), le flux débute par la signature standard PNG de 8 octets (0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A), suivie des blocs IHDR, IDAT et IEND. Cela permet une compression Deflate efficace pour les icônes 256×256, 128×128 et 64×64.
Conditionnement multi-résolutions : Un seul fichier .ico contient des versions conçues pour 16×16 (onglets / barre des tâches), 32×32 (icône de bureau / explorateur standard), 48×48 (grandes icônes) et 256×256 (Retina / affichage très grand), évitant tout flou de redimensionnement.
Transparence alpha réelle 8 bits : Les icônes RGBA 32 bits offrent 256 niveaux de transparence, autorisant des ombres portées douces sur n’importe quel fond de bureau clair ou sombre.
Compatibilité web universelle : L’ensemble des navigateurs graphiques interrogent /favicon.ico nativement sans configuration HTML ou script supplémentaire.
Moteur de compression hybride : Associe un décodage DIB instantané pour les petites tailles (16×16 et 32×32) à la compression PNG Deflate pour les résolutions supérieures.
Microsoft Windows : Prise en charge native de Windows 1.0 à Windows 11 pour les raccourcis de bureau, exécutables (.exe, .dll) et barres de titre.
Navigateurs web : Support universel sur Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Edge, Opera et Internet Explorer.
Logiciels graphiques : Adobe Photoshop (avec plugin ICOFormat), GIMP (prise en charge native complète), Inkscape, ImageMagick, IcoFX et Axialis IconWorkshop.
Environnements de développement : Visual Studio, Electron, Node.js (sharp, png-to-ico), Python (Pillow), Go, Rust et .NET System.Drawing.Icon.
Comparez les caractéristiques du conteneur Microsoft ICO face aux formats matriciels autonomes, graphiques vectoriels et curseurs Windows.
| Caractéristique technique | ICO (Conteneur d’icônes) | PNG (Matriciel portable) | SVG (Graphique vectoriel) | WebP (Matriciel moderne) | CUR (Curseur Windows) | Considérations d’usage |
|---|---|---|---|---|---|---|
| Type de conteneur | Conteneur multi-images (DIB/PNG) | Flux d’image unique | Document vectoriel XML | Matriciel unique/multiple RIFF | Conteneur de curseur (DIB/PNG) | ICO et CUR regroupent plusieurs résolutions différentes dans un seul fichier. |
| Prise en charge des résolutions | Plusieurs tailles fixes (16 à 256 px) | Dimension fixe unique | Résolution vectorielle infinie | Dimension fixe unique | Plusieurs tailles fixes (16 à 128 px) | Le SVG est calculé mathématiquement, tandis que l’ICO préserve le dessin pixel par pixel en 16×16. |
| Point actif (Hotspot) | Aucun (point d’ancrage centré) | Non applicable | Non applicable | Non applicable | Coordonnées X/Y (2 octets chacun) | CUR a une structure identique à ICO à l’exception du type=2 et des coordonnées de point d’impact. |
| Compression | Hybride (DIB non compressé + PNG Deflate) | Deflate (ZLIB sans perte) | Texte brut / Gzip (SVGZ) | VP8 / VP8L avec et sans perte | Flux DIB ou PNG | L’ICO utilise la compression PNG pour les icônes 256×256 depuis Windows Vista. |
| Requête automatique web | Oui (/favicon.ico automatique) | Nécessite <link rel="icon"> | Nécessite <link rel="icon"> | Nécessite <link rel="icon"> | Utilisé via la propriété CSS cursor | Les navigateurs émettent une requête HTTP GET implicite vers /favicon.ico. |
| Couleurs et transparence | 1 bit, 4 bits, 8 bits, 32 bits RGBA | Truecolor 24 bits + alpha 8/16 bits | Espace colorimétrique CSS / sRGB / P3 | RGB 24 bits + alpha 8 bits | Masque 1 bit ou alpha RGBA 32 bits | ICO et PNG prennent tous deux en charge 256 niveaux de transparence pour des ombres douces. |
Exemples de code prêts pour la production pour déclarer des favicons en HTML, compiler des fichiers ICO en Node.js avec sharp, exporter avec Python Pillow et traiter par lot avec ImageMagick.
HTML5 Favicon & Web Manifest Declaration:
<!-- Déclaration standard de Favicon et Manifeste HTML5 -->
<!-- 1. Compatibilité universelle classique (/favicon.ico) -->
<link rel="shortcut icon" href="/favicon.ico" sizes="16x16 32x32 48x48">
<!-- 2. Icônes PNG haute résolution pour onglets de navigateurs modernes -->
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<!-- 3. Icône vectorielle SVG adaptable avec prise en charge du mode sombre -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<!-- 4. Apple Touch Icon pour l'écran d'accueil iOS -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<!-- 5. Manifeste Web App pour Chrome Android et PWA -->
<link rel="manifest" href="/site.webmanifest">Node.js (Sharp & png-to-ico Packaging):
// Node.js : Générer un fichier ICO multi-résolution avec sharp et png-to-ico
import { writeFileSync } from 'node:fs';
import pngToIco from 'png-to-ico';
import sharp from 'sharp';
async function generateMultiResIco(masterSvgPath, outputPath) {
const sizes = [16, 32, 48, 64, 128, 256];
const pngBuffers = [];
for (const size of sizes) {
const buf = await sharp(masterSvgPath)
.resize(size, size, { fit: 'contain', background: { r: 0, g: 0, b: 0, alpha: 0 } })
.png({ compressionLevel: 9 })
.toBuffer();
pngBuffers.push(buf);
}
const icoBuffer = await pngToIco(pngBuffers);
writeFileSync(outputPath, icoBuffer);
console.log(`ICO généré : ${outputPath} (${icoBuffer.length} octets, 6 tailles)`);
}Python (Pillow Multi-Resolution Export):
# Python : Générer un fichier ICO multi-résolution avec Pillow (PIL)
from PIL import Image
def create_ico(source_path, output_path):
img = Image.open(source_path).convert("RGBA")
icon_sizes = [(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (256, 256)]
img.save(
output_path,
format='ICO',
sizes=icon_sizes
)
print(f"ICO enregistré avec succès dans {output_path} ({len(icon_sizes)} tailles).")
create_ico("master-logo.png", "favicon.ico")ImageMagick CLI (Multi-Res ICO Compilation):
# ImageMagick CLI : Combiner plusieurs PNGs dans un seul conteneur ICO
# 1. Générer les images carrées individuelles depuis une source vectorielle
magick master.svg -resize 16x16 icon-16.png
magick master.svg -resize 32x32 icon-32.png
magick master.svg -resize 48x48 icon-48.png
magick master.svg -resize 256x256 icon-256.png
# 2. Assembler tous les cadres dans le fichier ICO final
magick convert icon-16.png icon-32.png icon-48.png icon-256.png favicon.ico
# 3. Inspecter les cadres internes avec identify
identify favicon.icoParamètres techniques, octets magiques et normes d’encodage qui régissent le format Microsoft Windows ICO.
Un fichier ICO est un conteneur d’images développé par Microsoft pour stocker plusieurs versions d’une même icône dans différentes dimensions et profondeurs de couleur au sein d’un seul fichier. Par exemple, un favicon.ico peut intégrer 16×16 px pour les onglets, 32×32 px pour les raccourcis de bureau et 256×256 px pour les écrans haute densité. Disposer d’images optimisées pour chaque taille évite aux systèmes d’exploitation et navigateurs d’effectuer une interpolation floue.
Les fichiers ICO classiques encodent les images sous forme de bitmaps indépendants du matériel (DIB), comprenant un BITMAPINFOHEADER de 40 octets, une matrice de pixels XOR non compressée et un masque AND 1 bit pour la transparence. Si cela convient pour 16×16 et 32×32, une image DIB 256×256 occupe 262 Ko par image. Depuis Windows Vista (2006), la norme autorise des flux PNG compressés avec Deflate, réduisant le poids à 10–20 Ko tout en conservant le canal alpha 8 bits.
Les sites web modernes doivent fournir les deux. Bien que les navigateurs modernes acceptent SVG et PNG via `<link rel="icon">`, d’innombrables navigateurs d’entreprise, agrégateurs RSS, robots d’indexation et moteurs de recherche recherchent systématiquement `/favicon.ico` à la racine du serveur. Proposer un fichier `favicon.ico` multi-résolutions évite les erreurs 404 dans les journaux et assure un affichage parfait partout.
Lorsque Windows affiche une icône, le moteur de rendu calcule le nombre exact de pixels physiques requis selon l’échelle DPI de l’écran (100 %, 125 %, 150 % ou 200 %). Il parcourt le tableau ICONDIRENTRY dans le fichier ICO pour trouver une correspondance exacte. À défaut, Windows sélectionne la résolution immédiatement supérieure et applique une réduction bicubique pour préserver netteté et contraste.
ICO et CUR partagent une structure binaire quasi identique, avec deux distinctions : Le 2e octet de l’en-tête spécifie le type (0x0001 pour ICO et 0x0002 pour CUR). Dans l’entrée de 16 octets, les octets 4 à 7 indiquent les plans et bits par pixel pour un ICO, alors qu’ils définissent les coordonnées X et Y du point d’impact (hotspot) où le clic de souris est enregistré pour un CUR.