Skip to content

Convertisseur PNG en ICO (et ICO en PNG)

Convertissez PNG, JPG, SVG ou WebP en un vrai .ico multi-tailles : 16, 32 et 48 px dans un seul fichier, alpha intégral conservé. Stockage PNG ou BMP non compressé, les deux tailles affichées. Ouvre aussi les .ico.

Sans pistage Fonctionne dans le navigateur Gratuit
La conversion s'effectue entièrement dans votre navigateur. Votre image n'est jamais envoyée.

Déposez une image ici ou cliquez pour parcourir

PNG, JPG, SVG, WebP, GIF ou BMP · jusqu'à 10 Mo

Tailles à empaqueter

16, 32 et 48 px : c'est ce que demandaient les recommandations d'icônes Microsoft de 1995 et la combinaison qui revient le plus souvent dans les favicons réels. 512 n'est pas proposé : le répertoire stocke la longueur du côté sur un octet, cette taille n'a donc aucune représentation valide.

Les deux sont autorisés dans un .ico. Le PNG est lu par Windows depuis Vista et par tous les navigateurs actuels ; le BMP non compressé est ce qu'utilisent réellement 13 des 14 vrais fichiers ICO trouvés sur 20 sites échantillonnés, parce qu'ImageMagick convertit vers ce format par défaut.

Ce que contient un fichier .ico (exemple 16 + 32 + 48 px)
Offset Octets Champ Valeur
0 2 idReserved 0
2 2 idType 1
4 2 idCount 3
6 1 bWidth[0] 16 → 16
7 1 bHeight[0] 16 → 16
8 1 bColorCount[0] 0
9 1 bReserved[0] 0
10 2 wPlanes[0] 1
12 2 wBitCount[0] 32
14 4 dwBytesInRes[0] 248
18 4 dwImageOffset[0] 54
22 1 bWidth[1] 32 → 32
23 1 bHeight[1] 32 → 32
24 1 bColorCount[1] 0
25 1 bReserved[1] 0
26 2 wPlanes[1] 1
28 2 wBitCount[1] 32
30 4 dwBytesInRes[1] 720
34 4 dwImageOffset[1] 302
38 1 bWidth[2] 48 → 48
39 1 bHeight[2] 48 → 48
40 1 bColorCount[2] 0
41 1 bReserved[2] 0
42 2 wPlanes[2] 1
44 2 wBitCount[2] 32
46 4 dwBytesInRes[2] 1464
50 4 dwImageOffset[2] 1022
Le dump hexadécimal, les comptes d'octets et les sorties de commande cités sur cette page ont été capturés à partir de fichiers produits par cet outil, et chaque affirmation sur le comportement des décodeurs a été recoupée avec trois implémentations indépendantes : un encodeur écrit de zéro, Pillow 12.3.0 et le décodeur ICO de Chromium. L'observation selon laquelle la plupart des favicons publiés utilisent des bitmaps non compressés vient de la récupération et de l'analyse des fichiers d'icône de vingt sites connus en septembre 2026. — Équipe d'ingénierie Go Tools · 22 sept. 2026

Rédigé et relu par les développeurs qui construisent les utilitaires de conversion Go Tools. La structure du conteneur, les comptes d'octets et les modes de défaillance décrits ici proviennent d'une revue de domaine écrite, et non de résumés du format faits par d'autres.

PNG en ICO : réponses rapides

Quelles tailles un favicon.ico doit-il contenir ?

16, 32 et 48 px Ces trois-là couvrent l'onglet du navigateur, le sélecteur Alt-Tab et le bureau, et constituent l'ensemble recommandé depuis 1995. N'ajoutez 256 que si l'icône doit aussi tenir dans une vue en grandes icônes.

Un seul fichier .ico peut-il contenir plusieurs tailles ?

Oui, c'est précisément sa raison d'être Le format est un conteneur : un en-tête de six octets, une entrée de répertoire de seize octets par image, puis les images. Chacune est un dessin distinct, et c'est pour cela qu'une bonne icône reste nette à 16 px.

