Comment convertir un favicon en Base64
- Déposez
favicon.ico, un PNG ou un SVG dans la zone, ou choisissez-le avec le sélecteur de fichiers. - Pour un PNG, réglez Largeur max. sur 32 (ou 48) pour ne pas intégrer par mégarde une icône d’application de 512 pixels. Les fichiers ICO et SVG sont encodés tels quels.
- Sortie en est réglé sur Data URI. Copiez-la et collez-la dans le
href:
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...">
L’aperçu montre l’icône avec sa taille en pixels : vous voyez si un PNG fait vraiment 32×32 avant de le coller.
ICO, PNG ou SVG
| Format | Type MIME | Le Base64 commence par | Remarques |
|---|---|---|---|
| ICO | image/x-icon | AAABAA | peut contenir plusieurs tailles dans un même fichier ; toutes sont intégrées |
| PNG | image/png | iVBORw0KGgo | une taille par fichier, léger en 32×32 |
| SVG | image/svg+xml | PHN2Zy | s’adapte à toutes les tailles ; Safari seulement depuis la version 26 |
Un favicon.ico regroupe souvent des images de 16×16, 32×32 et 48×48, et toutes se retrouvent dans le Base64, ce qui explique une chaîne plus longue que prévu. Convertir un seul PNG de 32×32 suffit généralement pour un onglet de navigateur.
Un favicon SVG peut réagir au mode sombre grâce à une media query prefers-color-scheme à l’intérieur du SVG. Gardez un PNG en solution de repli si vous prenez en charge d’anciennes versions de Safari.
Quand un favicon intégré a du sens
- HTML en un seul fichier : rapports exportés, documentation hors ligne, tableau de bord enregistré dans un seul fichier. Un chemin relatif vers
favicon.icone pointerait plus nulle part une fois le fichier déplacé. - Outils internes et serveurs locaux, où ajouter une route pour un fichier statique demande plus de travail qu’une ligne de HTML.
- Favicons dynamiques : un badge de notification ou une couleur d’état dessinés sur un canvas et appliqués avec
link.href = canvas.toDataURL("image/png").
Sur un site web classique, un fichier d’icône séparé est le meilleur choix. Le navigateur le télécharge et le met en cache une fois, alors qu’un favicon intégré est répété dans chaque page HTML servie.
Dessiner un favicon en JavaScript
Pour un indicateur d’état, aucun fichier n’est nécessaire. Dessinez sur un canvas de 32×32 et affectez la data URI au lien d’icône existant :
const canvas = document.createElement("canvas");
canvas.width = canvas.height = 32;
const ctx = canvas.getContext("2d");
ctx.fillStyle = "#e33";
ctx.beginPath();
ctx.arc(16, 16, 14, 0, Math.PI * 2);
ctx.fill();
document.querySelector('link[rel="icon"]').href = canvas.toDataURL("image/png");
Quand l’icône ne change pas
- L’ancienne icône reste affichée. Les navigateurs mettent les favicons en cache de façon tenace, et séparément de la page. Rechargez sans le cache ou ouvrez la page dans une fenêtre privée pour voir la nouvelle.
- Rien ne s’affiche du tout. Vérifiez que le
hrefcommence par le bon type :data:image/png;base64,,data:image/x-icon;base64,oudata:image/svg+xml;base64,. Une icône SVG a aussi besoin de l’attributxmlnssur son élément racine. - Plusieurs balises
<link rel="icon">. Les navigateurs choisissent parmi elles selon le type et la taille : une icône intégrée peut donc perdre face à une autre icône déclarée. Supprimez celles dont vous ne voulez pas.
Revenir à un fichier
Pour retrouver favicon.ico à partir d’une data URI, utilisez Base64 en ICO. Pour les icônes SVG, SVG en data URI peut aussi produire une version encodée en URL, souvent plus courte que le Base64.
FAQ
Un favicon peut-il être une data URI Base64 ?
Oui. Placez la data URI dans le href de <link rel="icon">, par exemple href="data:image/png;base64,iVBORw0KGgo...". Les navigateurs la traitent comme n’importe quelle autre URL d’icône.
Quel type MIME utiliser pour un ICO en Base64 ?
image/x-icon est le plus répandu ; image/vnd.microsoft.icon est le nom enregistré. Les navigateurs acceptent les deux. L’outil utilise le type que votre navigateur indique pour le fichier.
Les favicons SVG fonctionnent-ils dans tous les navigateurs ?
Chrome et Edge les prennent en charge depuis la version 80, Firefox depuis la 41 et Safari depuis la 26. Si vous devez encore prendre en charge d’anciennes versions de Safari, ajoutez une icône PNG à côté de l’icône SVG.
Comment empêcher le navigateur de demander /favicon.ico ?
Une astuce courante consiste à utiliser une data URI vide : <link rel="icon" href="data:,">. La page n’a alors aucune icône, ce qui est pratique pour les pages de test et les outils locaux.