Le bouton « Copier le Base64 » ne copie pas seulement du Base64. Il copie l'URI entière, préfixe data: compris, et le bouton voisin fait de même pour la forme à encodage pourcentage. Voilà comment cet outil transforme un SVG en Data URI, ou en PNG carré.
Encodage pourcentage ou Base64 : ce que produit le code
« Copier le Data URI » donne data:image/svg+xml,..., avec en plus l'échappement des apostrophes et des guillemets. Pour du SVG, cette forme est souvent plus courte. « Copier le Base64 » allonge le texte d'environ un tiers et accepte aussi les caractères non ASCII. L'outil ne minifie pas le SVG.
Quand une Data URI évite une requête
Une petite icône dans une feuille de style arrive avec le CSS, sans fichier à part. Dans un e-mail HTML, elle peut survivre quand un client bloque les images liées, mais la prise en charge varie selon le client.
Un PNG toujours carré
Le dessin est peint dans un canvas de côté sur côté. Un SVG en largeur est donc étiré. Le fond reste transparent. Une taille vide ou invalide devient 512, et une décimale est tronquée. Les images, polices et feuilles de style externes du SVG ne sont pas chargées. Les très grandes tailles peuvent échouer selon la limite de canvas du navigateur.
Ce que devient votre code
L'encodage et le PNG se font dans votre navigateur. Un clic sur un bouton n'envoie aucune requête. L'aperçu est un élément image avec un Data URI et ajoute xmlns uniquement pour l'affichage. L'export PNG et le Data URI copié ne l'ajoutent pas. Les scripts et gestionnaires d'événements du code collé ne s'exécutent pas dans l'aperçu.
Les quatre gestes, dans l'ordre
- Collez le code SVG dans le champ. Un exemple s'y trouve au départ : un cercle bleu avec une étoile blanche.
- Vérifiez l'aperçu, posé sur un fond sombre en damier.
- Cliquez sur un des deux boutons de copie.
- Pour un PNG, saisissez une taille en pixels puis cliquez sur « Télécharger en PNG ». Si rien ne se télécharge, vérifiez l'attribut
xmlns="http://www.w3.org/2000/svg": sans lui, le navigateur ne charge souvent pas l'image, et aucun message n'apparaît.