Convertir un PNG en ICO fait-il perdre la transparence ?

Non, pas si c'est fait correctement Les deux façons de stocker une image dans un .ico transportent un canal alpha complet sur huit bits. La transparence ne se perd que si un outil laisse les octets alpha vides ou abandonne le masque 1 bit que les logiciels plus anciens lisent à la place.

Quelle taille fait une couche 256 px dans un .ico ?

264 Ko non compressée, ou quelques Ko en PNG Une couche 256 px non compressée pèse exactement 270 376 octets — 40 octets d'en-tête, 262 144 de pixels et 8192 de masque — quelle que soit l'image. Stockée en PNG, la même couche coûte en général quelques kilo-octets.

Qu'est-ce qu'un fichier ICO ?

Un fichier .ico n'est pas tant un format d'image qu'une petite archive d'images. Il commence par un en-tête de six octets indiquant combien d'images il contient, suivi d'une entrée de répertoire de seize octets par image donnant sa largeur, sa hauteur, son nombre d'octets et sa position dans le fichier, puis des données d'image elles-mêmes. Chaque image peut être stockée de deux façons : sous la forme d'un fichier PNG complet intégré tel quel, ou d'un bitmap Windows non compressé auquel est accroché en dessous un masque de transparence de 1 bit.

C'est grâce à cette conception qu'un favicon peut rester net à 16 px dans un onglet de navigateur et à 48 px dans un gestionnaire de fichiers : ce sont des dessins différents, ajustés à la main à chaque taille, et non une seule image redimensionnée. C'est aussi pour cela que le format réserve quelques surprises. La longueur du côté est stockée sur un seul octet, donc 256 s'écrit zéro et 512 ne s'écrit pas du tout. Et le répertoire enregistre pour chaque entrée une taille que les données d'image enregistrent elles aussi, ce qui signifie que les deux peuvent se contredire — et les logiciels ne croient pas tous la même.

$ file favicon.ico
favicon.ico: MS Windows icon resource - 3 icons, 16x16, 32 bits/pixel, 32x32, 32 bits/pixel

$ python3 -c "from PIL import Image; print(sorted(Image.open('favicon.ico').ico.sizes()))"
[(16, 16), (32, 32), (48, 48)]

Ce que fait ce convertisseur ICO

Un fichier, toutes les tailles que vous cochez

16, 32 et 48 px par défaut, jusqu'à 256. Chaque taille est dessinée séparément à partir de l'original en pleine qualité, et non réduite depuis la couche du dessus : les petites tailles n'héritent donc pas du flou d'une grande.

PNG ou BMP non compressé, avec les deux tailles affichées

Les deux formats de charge utile autorisés ont des compromis très différents, et la plupart des convertisseurs ne disent jamais lequel ils écrivent. Ici c'est un interrupteur, et la taille de fichier obtenue dans chaque cas est affichée : la décision se prend sur un chiffre, pas sur une intuition.

Une transparence qui survit aux deux chemins

Le canal alpha est écrit intégralement, et le masque 1 bit que les logiciels plus anciens lisent à la place en est dérivé plutôt que laissé vide. C'est précisément un masque laissé vide qui transforme une icône transparente en carré noir là où seul le masque est lu.

Une visionneuse ICO, pas seulement un téléchargeur

L'onglet inverse liste chaque image contenue dans un .ico avec sa taille réelle, son format de stockage, sa profondeur de bits et l'origine de sa transparence — y compris les bitmaps à palette qu'utilisent encore plusieurs favicons très connus. Un navigateur ne vous en montrera jamais qu'une seule.

Il vous signale les fichiers incohérents

Si le répertoire annonce une taille que les données d'image ne confirment pas, c'est signalé. Un PNG intégré que Firefox jettera l'est aussi : son décodeur ICO n'accepte que du RGB ou du RGBA 8 bits, si bien qu'une couche en palette ou en niveaux de gris disparaît purement et simplement chez lui alors que tous les autres navigateurs l'affichent. Ce sont deux raisons fréquentes pour qu'une icône fonctionne dans un programme et apparaisse vide dans un autre, et aucun autre convertisseur ne signale ni l'une ni l'autre.

