Convertir une image en base64
Cet outil encode une image en base64 et produit un data URI complet, directement collable dans du HTML, du CSS ou du JSON. L’image voyage alors sous forme de texte, intégrée au code plutôt que servie comme fichier séparé. La conversion s’exécute dans votre navigateur, sans aucun envoi.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
À quoi sert un data URI
Encoder une image en base64 la transforme en une chaîne de texte que l’on insère directement dans une page. Une petite icône embarquée dans le CSS ou le HTML évite une requête réseau supplémentaire, et une image glissée dans du JSON ou un e-mail voyage sans pièce jointe distincte. La contrepartie est connue : le texte base64 pèse environ un tiers de plus que le fichier d’origine, ce qui réserve la technique aux petites images.
Ce que l’outil produit
Vous obtenez le data URI complet, préfixe compris — le type du fichier et l’indication d’encodage — prêt à coller sans retouche. Selon le contexte, vous l’utilisez comme source d’une balise d’image, comme arrière-plan en CSS ou comme valeur dans un objet. Le type est déduit du fichier fourni, ce qui évite l’erreur classique du préfixe qui ne correspond pas au format réel de l’image.
Garder la mesure sur la taille
Le base64 brille sur les petits éléments : logo léger, pictogramme, vignette. Sur une grande photo, la chaîne devient vite énorme et alourdit le fichier qui la contient au lieu de l’alléger. La règle simple : embarquez ce qui est petit et réutilisé, servez comme fichier ce qui est lourd. L’outil accepte jusqu’à 15 Mo, mais le bon usage se situe bien en dessous.
Conversion locale, rien n’est envoyé
Tout se fait dans le navigateur : l’image est lue sur votre appareil et encodée sur place, sans transiter par nos serveurs. C’est gratuit, sans limite et sans inscription. Pour du contenu que vous ne souhaitez pas téléverser — maquette en cours, visuel confidentiel — cette exécution locale répond à la question avant même qu’elle se pose.
Cas d’usage
Icône intégrée au CSS
Un développeur encode un petit pictogramme en data URI pour l’utiliser comme arrière-plan sans ajouter de requête au chargement de la page.
Image dans un e-mail HTML
Studio Lumen SAS embarque un logo léger directement dans le code d’un e-mail plutôt que de le joindre comme fichier séparé.
Visuel dans un fichier JSON
Une équipe glisse une vignette encodée dans une réponse de test, pour disposer d’un jeu de données autoportant.
Maquette hors ligne
Camille Moreau intègre quelques images en base64 dans une maquette HTML statique, afin qu’elle s’affiche sans dossier d’images à côté.
Questions fréquentes
L’image est-elle envoyée sur un serveur ?
Non. L’encodage se fait dans votre navigateur : l’image est lue et convertie sur votre appareil, sans transiter nulle part. Rien n’est conservé.
Le préfixe du data URI est-il inclus ?
Oui. Vous récupérez la chaîne complète, avec le type de fichier et l’indication d’encodage, prête à coller telle quelle dans votre code.
Le base64 alourdit-il le fichier ?
La chaîne pèse environ un tiers de plus que l’image d’origine. C’est pourquoi le base64 convient aux petits éléments réutilisés, pas aux grandes photos.
Est-ce gratuit et sans inscription ?
Oui. La conversion s’exécutant localement, elle est gratuite, sans quota et sans compte à créer.
Quelle est la taille maximale acceptée ?
Jusqu’à 15 Mo par fichier, mais le bon usage reste bien en dessous : le base64 est fait pour de petites images, pas pour de gros visuels.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/image/to-base64 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/to-base64", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/to-base64",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/to-base64", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/to-base64", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"image": "https://ejemplo.com/imagen.jpg"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.to_base64",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 15 |
max_megapixels | 12 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |