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.