Rien n'est envoyé

La lecture, le redimensionnement et l'empaquetage se font tous sur cette page. Le fichier n'atteint jamais de serveur : il n'y a donc rien à supprimer après coup et aucune file d'attente.

Convertir PNG en ICO par le code

ImageMagick

magick in.png -define icon:auto-resize=48,32,16 favicon.ico

La réponse habituelle, et la raison pour laquelle tant de favicons sont non compressés. Chaque couche sauf celle de 256 px est convertie en bitmap avant d'être empaquetée : trois tailles sortent autour de 15 Ko au lieu de quelques centaines d'octets. Les tailles sont écrites de la plus grande à la plus petite.

Python + Pillow

img.save('favicon.ico', sizes=[(16,16),(32,32),(48,48)])

Intègre du PNG : les mêmes trois tailles tiennent dans environ un dixième de l'espace. Pillow lit aussi très bien l'ICO : Image.open(f).ico.sizes() liste ce qui se trouve à l'intérieur, pratique pour inspecter le fichier de quelqu'un d'autre.

png-to-ico (npm)

npx png-to-ico icon.png > favicon.ico

Un utilitaire en ligne de commande dédié qui prend un ou plusieurs PNG et les empaquette en charges utiles PNG. Commode dans un script de build ; il ne redimensionne pas à votre place, vous fournissez donc chaque taille dans son propre fichier.

sharp

sharp(input).resize(32).png()

Excellent pour produire les PNG individuels, mais il n'écrit pas de conteneur ICO : on l'associe donc normalement à l'un des empaqueteurs ci-dessus. Source fréquente de confusion quand une chaîne de build est déjà standardisée sur sharp.

Go

github.com/Kodeworks/golang-image-ico

Écrit un ICO mono-image à partir d'une image.Image. Suffisant pour un favicon à une seule taille ; empaqueter plusieurs tailles dans un même conteneur suppose d'écrire le répertoire soi-même, soit une trentaine de lignes.

Compilateurs d'icônes Windows

script de ressources .rc, rc.exe

La façon habituelle de produire les icônes d'application. Le compilateur intègre le .ico dans la section de ressources de l'exécutable ; le conteneur à l'intérieur a exactement le même format qu'un favicon web.

GIMP

Fichier → Exporter sous → .ico

Exporte chaque calque de l'image comme une taille d'icône et vous laisse choisir la profondeur de bits couche par couche, y compris le PNG compressé. L'un des rares outils graphiques à exposer ce choix au lieu de trancher en silence.

sips (macOS)

sips -s format ico in.png --out favicon.ico

macOS possède bel et bien un écrivain ICO : sips --formats indique com.microsoft.ico comme inscriptible, et la commande ci-dessus a produit un fichier valide. Ce qu'il ne fait pas, c'est empaqueter plusieurs tailles — la sortie était une seule couche 48×48. iconutil, que les résultats de recherche suggèrent d'habitude, produit du .icns, le conteneur propre à Apple, que Windows et les navigateurs ne lisent pas.

Exemples PNG en ICO, octet par octet

Les 38 premiers octets d'un .ico à trois tailles

$ xxd -l 38 favicon.ico
00000000: 0000 0100 0300 1010 0000 0100 2000 e903  ............ ...
00000010: 0000 3600 0000 2020 0000 0100 2000 6c05  ..6...  .... .l.
00000020: 0000 1f04 0000                           ......

0000 est le champ réservé, 0100 indique le type 1 (icône, pas curseur), 0300 annonce trois images. Vient ensuite la première entrée de répertoire de 16 octets : 10 10 pour 16×16, 00 le nombre de couleurs, 00 réservé, 0100 un plan, 2000 32 bits par pixel, e903 0000 soit 1001 octets de charge utile à l'offset 3600 0000 = 54 — exactement 6 + 3 × 16, c'est-à-dire la fin du répertoire. Tous les nombres sont en little-endian sauf les tailles, qui tiennent sur un seul octet.

