ImageConver

Maître Base64 pour le développement front-end

Un guide complet pour comprendre Base64 encodage, décodage et applications pratiques dans la conception Web moderne.

Essayer Base64 Encodage/Décodage

Qu'est-ce que c'est exactement Base64?

Base64 est un système de codage binaire en texte qui convertit les données binaires (comme les images, les fichiers ou les octets bruts) en caractères ASCII. Cette conversion permet aux données binaires d'être transmises et stockées en toute sécurité dans des systèmes conçus pour les données texte uniquement, tels que les protocoles de courrier électronique, HTML ou les réponses API.

Le nom « Base64 » vient de son utilisation de 64 caractères distincts (A-Z, a-z, 0-9, « + » et « / ») pour représenter des valeurs binaires. Chaque Base64 Le caractère code 6 bits de données, ce qui en fait un moyen efficace de gérer le contenu binaire dans des environnements centrés sur le texte.

Contrairement au cryptage, Base64 n’est pas une mesure de sécurité, c’est uniquement pour le formatage des données. N’importe qui peut décoder le contenu Base64 avec des outils de base, il ne doit donc jamais être utilisé pour protéger des informations sensibles.

Jeu de caractères Base64

UN
B
C
D
E
F
G
H
je
J.
K
L
M.
N
Ô
P.
Q
R.
S
T
U
V
W
X
Oui
Z
un
b
c
d
e
f
g
h
…
x
oui
z
0
1
2
3
4
5
6
7
8
9
+
/

* « = » est utilisé comme caractère de remplissage pour les données incomplètes

Comment Base64 Travail d'encodage ?

  1. 1

    Convertir des données binaires en octets de 8 bits

    Le processus commence par des données binaires (par exemple, un fichier image). Ces données sont divisées en segments de 8 bits (1 octet), qui constituent l'entrée brute pour Base64 codage.

  2. 2

    Regrouper les octets en morceaux de 24 bits

    Depuis Base64 utilise des caractères de 6 bits, les octets de 8 bits sont regroupés en morceaux de 24 bits (3 octets). 24 bits peuvent être divisés uniformément en quatre segments de 6 bits (4 × 6 = 24).

  3. 3

    Convertir des segments 6 bits en caractères Base64

    Chaque segment de 6 bits est converti en valeur décimale (0 à 63). Cette valeur est ensuite mappée à un caractère correspondant du Base64 jeu de caractères (par exemple, 0 = « A », 1 = « B », …, 63 = « / »).

  4. 4

    Ajouter un remplissage pour les morceaux incomplets

    Si la longueur des données binaires n’est pas un multiple de 3 octets, le morceau final sera incomplet. Base64 utilise des caractères de remplissage « = » pour indiquer les octets manquants (1 « = » pour 1 octet manquant, 2 « = » pour 2 octets manquants).

Exemple d'encodage Base64 : texte « Salut ! »

Étape Données d'entrée Représentation binaire Sortie Base64
1. Texte brut "Salut!" – –
2. Octets de 8 bits (ASCII) H (72), je (105), ! (33) 01001000, 01101001, 00100001 –
3. Morceau de 24 bits 72, 105, 33 010010000110100100100001 –
4. Divisé en segments de 6 bits – 010010, 000110, 100100, 100001 –
5. Convertir en décimal – – 18, 6, 36, 33
6. Mapper aux caractères Base64 – – "Peau"

L'extrémité avant Base64 Cas d'utilisation

URL de données pour les images

Intégrez de petites images (comme des icônes ou des avatars) directement dans HTML/CSS en utilisant Base64 URL de données. Cela réduit les requêtes HTTP et améliore la vitesse de chargement des pages pour les petits actifs.

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="Icon">

Transmission de données binaires API

Transmettez des données binaires (comme des fichiers ou des PDF) via les API REST en les codant dans Base64. Cela évite les problèmes de corruption des données binaires dans les charges utiles d'API basées sur du texte (par exemple, JSON).

{ "fileData": "JVBERi0xLjQKJeLjz9MNCjYgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeAovRjEgMTAgVGYKMDAwLjEwNS4wMDAuMTAwCjAwMC4yOTkuMDAwLjAwMAo...", "fileName": "report.pdf" }

