> JPG | encode | data-uri <

// Encodez des photos JPG / JPEG en chaînes Base64 et URI de données — EXIF, coefficients DCT et qualité préservés

🖼️

Déposez un JPG / JPEG ici ou cliquez pour sélectionner

Cliquez pour parcourir les fichiers JPG / JPEG

// accepte : JPG, JPEG (.jpg, .jpeg, image/jpeg)
0 caractères
[FAITHFUL]

Bit à bit identique

Votre JPEG n'est jamais recompressé. Les coefficients DCT, tables de quantification et métadonnées EXIF survivent à l'aller-retour inchangés.

[PRIVATE]

Traitement local

Les photos sont encodées dans le navigateur avec FileReader + btoa(). Aucun téléversement, aucun serveur, aucune analytique sur les octets de votre image.

[READY]

Prêt à coller

Copiez une URI data:image/jpeg;base64,… conforme aux standards directement dans HTML, CSS, e-mails ou charges utiles d'API JSON.

// FAQ — JPG VERS BASE64

Q : Qu'est-ce que l'encodage JPG vers Base64 ?

R : Il réécrit les octets binaires d'un fichier .jpg / .jpeg sous forme de chaîne compatible ASCII en utilisant l'alphabet Base64 (RFC 4648). Le texte résultant peut être intégré dans HTML, CSS, e-mails, corps JSON ou tout autre canal texte uniquement sans nécessiter de fichier séparé. Surtout, le JPEG sous-jacent n'est pas réencodé — chaque coefficient DCT, table de quantification, table de Huffman et marqueur de métadonnées EXIF/IPTC/XMP est préservé.

Q : Comment encoder un JPG en Base64 ?

R : Glissez un fichier .jpg ou .jpeg dans la zone de téléversement (ou cliquez pour parcourir). L'outil l'ouvre avec FileReader.readAsDataURL(), qui produit une URI data:image/jpeg;base64,/9j/4AAQSkZ… prête à coller. Choisissez URI de données pour une intégration directe <img>, ou Charge utile Base64 uniquement si votre API attend la charge utile brute sans le préfixe data:image/jpeg;base64,.

Q : Encoder un JPG en Base64 dégrade-t-il la qualité de l'image ?

R : Non. Base64 est une transformation binaire vers texte réversible — pas un réencodage. La compression originale du JPEG (quel que soit le niveau de qualité, le mode de sous-échantillonnage et les tables de Huffman avec lesquels il a été enregistré) est préservée octet par octet. Si vous décodez le Base64 en fichier, son hachage SHA-256 correspond à l'original. La seule perte de qualité qui pourrait affecter un JPEG a déjà eu lieu lors de sa première sauvegarde depuis un éditeur ; Base64 n'en ajoute aucune de plus.

Q : Pourquoi toutes les chaînes Base64 JPG commencent par <code>/9j/</code> ?

R : Les deux premiers octets de tout JPEG sont le marqueur Start-Of-Image FF D8, suivi d'un marqueur d'application comme FF E0 (JFIF) ou FF E1 (EXIF). Lorsque vous encodez en Base64 les 3 premiers octets FF D8 FF, vous obtenez toujours /9j/. Donc toute chaîne commençant par /9j/4AAQ (JFIF) ou /9j/2wC (nombreux appareils photo de smartphone) est de manière fiable un JPEG — une vérification utile lors du débogage.

Q : De combien un JPG devient-il plus gros après l'encodage Base64 ?

R : Base64 ajoute environ 33 % de surcharge : taille_base64 = 4 × ⌈taille_octets / 3⌉. Une photo de 250 Ko devient ~340 Ko de texte. Comme les JPEG sont déjà compressés, gzip/Brotli sur la chaîne Base64 ne récupère que ~10 %. Pour les images en ligne, gardez la source sous ~5 Ko (≈ 6,8 Ko encodé) sinon vous alourdirez votre HTML/CSS et nuirez aux performances du premier affichage.

Q : Comment intégrer un JPG en Base64 dans du HTML ?

R : Collez l'URI de données complète dans l'attribut src :
<img src="data:image/jpeg;base64,/9j/4AAQSkZ…" alt="cover">
Aucune requête HTTP n'est effectuée — le navigateur décode le Base64 et affiche la photo immédiatement. C'est pourquoi les miniatures JPEG en ligne sont populaires dans les sections hero au-dessus de la ligne de flottaison, les signatures d'e-mail et les rapports HTML en fichier unique.

Q : Comment encoder un JPG en Base64 en JavaScript, Node, Python, PHP, Go ?

R :
JavaScript (navigateur) : new FileReader() + .readAsDataURL(jpgFile) → le result est l'URI de données
Node.js : fs.readFileSync('photo.jpg').toString('base64')
Python : base64.b64encode(open('photo.jpg','rb').read()).decode()
PHP : base64_encode(file_get_contents('photo.jpg'))
Go : base64.StdEncoding.EncodeToString(jpgBytes)
Ruby : Base64.strict_encode64(File.read('photo.jpg'))
Bash : base64 -w0 photo.jpg (GNU) ou base64 -i photo.jpg -o out.txt (macOS)