Une entrée 256 px stocke zéro, pas 256

bWidth = 0x00    bHeight = 0x00
256 × 256

Le répertoire dispose d'un octet par côté : 255 est donc le plus grand nombre qu'il peut contenir, et 0 est défini pour signifier 256. C'est aussi pourquoi 512 px n'est proposé nulle part sur cette page : aucun octet ne peut vouloir dire 512. Plusieurs convertisseurs en ligne le proposent quand même et écrivent une image de 512 px derrière une entrée de répertoire incapable de la décrire.

Les mêmes trois tailles, deux façons de les stocker

16 + 32 + 48 px, PNG payloads
16 + 32 + 48 px, uncompressed BMP payloads
389 bytes
15,086 bytes

Une charge utile non compressée coûte 40 + largeur × hauteur × 4 octets plus un masque 1 bit : sa taille ne dépend donc que des dimensions, et pas du tout de ce que représente l'image. C'est pour cela que trois sites différents peuvent publier trois icônes complètement distinctes dans des fichiers de longueur identique.

Fabriquer le même fichier en ligne de commande

$ magick logo.png -define icon:auto-resize=48,32,16 favicon.ico
$ file favicon.ico
favicon.ico: MS Windows icon resource - 3 icons, 48x48, 32 bits/pixel, 32x32, 32 bits/pixel

ImageMagick convertit chaque couche sauf celle de 256 px en bitmap non compressé avant de l'empaqueter, d'où une sortie d'environ 15 Ko plutôt que quelques centaines d'octets. Pillow fait l'inverse et intègre du PNG : Image.open('logo.png').save('favicon.ico', sizes=[(16,16),(32,32),(48,48)]).

Redécouper un .ico

$ magick favicon.ico favicon-%d.png
favicon-0.png   48×48
favicon-1.png   32×32
favicon-2.png   16×16

Un navigateur ne peut pas le faire à votre place. Donnez un .ico multi-tailles à une balise <img> et vous obtiendrez exactement une image — la plus grande — quel que soit l'ordre des tailles. Savoir ce qu'un fichier contient vraiment suppose d'analyser le conteneur soi-même, ce que fait l'onglet ICO → PNG.

Comment convertir un PNG en ICO

  1. 1

    Déposez votre image

    PNG, JPG, SVG, WebP, GIF et BMP sont tous acceptés, jusqu'à 10 Mo. Rien ne quitte le navigateur : le fichier est lu avec l'API File et chaque pixel est dessiné sur un canvas local.

  2. 2

    Choisissez les tailles

    16, 32 et 48 px sont cochées au départ. Ajoutez 64, 128 ou 256 si l'icône doit survivre à une vue en grandes icônes ou à un bureau haute densité. Si votre source est plus petite que la plus grande taille cochée, la page vous le dit au lieu de l'agrandir en silence.

  3. 3

    Choisissez le format de stockage

    Le PNG est le format par défaut : il est un ordre de grandeur plus léger et tous les navigateurs actuels, comme toutes les versions de Windows depuis Vista, le lisent. Passez au BMP non compressé si vous voulez la forme dans laquelle se trouvent réellement la plupart des favicons publiés. Les deux tailles de fichier sont affichées côte à côte.

  4. 4

    Téléchargez et branchez-le

    Enregistrez le .ico et utilisez le bouton Copier les balises link pour le balisage. Le chemin /favicon.ico à la racine fonctionne toujours comme solution de repli, mais l'élément link explicite est le chemin que les navigateurs sont censés essayer en premier.

Pourquoi les fichiers ICO se cassent

Une couche 256 px écrite 255

L'octet de répertoire d'une image 256 px doit valoir 0. Écrire 255 ressemble à une erreur d'une unité sans conséquence et produit un fichier que certains navigateurs refusent silencieusement de dessiner.

✗ Incorrect
bWidth = 0xFF   bHeight = 0xFF   ; « 255 », voulait dire 256
✓ Correct
bWidth = 0x00   bHeight = 0x00   ; 0 est défini pour signifier 256

