Encoder une image en Base64 / Data URI
- Tableau de bord
- Documentation
- API
Format de fichier
Vous pouvez charger un nombre illimité d'images d'un poids maximal de 20M.
Sécurité
Vos données ne sont pas stockées sur nos serveurs.
Navigateurs supportés
L'ensemble des navigateurs récents est supporté. Si toutefois vous rencontrez un bug, faites-nous en part pour correction.
Qu'est-ce qu'une Data URI ?
Une Data URI est une URL qui contient directement les données d'une ressource au lieu de
pointer vers un fichier distant. Sa forme générale est
data:[<mediatype>][;base64],<data>. Pour une image, on a typiquement
data:image/png;base64,iVBORw0KGgo…. La ressource est embarquée dans le HTML, le CSS ou le JSON
et chargée sans aucune requête HTTP supplémentaire.
Pourquoi encoder une image en Base64 ?
Les motivations courantes :
- Réduire les requêtes HTTP : intégrer une icône directement dans le CSS plutôt que la charger en plus du document
- Email signature avec image inline : pas de risque que l'image soit bloquée comme contenu distant
- Web Components / Web Workers : où charger une ressource externe pose souvent un problème de scope ou de CORS
- Storage local (LocalStorage, IndexedDB, base de données) : sérialiser une vignette d'avatar en string
- Self-contained snippets : un fichier HTML qui se suffit à lui-même, sans dépendance externe
Cas d'usage typiques
Quelques contextes concrets où l'encodage Base64 image se justifie :
- Icônes SVG inline en CSS (
background-image: url("data:image/svg+xml;base64,…")) - Signatures email personnalisées avec logo
- Prototypage rapide d'une page autonome partagée par e-mail
- Web components autonomes (un seul fichier déployable)
- Génération de PDF côté navigateur (jsPDF) avec vignettes embarquées
- Données de test (mocks) qui contiennent des images
Comment l'utiliser
Trois étapes :
- Téléversez votre image (PNG, JPG, SVG, WebP, GIF) via la zone de dépôt
- Cliquez sur « Encoder »
- Copiez la Data URI résultante avec le bouton dédié, et collez-la dans votre HTML, CSS ou JSON
Limites et bonnes pratiques
Le Base64 n'est pas une solution miracle. Quelques précautions :
- Le Base64 augmente la taille de ~33 % : 4 caractères ASCII pour chaque 3 bytes binaires
- Les images encodées ne sont pas mises en cache séparément par le navigateur ; elles sont rechargées avec le HTML/CSS qui les contient
- À privilégier pour les images de moins de 10 KB ; au-delà, un fichier externe est généralement plus efficace
- Pour le SVG, préférer l'encodage URL (via
encodeURIComponent) plutôt que Base64 : le résultat est plus court et reste parsable comme du texte - Outils de build modernes (Webpack, Vite) automatisent le choix Base64 vs. fichier externe via une taille seuil configurable
Exemples concrets
HTML :
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgYAAAAAMAAS+rJYwAAAAASUVORK5CYII=" alt="pixel">
CSS :
.icon {
background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0i…") no-repeat;
width: 16px;
height: 16px;
}
JSON (mock data) :
{
"user": {
"name": "Adrien",
"avatar": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA…"
}
}
FAQ
Quelle est la différence entre Base64 et binaire ?
Le binaire représente les octets bruts d'un fichier. Le Base64 est un encodage qui transforme ces octets en 64 caractères ASCII imprimables (A-Z, a-z, 0-9, +, /). Les contextes texte (HTML, JSON, email) ne peuvent pas transporter du binaire ; le Base64 résout ce problème au prix d'un surcoût de taille de 33 %.
Pourquoi ma Data URI est-elle si longue ?
Une image de 30 KB en binaire devient ~40 KB en Base64. Et chaque caractère est un byte ASCII, donc oui, la chaîne est longue. C'est inhérent à l'encodage. Pour les grosses images, garder un fichier externe.
Tous les navigateurs supportent les Data URI ?
Oui, sans exception parmi les navigateurs modernes (Chrome, Firefox, Safari, Edge depuis IE8 même). Limites historiques : IE8 plafonnait à 32 KB. Plus de souci aujourd'hui sur le web.
Comment décoder une Data URI ?
Notre décodeur d'image Base64 fait l'opération inverse : collez votre Data URI, récupérez le fichier image (PNG, JPG, SVG, WebP) prêt à téléverser ou enregistrer.
Base64 vs. URL encoding pour les SVG ?
Pour le SVG, l'URL encoding (avec encodeURIComponent) produit une chaîne plus courte que
Base64 et reste lisible comme du texte. C'est le choix recommandé en CSS quand on intègre un SVG inline.
Pour les formats binaires (PNG, JPG), Base64 reste obligatoire.
L'encodage Base64 affecte-t-il la qualité de l'image ?
Non. L'encodage est lossless : c'est une bijection octet binaire ↔ chaîne Base64. Les pixels d'origine sont strictement préservés. Seule la taille du fichier transporté augmente de 33 %.
Questions fréquentes
Quand vaut-il mieux éviter la Data URI ?
Dès qu'une image dépasse une dizaine de kilo-octets et qu'elle est susceptible d'être réutilisée sur plusieurs pages, un fichier externe est préférable. Le navigateur peut alors la mettre en cache séparément du HTML qui la référence. Une Data URI rallonge le document principal et oblige à retélécharger l'image à chaque chargement de page.
Mon image est-elle envoyée sur un serveur ?
L'image transite par notre serveur le temps de l'encodage et n'est pas conservée après le retour
du résultat. Aucun service tiers n'est sollicité. Pour un fichier strictement confidentiel,
l'équivalent local est base64 -w 0 mon-image.png sur Linux ou
certutil -encode sous Windows.
Pourquoi privilégier l'URL encoding plutôt que base64 pour un SVG ?
Un SVG est du texte XML. Encodé en base64, il devient illisible et environ 33 % plus volumineux.
En URL encoding via encodeURIComponent, le résultat reste lisible et plus court.
En CSS, écrire url("data:image/svg+xml;utf8,<svg…>") avec les caractères
spéciaux échappés donne un fichier final plus petit qu'une version base64.
Quelle taille maximale puis-je encoder ?
La taille de fichier acceptée par le formulaire est limitée à quelques mégaoctets, suffisant pour la grande majorité des icônes, vignettes et avatars. Au-delà, vous sortez du cas d'usage raisonnable d'une Data URI : un fichier statique servi par votre CDN sera bien plus efficace pour le navigateur comme pour vos métriques Core Web Vitals.
Pourquoi le navigateur ne met-il pas en cache une Data URI ?
Le cache HTTP fonctionne par URL. Une Data URI fait partie du document qui la contient, donc elle
est rechargée avec lui. Une icône externe en icon.png, à l'inverse, est mise en cache
une fois pour toutes et réutilisée sur toutes les pages qui la référencent. C'est la principale
raison pour laquelle la Data URI reste un outil de niche, pas un remplacement général.
Exemple de requête
curl -X POST https://cdrn.fr/api/v1/tools/base64-image-encoder/execute \
-F "file=@/path/to/file"
Schéma d'entrée
| Champ | Type | Requis | Défaut |
|---|---|---|---|
file |
file | ✓ | – |
cet outil attend un fichier - utilisez Content-Type multipart/form-data au lieu de application/json
Points d'accès
GET https://cdrn.fr/api/v1/tools- liste tous les outils disponiblesGET https://cdrn.fr/api/v1/tools/base64-image-encoder- récupère le schéma de cet outilPOST https://cdrn.fr/api/v1/tools/base64-image-encoder/execute- exécute cet outil avec un payload JSON