Comment convertir du Base64 en JPG
- Collez la chaîne dans la zone. Le Base64 brut qui commence par
/9j/et les URIdata:image/jpeg;base64,complètes fonctionnent tous les deux, tout comme une balise<img>ou une règle CSS qui en contient une. - La ligne d’état confirme Base64 valide et Détecté JPEG, et l’aperçu montre la photo avec ses dimensions en pixels et la taille du fichier.
- Indiquez un Nom du fichier et appuyez sur Télécharger le fichier.
Les photos volumineuses ne posent pas de problème. Une chaîne Base64 de plusieurs mégaoctets peut être collée ou ouverte depuis un fichier .txt ; au-delà de 4 Mo, elle est décodée sans être affichée dans la zone de texte.
Ce que vous récupérez
Le décodage renvoie exactement les octets qui avaient été encodés. La qualité ne change pas et rien n’est recompressé. Cela signifie aussi que tout ce que contenait le fichier d’origine revient avec lui :
- Les métadonnées EXIF : modèle de l’appareil, heure de prise de vue, orientation et, si la localisation était activée, coordonnées GPS. Si vous avez reçu le Base64 de quelqu’un d’autre, la photo peut en dire plus que cette personne ne le voulait. Si vous comptez la transmettre, supprimez d’abord les métadonnées, par exemple avec JPG en Base64 et Supprimer les métadonnées (EXIF).
- Les miniatures intégrées et les profils de couleur.
- Les données ajoutées après la fin de l’image. Les photos animées de certains téléphones Android ajoutent une courte vidéo après le JPEG, ce qui explique qu’une telle « photo » puisse être plusieurs fois plus grosse que prévu.
L’empreinte SHA-256 sous l’aperçu permet de prouver que le fichier enregistré correspond à une empreinte qu’on vous a fournie.
Distinguer un JPEG de ce qui prétend en être un
Le décodeur se fie aux octets et ignore l’étiquette. Une URI data:image/jpeg qui contient des données PNG, ou un champ d’API nommé photo_jpg qui contient du WebP, est signalé comme tel : « Cela ressemble à WebP, pas à un fichier JPEG », avec un bouton Télécharger en .webp.
Les CDN d’images choisissent le format de sortie d’après l’en-tête Accept du navigateur : une image récupérée sous le nom photo.jpg puis encodée en Base64 dans un navigateur peut donc être du WebP ou de l’AVIF. Une image prise avec « Copier l’image » dans un navigateur arrive en général dans le presse-papiers en PNG, même si la page affichait un JPEG : ce qui l’a encodée depuis le presse-papiers a donc produit du Base64 PNG.
S’il vous faut vraiment un JPEG, renommer ne servira à rien. Enregistrez le fichier dans son vrai format, convertissez-le avec Image en Base64 et Convertir en JPEG, puis décodez ce résultat ici.
Repérer un JPEG tronqué
Les fichiers JPEG se terminent par le marqueur FF D9. Selon le reste de la division de la longueur du fichier par 3, cela donne l’une de trois terminaisons Base64 :
| Longueur du fichier mod 3 | Derniers octets | Le Base64 finit par |
|---|---|---|
| 2 | FF D9 | /9k= |
| 1 | .. FF D9 | /2Q== |
| 0 | .. FF D9 | /Z, en général //Z |
Un JPEG tronqué se décode quand même. Les navigateurs dessinent la partie reçue : le bas de la photo est alors gris ou absent, ou un JPEG progressif paraît flou. Les causes typiques sont une colonne de base de données trop courte, un logger qui limite la longueur des lignes et une messagerie qui découpe les textes longs. Copiez à nouveau la valeur depuis sa source.
La même vérification en Python :
import base64
def check_jpeg(b64: str) -> str:
data = base64.b64decode(b64.split(",", 1)[-1])
if not data.startswith(b"\xff\xd8\xff"):
return "not a JPEG"
end = data.rfind(b"\xff\xd9")
if end < 0:
return "truncated: no end-of-image marker"
extra = len(data) - end - 2
return f"complete, {extra} bytes after the end marker" if extra else "complete"
Considérez-la comme un test rapide. Un JPEG d’appareil photo contient une miniature EXIF avec son propre FF D9 : une photo fortement tronquée peut donc quand même passer. Base64 en Python en dit plus sur le décodage de fichiers.
Problèmes courants
- Erreur « Longueur incorrecte ». Un caractère a été perdu ou ajouté, généralement à un saut de ligne pendant la copie. Copiez à nouveau la valeur entière.
- Caractère
\non valide. La chaîne vient d’un JSON avec des barres obliques échappées (\/9j\/4AAQ...). Passez-la dans Réparer du Base64 ou retirez d’abord les échappements du JSON. - La photo est énorme. Le Base64 masque la taille réelle d’une image : une chaîne de 4 Mo correspond à une photo de 3 Mo. La ligne Taille affiche la taille décodée, et les dimensions en pixels sont indiquées au-dessus de l’aperçu.
FAQ
Le fichier décodé doit-il être en .jpg ou en .jpeg ?
Peu importe. Les deux extensions désignent le même format et tous les programmes acceptent les deux. L’outil utilise .jpg ; saisissez jpeg dans Extension si un système exige la forme longue.
Comment vérifier qu'une chaîne Base64 JPEG est complète ?
Un JPEG complet se termine par les octets FF D9 : son Base64 finit donc en général par /9k=, /2Q== ou /Z. Une chaîne qui se termine autrement et une image dont le bas manque indiquent toutes deux une troncature.
Puis-je voir les données EXIF de la photo décodée ?
L’outil ne liste pas les champs EXIF, mais Afficher le dump hex révèle un bloc Exif et souvent la marque de l’appareil dans la colonne de texte. Téléchargez le fichier et ouvrez-le dans une visionneuse EXIF pour la liste complète.
Pourquoi la photo décodée est-elle tournée dans certaines applications ?
Les téléphones stockent souvent les pixels de côté et enregistrent la rotation dans une balise EXIF. Les navigateurs l’appliquent, l’aperçu a donc le bon sens, mais les logiciels qui ignorent la balise affichent l’orientation brute. Les octets sont inchangés dans les deux cas.