Le répertoire et l'image ne s'accordent pas sur la taille

Quand une entrée de répertoire annonce 16×16 au-dessus d'une charge utile qui fait réellement 32×32, les décodeurs se divisent : certains font confiance au répertoire et ne dessinent rien du tout, d'autres font confiance à la charge utile et l'affichent correctement. Le fichier marche alors sur une machine et reste invisible sur une autre.

✗ Incorrect
entry: 16×16     payload IHDR: 32×32
✓ Correct
entry: 32×32     payload IHDR: 32×32

Le champ de hauteur du bitmap n'est pas doublé

Dans une couche non compressée, la hauteur couvre les données couleur et le masque ensemble. Écrire la hauteur simple produit un fichier qui apparaît vide dans certains décodeurs et comme la moitié inférieure de l'image dans d'autres, sans erreur ni d'un côté ni de l'autre.

✗ Incorrect
biHeight = 32        ; pour une image de 32 px
✓ Correct
biHeight = 64        ; 2 × 32, données couleur plus masque

Une couche non compressée au canal alpha vide

Certains outils remplissent le masque et laissent chaque octet alpha à zéro. Un décodeur y lit une image entièrement transparente et l'icône disparaît ; un autre se rabat sur le masque et l'affiche correctement. Écrire les deux, de façon cohérente, évite tout le débat.

✗ Incorrect
alpha bytes: all 0x00   mask: all 0x00
✓ Correct
alpha bytes: real values   mask: set where alpha < 128

Un SVG qui va chercher un fichier sur Internet

Les références externes contenues dans un SVG sont bloquées lors de la rastérisation, et rien ne le signale : aucune erreur n'est levée et le canvas reste lisible. L'image cassée est simplement cuite dans l'icône. Intégrez le dessin avant de convertir.

✗ Incorrect
<image href="https://cdn.example.com/logo.png"/>
✓ Correct
<image href="data:image/png;base64,iVBORw0KGgo…"/>

Quand un convertisseur PNG en ICO est utile

Livrer un favicon pour un nouveau site
Déposez le logo, gardez les trois tailles par défaut, téléchargez favicon.ico et placez-le à la racine du site. Les balises link copiées vous donnent le balisage moderne pour la même icône, avec un SVG et une icône Apple touch.
Réparer une icône nette en grand et brouillonne en petit
Le plus souvent, le fichier ne contient qu'une grande couche et tout le reste n'est que le navigateur qui la réduit. Empaqueter une vraie couche 16 px, dessinée depuis la source plutôt que depuis la version 256 px, est ce qui corrige le problème.
Donner son icône à une application de bureau
Les exécutables, installeurs et raccourcis Windows demandent un .ico, et différentes parties du shell vont chercher différentes tailles dans le même fichier. Empaqueter 16, 32, 48 et 256 couvre les petites icônes des listes, le sélecteur Alt-Tab et les vues en grandes icônes.
Comprendre pourquoi une icône s'affiche ici et pas là
Ouvrez le fichier dans l'onglet ICO → PNG. Une taille mal décrite par le répertoire, une couche sans aucun alpha ou une entrée tronquée apparaissent toutes dans la liste, et chaque couche valide s'exporte même quand une voisine est cassée.
Récupérer les PNG d'un vieux .ico
Les icônes héritées d'un ancien projet sont souvent la seule copie survivante d'un logo. L'onglet inverse exporte chaque couche en PNG indépendant, y compris les couches stockées en bitmap à palette que la plupart des convertisseurs refusent.

Ce que contient réellement un fichier .ico

