> base64 | decode | JPG <
// Décodez les chaînes Base64 et URI de données en photos JPG / JPEG — EXIF préservés, aperçu instantané, téléchargement en un clic
Le JPEG décodé apparaîtra ici
Aucune recompression
Les octets JPEG qui sortent du décodeur sont bit à bit identiques à ce qui a été encodé — même qualité, mêmes EXIF, mêmes coefficients DCT.
Décodage local
Votre chaîne Base64 est décodée avec atob() entièrement dans le navigateur. Aucun téléversement. Aucun serveur. Aucune analytique sur la charge utile.
Aperçu en direct
Voyez immédiatement la photo décodée et ses dimensions — téléchargez en .jpg en un seul clic.
// À PROPOS DE BASE64 VERS JPG
Ce que cet outil accepte
- >URI de données : data:image/jpeg;base64,/9j/4AAQSkZ…
- >Charge utile Base64 JPEG brute (commence par /9j/)
- >Base64 avec espaces / retours à la ligne intégrés
- >Alphabet standard RFC 4648 (+/, padding = optionnel)
- >Base64 URL-safe (-_) — normalisé automatiquement lors du décodage
- >JPEG multi-parties (marqueurs JFIF, EXIF, Adobe, SPIFF)
Cas d'usage courants
- >Récupérer une photo depuis une réponse d'API JSON
- >Extraire un avatar de profil d'une colonne TEXT de base de données
- >Décoder un champ image CMS stocké en URI de données
- >Reconstruire une photo depuis une partie MIME d'e-mail
- >Afficher une capture d'appareil photo envoyée via WebSocket
- >Déboguer une balise <img src="data:image/jpeg;base64,…"> cassée
- >Applications hors ligne d'abord qui mettent en cache les photos en Base64
Comment fonctionne le décodage Base64 → JPG
Le décodeur retire tout préfixe d'URI de données, normalise les espaces et les caractères URL-safe, puis appelle atob() pour convertir chaque groupe Base64 de 4 caractères en 3 octets binaires. Le résultat est enveloppé dans un Blob avec le type MIME image/jpeg et prévisualisé avec une balise <img>. Parce que Base64 est une transformation binaire vers texte bijective, le JPEG en sortie est bit à bit identique à l'original — son hachage SHA-256 correspond, et aucune qualité n'est perdue.
Exemple d'URI de données JPEG:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/wAALCAABAAEBAREA/8QAFQABAQAAAAAAAAAAAAAAAAAAAAv/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAA/AKp//9k=
Performances et compatibilité
- >Le décodage est en O(n) sur la longueur de la charge utile — gère 100 Mo+ sans problème
- >Utilise atob() natif + Uint8Array — aucune bibliothèque tierce
- >Prend en charge les JPEG riches en EXIF de chaque grand fabricant d'appareil photo
- >Fonctionne dans Chrome, Firefox, Safari, Edge et les navigateurs mobiles
- >Aperçu avec zoom par pincement sur les appareils mobiles
- >Téléchargements via URL Blob — aucun aller-retour serveur
// COMMENT DÉCODER BASE64 EN JPG
Étape 1 : Coller
Collez la chaîne Base64 ou l'URI de données complète dans le champ d'entrée
Étape 2 : Décoder
Cliquez sur [DECODE] — le JPEG est affiché instantanément
Étape 3 : Inspecter
Vérifiez la photo, ses dimensions et la taille du fichier avant d'enregistrer
Étape 4 : Télécharger
Cliquez sur [DOWNLOAD .jpg] pour enregistrer sur disque un JPEG identique au bit près
// EXEMPLES DE CODE — BASE64 VERS JPG
JavaScript (Navigateur)
// Decode Base64 → JPEG Blob → preview
const b64 = '/9j/4AAQSkZJRgAB...';
const bin = atob(b64);
const arr = new Uint8Array(bin.length);
for (let i = 0; i < bin.length; i++) arr[i] = bin.charCodeAt(i);
const blob = new Blob([arr], { type: 'image/jpeg' });
document.getElementById('preview').src = URL.createObjectURL(blob);
Décoder une charge utile Base64 JPEG brute, l'envelopper dans un Blob et l'afficher avec <img>. Les URI de données peuvent être définies directement sur src.
Node.js
const fs = require('fs');
const b64 = '/9j/4AAQSkZJRgAB...';
fs.writeFileSync('out.jpg', Buffer.from(b64, 'base64'));
Décoder du texte Base64 en fichier JPEG en utilisant le Buffer intégré de Node.
Python
import base64
with open('out.jpg', 'wb') as f:
f.write(base64.b64decode('/9j/4AAQSkZJRgAB...'))
Bibliothèque standard uniquement — Base64 → octets JPEG → fichier.
PHP
<?php
file_put_contents('out.jpg', base64_decode('/9j/4AAQSkZJRgAB...'));
Ligne unique utilisant base64_decode() et file_put_contents().
Shell (macOS / Linux)
echo '/9j/4AAQSkZJRgAB...' | base64 -d > out.jpg
POSIX base64 -d lit la chaîne depuis stdin et écrit le JPEG sur disque.
// FAQ — BASE64 VERS JPG
Q : Qu'est-ce que le décodage Base64 vers JPG ?
R : Il inverse un JPEG encodé en Base64 pour revenir à sa forme binaire d'origine. Le décodeur lit 4 caractères ASCII à la fois dans la chaîne Base64, les recherche dans l'alphabet RFC 4648 et produit 3 octets binaires par groupe. Le tableau d'octets résultant est un fichier JPEG complet et valide — mêmes coefficients DCT, mêmes tables de Huffman, mêmes métadonnées EXIF, même qualité qu'avant l'encodage.
Q : Comment savoir si la chaîne Base64 est vraiment un JPEG ?
R : Tout JPEG commence par les deux octets magiques FF D8 (Start-Of-Image). Lorsque ces octets sont encodés en Base64, les 4 premiers caractères sont toujours /9j/. Donc toute chaîne Base64 qui commence par /9j/4AAQ (en-tête JFIF) ou /9j/2wC (nombreux appareils photo de smartphone utilisant Adobe APP14) est un JPEG. D'autres formats ont des préfixes différents : iVBORw0KGgo pour PNG, R0lGOD pour GIF, UklGR pour WebP.
Q : Puis-je décoder une URI de données directement ?
R : Oui. Si votre chaîne commence par data:image/jpeg;base64,, le décodeur retire ce préfixe automatiquement et traite la charge utile. Si vous n'avez que la portion Base64 brute, notre outil détecte le nombre magique JPEG (/9j/) et enveloppe les octets décodés en image/jpeg pour l'aperçu. Les espaces, sauts de ligne et tabulations sont tous supprimés avant le décodage, donc vous pouvez coller une valeur JSON formatée directement.
Q : Le décodage réduit-il la qualité de mon JPEG ?
R : Non. Le décodage Base64 est une transformation binaire pure — chaque caractère Base64 correspond de manière déterministe à 6 bits, et 4 caractères se décodent en 3 octets. Les octets JPEG qui en sortent sont bit à bit identiques à ce qui a été encodé, donc la qualité est celle du JPEG original lors de sa sauvegarde. Un hachage SHA-256 du fichier décodé correspondra au hachage de l'original. Si votre photo décodée semble moins bonne qu'attendu, la perte de qualité s'est produite lors de la première sauvegarde du JPEG, pas pendant l'aller-retour Base64.
Q : Le JPG décodé est cassé — qu'est-ce qui pourrait mal avoir fonctionné ?
R : Causes typiques :
• Chaîne tronquée — le Base64 a été coupé quelque part. Un JPEG complet se termine par FF D9 (End-Of-Image), qui s'encode en /9k= ou 2Q== en Base64. Si votre chaîne ne se termine pas par un de ces motifs plus un padding optionnel, elle est incomplète.
• Double-encodée — le JPEG a été encodé en Base64 deux fois. Décodez-le à nouveau.
• Alphabet URL-safe — si la chaîne utilise -_ au lieu de +/, certains décodeurs la rejettent. Notre outil normalise les deux.
• En fait un format différent — la charge utile est PNG ou WebP. Utilisez notre décodeur Base64 → Image générique qui détecte automatiquement le format.
Q : Mes métadonnées EXIF sont-elles préservées après le décodage ?
R : Oui. Le segment EXIF APP1 (modèle d'appareil photo, GPS, date/heure, objectif, ISO, balance des blancs, orientation, etc.) fait partie du flux d'octets JPEG. Parce que Base64 est bit à bit réversible, chaque octet — y compris les EXIF — est restauré. Si vous avez besoin de photos sans EXIF pour des raisons de confidentialité, supprimez les métadonnées après le décodage à l'aide d'un outil comme exiftool -all= out.jpg ou une réexportation basée sur un canvas dans le navigateur.
Q : Puis-je décoder Base64 en JPG dans le terminal ?
R : Oui. Sur macOS et Linux : echo '/9j/4AAQSkZJRgAB…' | base64 -d > out.jpg
(l'ancien base64 de macOS utilise -D.)
Sur Windows PowerShell : [IO.File]::WriteAllBytes('out.jpg', [Convert]::FromBase64String('/9j/4AAQSkZJRgAB…'))
Si votre entrée est une URI de données complète, faites-la passer d'abord par sed 's|^data:.*base64,||' pour retirer le préfixe.
Q : Quelle taille de JPG Base64 puis-je décoder ?
R : Jusqu'à la limite de mémoire de votre navigateur. Un JPEG décodé de 100 Mo a besoin d'environ 135 Mo de texte Base64, que les navigateurs de bureau modernes gèrent sans problème. Les navigateurs mobiles sont fiables jusqu'à ~40 Mo. Pour des photos extrêmement grandes (exports JPEG convertis depuis RAW depuis des appareils photo moyen format), envisagez un décodage côté serveur : base64 -d photo.b64 > photo.jpg est bien plus rapide qu'un aller-retour navigateur.
Q : Le décodeur fonctionne-t-il hors ligne ?
R : Oui, après le chargement initial de la page. Tout le décodage utilise les API intégrées au navigateur (atob(), Uint8Array, Blob, URL.createObjectURL()), aucune ne nécessite de connexion réseau. Vous pouvez le confirmer en désactivant votre réseau et en continuant à décoder — l'aperçu et le téléchargement continuent tous deux de fonctionner.
Q : Le JPEG Base64 est-il chiffré ou privé ?
R : Non. Base64 est un encodage, pas un chiffrement. Quiconque possède votre chaîne Base64 peut la décoder en retour vers la photo originale en quelques millisecondes, et les données EXIF (y compris les coordonnées GPS) suivent. Si le JPEG contient des informations sensibles, chiffrez-le (AES-GCM, age, PGP) avant d'appliquer Base64, et ne transportez toujours la chaîne que via HTTPS.
Q : Le décodage est-il côté client — est-ce que quelque chose est téléversé ?
R : Rien n'est téléversé. Chaque étape — retirer le préfixe, normaliser les espaces, appeler atob(), construire le Blob, rendre la balise <img>, déclencher le téléchargement — se produit dans votre navigateur. Ouvrez l'onglet Réseau des dev-tools de votre navigateur pendant le décodage et vous verrez zéro requête sortante pour votre charge utile Base64. Cet outil est sûr pour les captures d'écran confidentielles, les photos personnelles et les données réglementées.
Q : Comment décoder Base64 en JPG dans du code de production ?
R : En Node.js : fs.writeFileSync('out.jpg', Buffer.from(b64, 'base64')). En Python : open('out.jpg','wb').write(base64.b64decode(b64)). En Go : b, _ := base64.StdEncoding.DecodeString(b64); os.WriteFile("out.jpg", b, 0644). En Java : Files.write(Path.of("out.jpg"), Base64.getDecoder().decode(b64)). En Rust : std::fs::write("out.jpg", base64::decode(b64)?)?. En Ruby : File.binwrite('out.jpg', Base64.decode64(b64)). En PHP : file_put_contents('out.jpg', base64_decode($b64)).
Q : Base64 vers JPG vs Base64 vers PNG — lequel utiliser ?
R : Regardez le préfixe de la chaîne Base64. S'il commence par /9j/, c'est JPEG — utilisez Base64 → JPG. S'il commence par iVBORw0KGgo, c'est PNG — utilisez Base64 → PNG. Vous ne pouvez pas forcer un décodeur JPEG à produire du PNG (ou vice versa) ; les octets magiques disent la vérité. En cas de doute, utilisez le décodeur générique qui détecte automatiquement le format et enregistre avec la bonne extension.