Contraintes de texte en matière de cookies et de stockage local

Stockez de petites données binaires dans des cookies ou LocalStorage (qui ne prennent en charge que le texte) en les codant dans Base64. Utile pour enregistrer les préférences utilisateur ou les petits actifs localement.

// Save Base64 data to LocalStorage
localStorage.setItem('userAvatar', 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA...');

Encodage des pièces jointes aux e-mails

La plupart des protocoles de messagerie (comme SMTP) contiennent uniquement du texte. Base64 est utilisé pour encoder les pièces jointes des e-mails (images, documents) afin qu'elles puissent être transmises sans corruption.

Content-Type: image/jpeg; name="photo.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="photo.jpg"

/9j/4AAQSkZJRgABAQEAZABkAAD/7QBsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA...

Encodage SVG en ligne

Encoder des fichiers SVG dans Base64 pour une utilisation en ligne dans les arrière-plans CSS ou les attributs HTML. Cela simplifie la gestion des actifs pour les petits graphiques vectoriels.

.icon {
  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyIDJBMTAgMTAgMCAwIDEgMjIgMTJBMTAgMTAgMCAwIDEgMTIgMjJBMTAgMTAgMCAwIDEgMiAxMkExMCAxMCAwIDAgMSAxMiAyWiIgc3Ryb2tlPSIjMTY1REZGIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4=');
}

Exportation d’images sur toile

L'API HTML5 Canvas utilise Base64 pour exporter le contenu dessiné sous forme de données d'image (via toDataURL()). Cela permet d'enregistrer des illustrations ou des captures d'écran générées par l'utilisateur.

// Get Base64 data from Canvas
const canvas = document.getElementById('myCanvas');
const base64Image = canvas.toDataURL('image/png'); // "data:image/png;base64,iVBORw0KGgo..."

L'extrémité avant Base64 Exemples de codes

Basique Base64 Encodage/Décodage

Utilisez le module intégré de JavaScript btoa() (binaire vers ASCII) et atob() (ASCII vers binaire) pour des opérations simples Base64 opérations. Remarque : Ces fonctions fonctionnent avec les chaînes UTF-8.

// Encode text to Base64
function encodeToBase64(text) {
  // Encode UTF-8 to avoid issues with special characters
  const utf8Text = unescape(encodeURIComponent(text));
  return btoa(utf8Text);
}

// Decode Base64 to text
function decodeFromBase64(base64String) {
  const utf8Text = atob(base64String);
  return decodeURIComponent(escape(utf8Text));
}

// Example usage
const originalText = "Hello, Base64!";
const encodedText = encodeToBase64(originalText);
const decodedText = decodeFromBase64(encodedText);

console.log("Original:", originalText); // "Hello, Base64!"
console.log("Encoded:", encodedText);   // "SGVsbG8sIEJhc2U2NCE="
console.log("Decoded:", decodedText);   // "Hello, Base64!"

Encoder l'image dans Base64

Convertir un fichier image (sélectionné via l'entrée de fichier) en Base64 en utilisant l'API FileReader. Utile pour prévisualiser les images avant de les télécharger ou de les intégrer en ligne.

// Get elements from DOM
const fileInput = document.getElementById('image-upload');
const previewImage = document.getElementById('image-preview');
const base64Output = document.getElementById('image-base64');

// Handle file selection
fileInput.addEventListener('change', (e) => {
  const file = e.target.files[0];
  if (!file || !file.type.startsWith('image/')) {
    alert('Please select an image file!');
    return;
  }

  // Create FileReader to read the image
  const reader = new FileReader();
  
  // On load, get Base64 data
  reader.onload = (event) => {
    const base64Data = event.target.result;
    
    // Preview the image
    previewImage.src = base64Data;
    previewImage.style.display = 'block';
    
    // Show Base64 data (truncated for readability)
    const truncatedData = base64Data.length > 100 
      ? base64Data.substring(0, 100) + '...' 
      : base64Data;
    base64Output.textContent = truncatedData;
  };
  
  // Read the file as Base64
  reader.readAsDataURL(file);
});

Données Base64 (tronquées) :

Base64 vers Blob (télécharger le fichier)

Convertir Base64 données vers un Blob (grand objet binaire) pour créer des fichiers téléchargeables (par exemple, des PDF, des images) dans le navigateur.

// Convert Base64 to Blob
function base64ToBlob(base64Data, contentType = 'application/octet-stream') {
  // Extract Base64 data (remove "data:..." prefix if present)
  const base64WithoutPrefix = base64Data.startsWith('data:')
    ? base64Data.split(',')[1]
    : base64Data;
  
  // Decode Base64 to binary string
  const binaryString = atob(base64WithoutPrefix);
  const byteLength = binaryString.length;
  
  // Convert binary string to Uint8Array
  const uint8Array = new Uint8Array(byteLength);
  for (let i = 0; i < byteLength; i++) {
    uint8Array[i] = binaryString.charCodeAt(i);
  }
  
  // Create and return Blob
  return new Blob([uint8Array], { type: contentType });
}

// Trigger file download from Blob
function downloadBlobAsFile(blob, fileName) {
  // Create temporary URL for Blob
  const url = URL.createObjectURL(blob);
  
  // Create anchor element to trigger download
  const a = document.createElement('a');
  a.href = url;
  a.download = fileName;
  
  // Simulate click to start download
  document.body.appendChild(a);
  a.click();
  
  // Clean up
  document.body.removeChild(a);
  URL.revokeObjectURL(url);
}

// Example: Download Base64 PDF
const base64Pdf = "JVBERi0xLjQKJeLjz9MNCjYgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeAovRjEgMTAgVGYKMDAwLjEwNS4wMDAuMTAwCjAwMC4yOTkuMDAwLjAwMAo...";
const pdfBlob = base64ToBlob(base64Pdf, 'application/pdf');
downloadBlobAsFile(pdfBlob, 'report.pdf');

Vue.js Base64 Composant

Un composant Vue.js réutilisable pour Base64 encodage/décodage. S'intègre au système de réactivité de Vue pour des mises à jour en temps réel.

<template>
  <div class="base64-converter">
    <h3 class="text-lg font-semibold mb-4">Vue Base64 Converter</h3>
    
    <!-- Input for text -->
    <div class="mb-4">
      <label class="block mb-2 text-sm font-medium">Enter Text:</label>
      <textarea 
        v-model="inputText" 
        class="w-full p-2 border rounded"
        rows="3"
        placeholder="Type text to encode..."
      ></textarea>
      <button 
        @click="encode"
        class="mt-2 px-4 py-1 bg-primary text-white rounded"
      >Encode to Base64</button>
    </div>
    
    <!-- Output for Base64 -->
    <div class="mb-4">
      <label class="block mb-2 text-sm font-medium">Base64 Result:</label>
      <textarea 
        v-model="base64Output" 
        class="w-full p-2 border rounded"
        rows="3"
        readonly
      ></textarea>
      <button 
        @click="decode"
        class="mt-2 px-4 py-1 bg-secondary text-white rounded"
      >Decode to Text</button>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      inputText: '',
      base64Output: ''
    };
  },
  methods: {
    encode() {
      if (!this.inputText) return;
      // Encode UTF-8 text to Base64
      const utf8Text = unescape(encodeURIComponent(this.inputText));
      this.base64Output = btoa(utf8Text);
    },
    decode() {
      if (!this.base64Output) return;
      // Decode Base64 to UTF-8 text
      const utf8Text = atob(this.base64Output);
      this.inputText = decodeURIComponent(escape(utf8Text));
    }
  }
};
</script>

Foire aux questions sur Base64

Commencez à utiliser Base64 dans vos projets frontend

Que vous intégriez des images, transmettiez des fichiers via des API ou travailliez avec du contenu généré par l'utilisateur, Base64 est un outil essentiel pour les développeurs Web modernes. Utilisez les exemples de code ci-dessus pour intégrer Base64 l'encodage et le décodage dans votre prochain projet.