Six octets, puis seize par image
L'en-tête est 00 00 réservé, 01 00 pour une icône (02 00 désigne un fichier curseur), puis un compteur sur deux octets. Chaque entrée de répertoire donne la largeur, la hauteur, la taille de palette et un octet réservé — un octet chacun — suivis de champs de deux octets pour les plans et la profondeur de bits, et de deux champs de quatre octets donnant la longueur et l'offset de la charge utile. Tout ce qui fait plus d'un octet est en little-endian.
Zéro signifie 256, et 512 n'est pas exprimable
Comme la largeur et la hauteur tiennent sur un seul octet, 256 doit être codé 0 et tout ce qui dépasse n'a aucun codage. Écrire 255 au lieu de 0 pour une couche 256 px n'est pas une approximation acceptable : cela produit un fichier que les navigateurs refusent de dessiner. Les convertisseurs qui proposent une option 512 px écrivent des entrées incapables de décrire leur propre contenu.
Une couche non compressée coûte exactement 40 + l × h × 4 octets, plus un masque
Le masque ajoute ceil(largeur ÷ 32) × 4 octets par ligne. Une couche 16 px pèse donc 1128 octets, une couche 48 px 9640 et une couche 256 px 270 376 — quel que soit le contenu de l'image. Ce coût fixe explique pourquoi trois sites sans aucun rapport peuvent publier des favicons de longueur strictement identique, et pourquoi la couche 256 px n'est proposée ici que lorsque la charge utile est en PNG.
L'en-tête bitmap stocke le double de la hauteur
À l'intérieur d'une couche non compressée, le champ de hauteur décrit le bitmap couleur et le masque de transparence empilés ensemble : il est donc écrit comme le double de la hauteur réelle, même quand le masque ne porte aucune information. Se tromper ici est l'une des défaillances les plus silencieuses du format : certains décodeurs produisent une image vide, d'autres la moitié inférieure de l'image, et aucun des deux ne signale d'erreur.
Les champs plan, profondeur de bits et nombre de couleurs sont au mieux indicatifs
La spécification est précise à leur sujet et les fichiers réels l'ignorent. Le site de documentation de Microsoft lui-même sert un favicon dont le répertoire annonce zéro plan et zéro bit par pixel au-dessus d'une charge utile à quatre bits par pixel, et il s'affiche partout. Les décodeurs déduisent le vrai format de la charge utile — une signature PNG, ou l'en-tête bitmap — plutôt que de faire confiance au répertoire.
ICO n'a jamais eu de RFC
Le type de média image/vnd.microsoft.icon a été enregistré auprès de l'IANA en septembre 2003, et la référence qu'il cite est un article Microsoft de 1995 intitulé « Icons in Win32 ». La RFC 2361, souvent citée comme la spécification ICO, s'intitule en réalité « WAVE and AVI Codec Registries » et ne dit pas un mot des images.

Réussir son favicon.ico

Empaquetez 16, 32 et 48 et arrêtez-vous là pour le web
Ce trio est l'ensemble recommandé depuis 1995 et reste la combinaison qui revient le plus souvent dans les favicons réels. Les tailles supplémentaires ne sont pas gratuites : chacune est une couche de plus qu'un navigateur peut télécharger avant de savoir laquelle il veut.
Dessinez la couche 16 px, ne réduisez pas simplement la grande
Un logo qui fonctionne à 256 px perd généralement ses traits fins une fois arrivé à 16. Si la petite taille compte, simplifiez le dessin pour elle — moins de formes, des traits plus épais — et empaquetez cette version simplifiée comme couche à part entière.
Utilisez un élément link et gardez /favicon.ico en repli
La spécification HTML dit seulement aux navigateurs qu'ils peuvent aller chercher /favicon.ico, et uniquement en l'absence d'élément link d'icône. L'élément link explicite est le chemin fiable ; le fichier à la racine reste utile pour les lecteurs de flux, les robots d'indexation et tout ce qui n'analyse pas votre balisage.
Ajoutez une taille au-dessus de 48 px si les résultats de recherche comptent
Les recommandations de Google sur les favicons demandent une image carrée d'au moins 8 px et conseillent de dépasser 48 px pour qu'elle tienne sur toutes les surfaces. Google accepte le PNG aussi volontiers que l'ICO : la grande taille n'a donc pas besoin de vivre dans le .ico.
Vérifiez le fichier, ne vous contentez pas de le regarder
Une icône qui s'affiche dans votre navigateur peut tout de même être incorrecte : une entrée de répertoire qui ne correspond pas, un canal alpha manquant ou une couche illisible n'empêcheront pas l'unique image choisie par votre navigateur de s'afficher. Ouvrir le fichier dans l'onglet inverse les montre toutes.