Q : Mes données EXIF sont-elles préservées lorsque j'encode un JPG en Base64 ?

R : Oui, par défaut. Le segment EXIF (modèle d'appareil photo, date/heure, coordonnées GPS, objectif, exposition, balance des blancs, orientation) vit à l'intérieur du JPEG sous forme de marqueurs APP1. Parce que Base64 est une transformation bit à bit, les marqueurs survivent intacts — lorsque l'image est décodée, les EXIF sont exactement comme avant. Si la confidentialité compte (coordonnées GPS, numéros de série), supprimez les EXIF avant l'encodage avec un outil comme exiftool -all= ou une réexportation via un canvas navigateur, car Base64 en lui-même ne les supprimera pas pour vous.

Q : Quand utiliser JPG → Base64 plutôt qu'un JPG en fichier séparé ?

R : Utilisez les URI de données JPEG Base64 lorsque :
• l'image est petite (< 5 Ko) et critique pour le premier affichage
• vous envoyez une photo dans un corps d'API JSON, une mutation GraphQL ou une trame WebSocket
• vous construisez un e-mail HTML autonome, un rapport ou une exportation PDF qui ne peut pas compter sur des URL CDN externes
• vous sérialisez une photo dans une colonne TEXT d'une base de données (quand vous ne pouvez pas utiliser un BLOB)
Préférez une URL .jpg normale quand l'image est grande, réutilisée sur plusieurs pages ou nécessite ses propres en-têtes de mise en cache à long terme.

Q : JPG vs JPEG — sont-ils des formats différents ?

R : Non. .jpg et .jpeg sont juste des extensions de fichier différentes pour le même format (Joint Photographic Experts Group). Les premières limites Windows 8.3 pour les noms de fichier forçaient des extensions à 3 lettres, c'est pourquoi .jpg s'est imposé. Les systèmes modernes acceptent les deux. Le type MIME est toujours image/jpeg, et le préfixe URI de données Base64 est toujours data:image/jpeg;base64, — notre outil traite les deux extensions de manière identique.

Q : L'encodage Base64 est-il une forme de compression d'image ?

R : Non — c'est l'inverse. Le JPEG lui-même est déjà compressé avec du codage DCT + Huffman (atteignant une réduction de 10 à 20 fois par rapport aux données pixel brutes). Base64 rend ensuite le fichier ~33 % plus grand en échange d'une compatibilité ASCII. Vous devriez quand même utiliser Base64 parce que certains canaux (attributs HTML, chaînes JSON, e-mails, URL) ne peuvent pas transporter du binaire brut. Mais n'en attendez aucune économie de taille ; envisagez au contraire toujours gzip/Brotli par-dessus le texte Base64.

Q : Puis-je encoder un JPEG en une charge utile Base64 URL-safe pour l'utiliser dans une URL ?

R : Oui — passez à notre encodeur Base64url (RFC 4648 §5) qui utilise l'alphabet -_ au lieu de +/ et omet le padding = de fin, produisant une charge utile sûre à insérer dans une chaîne de requête ou un JWT. Les charges utiles JPEG Base64 standard brutes font généralement des centaines de Ko de long et dépassent les limites de longueur d'URL de nombreux systèmes (2 à 8 Ko selon le navigateur/serveur), donc un lien vers un fichier est presque toujours une meilleure idée que l'encodage URL de toute la photo.

Q : Quelle taille de JPG puis-je encoder avant que mon navigateur manque de mémoire ?

R : L'encodage est fait avec FileReader en mode flux, puis btoa() est appelé sur le résultat. Les navigateurs de bureau modernes gèrent des entrées de 100 à 200 Mo sans problème ; les navigateurs mobiles gèrent de manière fiable jusqu'à ~40 Mo avant de rencontrer une pression mémoire. Pour des images véritablement énormes (exports RAW-vers-JPEG depuis des appareils photo moyen format), envisagez un encodeur côté serveur ou un traitement par morceaux — notre outil vous avertit si votre photo dépasse 100 Mo.

Q : JPG → Base64 vs PNG → Base64 — lequel utiliser ?

R : Utilisez JPG → Base64 pour les photographies, les pellicules, les images de réseaux sociaux et tout ce qui a des dégradés lisses où une compression JPEG à 80-90 % est acceptable. Une photo 1080p typique fait ~200 Ko en JPEG contre ~2 Mo en PNG. Utilisez PNG → Base64 pour les icônes, logos, captures d'écran, diagrammes et tout ce qui a de la transparence ou des bords nets. Mixer les deux : un JPG Base64 pour la photo hero plus une icône de superposition nette en PNG Base64 est un schéma courant.

// OTHER LANGUAGES