FAQ PNG en ICO

Comment convertir un PNG en fichier ICO ?
Déposez le PNG sur cette page, laissez 16, 32 et 48 px cochées et téléchargez le résultat. Tout s'exécute dans le navigateur, l'image n'est donc jamais envoyée. En ligne de commande, l'équivalent habituel est magick logo.png -define icon:auto-resize=48,32,16 favicon.ico.
Pourquoi mon icône est-elle floue en petites tailles ?
Presque toujours parce que le fichier contient une seule grande image et que tout ce qui est petit n'est qu'un navigateur en train de la réduire à la volée. Aucune réduction n'est sans perte une fois que la grille de pixels rétrécit : les traits fins et les détails disparaissent en dessous d'environ 24 px, quelle que soit la qualité du rééchantillonnage, si bien que la qualité dépend des tailles empaquetées et non du convertisseur. Empaquetez une vraie couche 16 px et, si le logo est détaillé, simplifiez le dessin pour cette couche au lieu de le mettre à l'échelle.
Les images à l'intérieur doivent-elles être en PNG ou en BMP non compressé ?
PNG, sauf raison contraire : c'est un ordre de grandeur plus léger et tous les navigateurs actuels comme toutes les versions de Windows depuis Vista le lisent. Les bitmaps non compressés restent le choix le plus répandu dans la nature, surtout parce qu'ImageMagick convertit vers ce format par défaut, et ils restent le pari le plus sûr pour les logiciels très anciens. La page affiche les deux tailles de fichier pour que vous décidiez sur un chiffre.
Pourquoi n'y a-t-il pas d'option 512 px ?
Le répertoire stocke la longueur de chaque côté sur un seul octet : la plus grande valeur exprimable est donc 255, et 0 est réservé pour signifier 256. Il n'y a aucun moyen d'écrire 512. Les convertisseurs qui le proposent produisent une entrée de répertoire qui ne décrit pas l'image placée derrière elle, ce qui est un bon moyen d'obtenir une icône que certains logiciels refusent d'afficher.
Un PNG à fond transparent reste-t-il transparent une fois converti en ICO ?
Oui. Le canal alpha est écrit intégralement, et le masque 1 bit que les logiciels plus anciens lisent à la place en est dérivé plutôt que laissé vide — c'est précisément ce masque laissé vide qui transforme un fond transparent en carré noir dans les outils qui ne le remplissent pas. Un pixel partiellement transparent est compté comme transparent dans le masque dès que son alpha passe sous la moitié, ce qui est le seul choix possible puisque le masque ne dispose que d'un bit par pixel.
Puis-je convertir un SVG en ICO ?
Oui, et une source vectorielle est la meilleure entrée possible, car chaque taille est dessinée à partir de la géométrie au lieu d'être rééchantillonnée depuis un bitmap. Une réserve : tout ce que le SVG va chercher sur le réseau — une image liée, une police distante, une feuille de style importée — est bloqué pendant la conversion sans lever la moindre erreur. La page détecte ces références et vous prévient.
Ai-je encore besoin d'un favicon.ico à la racine du site ?
Il vaut la peine d'en avoir un, mais ce n'est plus le chemin principal. La spécification HTML dit que les navigateurs peuvent demander /favicon.ico, et seulement quand la page n'a aucun élément link d'icône. C'est l'élément link que les navigateurs sont censés utiliser en premier ; le fichier à la racine couvre les lecteurs de flux, les robots d'indexation et tout ce qui n'analyse jamais votre HTML.
Google a-t-il besoin d'un fichier ICO pour les résultats de recherche ?
Non. La documentation de Google sur les favicons accepte BMP, GIF, ICO, PNG, JPEG, PPM et TIFF, exige une image carrée d'au moins 8 px et conseille de dépasser 48 px pour qu'elle rende bien sur les différentes surfaces. Un seul grand PNG suffit ; le .ico sert à tout le reste.
Pourquoi mon navigateur n'affiche-t-il qu'une taille quand j'ouvre un .ico ?
Parce que c'est tout ce qu'un élément image peut vous donner. Confiez un .ico multi-tailles à un navigateur et il choisit une image — la plus grande, en pratique — et les autres deviennent inaccessibles. Lister toutes les couches suppose d'analyser le conteneur directement, ce que fait l'onglet ICO → PNG de cette page.
Que signifie un désaccord entre le répertoire et l'image sur la taille ?
Cela signifie que le fichier est incohérent en interne, et les décodeurs le traitent de façons opposées : certains font confiance au répertoire et finissent par ne rien dessiner, d'autres font confiance aux données d'image et les affichent correctement. C'est une cause classique d'icône qui marche sur une machine et reste invisible sur une autre, et cette page vous le signale quand vous ouvrez un fichier.
Cet outil peut-il ouvrir des fichiers ICO que d'autres convertisseurs rejettent ?
Souvent, oui. Les couches stockées en bitmap à palette — quatre ou huit bits par pixel — sont encore utilisées par plusieurs favicons très connus et de nombreux convertisseurs les refusent d'emblée. Les couches cassées sont également traitées une par une : une seule taille illisible n'empêche pas les autres d'être exportées. La liste signale aussi toute couche PNG intégrée que Firefox va écarter : son décodeur ICO n'accepte que du RGB ou du RGBA 8 bits, un PNG en palette ou en niveaux de gris y disparaît donc. Le site de Mozilla lui-même a publié une icône qui a exactement ce problème : sa couche 64 px est un PNG en palette que Firefox laisse tomber, et seules les autres couches maintiennent l'icône visible.
Mon image est-elle envoyée quelque part ?
Non. Le fichier est lu avec l'API File du navigateur, dessiné sur un canvas de cette page et empaqueté dans le conteneur par du JavaScript exécuté localement. Aucune requête ne transporte l'image où que ce soit, ce que vous pouvez vérifier dans l'onglet réseau de vos outils de développement — ou en chargeant la page, en coupant le réseau et en convertissant quand même : une fois la page chargée, l'outil fonctionne hors ligne.

Convertisseur de Base — Binaire, Hex, Décimal & Octal

Outils de conversion

Convertissez entre binaire, hexadécimal, décimal, octal et toute base (2-36) instantanément. Gratuit, privé, 100 % dans votre navigateur.

Calculateur de complément à deux et d'entiers signés

Outils de conversion

Saisissez un entier signé et obtenez d'un coup signe-valeur absolue, complément à un, complément à deux et binaire décalé, de 4 à 64 bits. Ou collez un motif de bits ou un octet hexadécimal et lisez les cinq interprétations.

Calculateur chmod — Permissions de fichiers Linux

Outils de conversion

Convertissez les permissions de fichiers Linux entre octal (755, 644) et symboles rwx. Obtenez les commandes chmod, repérez les réglages risqués comme 777 — gratuit, directement dans votre navigateur.

Convertisseur de couleurs — HEX, RGB, HSL et OKLCH

Outils de conversion

Convertissez HEX en RGB, HSL, OKLCH, OKLAB et CMYK dans votre navigateur — copiez n'importe quel format en un clic. Gratuit, sans inscription, vos couleurs ne quittent jamais la page.

Convertisseur HEX vers CMYK

Outils de conversion

Convertissez n'importe quelle couleur HEX en CMYK dans votre navigateur. Approximation naïve basée sur sRGB pour les aperçus d'impression. Gratuit, instantané, sans inscription, vos couleurs restent locales.

Convertisseur HEX vers HSL

Outils de conversion

Convertissez n'importe quelle couleur hex en HSL dans votre navigateur — hex à 3, 6 et 8 chiffres avec alpha pris en charge. Gratuit, instantané, sans inscription, vos couleurs ne quittent jamais la page.