Charger un fichier
  1. base64hub
  2. Outils images
  3. Base64 en BMP

Base64 en BMP

Collez le Base64 d’un BMP ou une URI data:image/bmp pour afficher le bitmap et l’enregistrer en .bmp. Les bitmaps ne sont pas compressés : l’en-tête indique donc exactement la taille que doit avoir le fichier.

Gratuit sans inscription, sans limites Local rien n'est envoyé Mis à jour 27 oct. 2026
Entrée –Sortie –Taille –

Traité dans votre navigateur. Cette page ne peut envoyer vos données nulle part – comment le savons-nous

Comment convertir du Base64 en BMP

  1. Collez le Base64 ou l’URI complète data:image/bmp;base64,..., ou ouvrez un fichier .txt contenant la chaîne. Des chaînes de plusieurs mégaoctets sont normales pour des bitmaps et ne posent pas de problème ici.
  2. La ligne d’état doit afficher Détecté BMP. L’aperçu montre l’image et ses dimensions en pixels ; Taille donne la taille du fichier décodé en octets.
  3. Appuyez sur Télécharger le fichier pour enregistrer le .bmp.

Les navigateurs décodent le BMP dans une balise <img>, y compris les fichiers monochromes 1 bit, à palette 8 bits, en 24 bits et la plupart des fichiers 32 bits.

Taille d’un fichier BMP selon la largeur et la hauteur

Un BMP comporte un en-tête de fichier de 14 octets, un en-tête d’informations (40 octets dans la version courante), une palette facultative, puis les lignes de pixels. Chaque ligne est complétée jusqu’à un multiple de 4 octets. Pour une image 24 bits sans palette :

file size = 54 + height × (width × 3, rounded up to a multiple of 4)
ImageTaille d’une ligneFichier BMPLongueur Base64
33×10, 24 bits99 → 100 octets1 054 octets1 408 car.
100×100, 24 bits300 octets30 054 octets40 072 car.
800×600, 24 bits2 400 octets1 440 054 octets1 920 072 car.
1920×1080, 24 bits5 760 octets6 220 854 octets8 294 472 car.
1920×1080, 1 bit240 octets259 262 octets345 684 car.

La ligne 1 bit ajoute une palette de deux couleurs de 8 octets. Comme les chiffres sont fixes, un bitmap se vérifie facilement : l’en-tête de fichier stocke la taille totale dans les octets 2 à 5. Dans le dump hex de l’exemple 100×100, on y lit 66 75 00 00, soit 0x7566 = 30 054 en little-endian. Si Taille affiche moins que cela, le Base64 a été tronqué. Les lignes BMP sont stockées par défaut de bas en haut : un bitmap tronqué perd donc le haut de l’image.

À quoi ressemble le Base64 d’un BMP

Tout BMP commence par les lettres BM, son Base64 commence donc par Qk. Le troisième caractère dépend de la taille du fichier et vaut 0, 1, 2 ou 3 ; Qk02 et Qk1m sont typiques. Le détecteur vérifie aussi la taille de l’en-tête d’informations à l’octet 14 : des données aléatoires qui commencent par hasard par BM ne sont donc pas prises pour un bitmap.

Bitmaps sans en-tête (DIB)

Certaines sources fournissent le bitmap sans l’en-tête de fichier BM. C’est un DIB, le format du presse-papiers Windows (CF_DIB), des images contenues dans les fichiers ICO et de certains SDK de périphériques. Son Base64 commence par KAAAA, l’encodage de la taille d’en-tête d’informations de 40 octets 28 00 00 00.

L’outil ne peut pas l’afficher, car sans en-tête de fichier les octets ne forment pas un fichier image valide, et il signale des données binaires. La solution consiste à ajouter devant les 14 octets manquants :

import base64, struct

def dib_to_bmp(dib: bytes) -> bytes:
    header_size, = struct.unpack_from("<I", dib, 0)
    bpp, = struct.unpack_from("<H", dib, 14)
    compression, colors = struct.unpack_from("<I", dib, 16)[0], struct.unpack_from("<I", dib, 32)[0]
    if bpp <= 8 and colors == 0:
        colors = 1 << bpp
    masks = 12 if header_size == 40 and compression == 3 else 0
    offset = 14 + header_size + masks + colors * 4
    return b"BM" + struct.pack("<IHHI", 14 + len(dib), 0, 0, offset) + dib

b64 = open("dib.txt").read()
with open("image.bmp", "wb") as f:
    f.write(dib_to_bmp(base64.b64decode(b64)))

L’en-tête a besoin de la taille totale du fichier et de la position des données de pixels, qui suivent l’en-tête d’informations, les masques de couleur des images bitfield 16 et 32 bits, et la palette. Réencodez le résultat avec BMP en Base64 si vous en avez besoin sous forme de texte, ou vérifiez-le ici. Les DIB issus de fichiers ICO sont un cas particulier : leur hauteur est doublée pour laisser la place à un masque de transparence. Base64 en Python en dit plus sur le décodage de données binaires.

Problèmes courants

  • « Cela ressemble à PNG, pas à un fichier BMP. » L’expéditeur a déjà converti l’image, ou le système l’appelle simplement bitmap. Enregistrez-la en PNG avec Télécharger en .png ; c’est plus petit et tous les programmes le lisent.
  • Les couleurs semblent inversées ou l’image est à l’envers dans un autre programme. BMP stocke les pixels en bleu-vert-rouge et généralement de bas en haut. Une hauteur négative dans l’en-tête signifie des lignes de haut en bas. Les navigateurs gèrent tout cela ; les lecteurs maison simples, pas toujours.
  • Un appareil refuse le fichier décodé. Comparez son SHA-256 avec ce que l’appareil a reçu, puis vérifiez la profondeur de couleur et la version de l’en-tête dans le dump hex. Les lecteurs anciens attendent un en-tête de 40 octets (28 00 00 00 à l’offset 14) et pas de canal alpha.

FAQ

Pourquoi ma chaîne Base64 de bitmap est-elle si longue ?

BMP stocke les pixels bruts sans compression. Un bitmap 1920×1080 en 24 bits fait 6 220 854 octets, soit 8 294 472 caractères Base64, quel que soit le contenu de l’image.

Mon Base64 commence par KAAAA au lieu de Qk. Qu'est-ce que c'est ?

Un bitmap sans son en-tête de fichier de 14 octets, ce qu’on appelle un DIB. Il provient du presse-papiers Windows, de certains SDK de périphériques et des fichiers ICO. Ajoutez l’en-tête avec l’extrait Python de cette page et il devient un .bmp normal.

Comment savoir si une chaîne BMP est complète ?

Les octets 2 à 5 du fichier contiennent sa taille totale. Ouvrez Afficher le dump hex, lisez-les comme un nombre little-endian et comparez-le à la ligne Taille. Si la taille décodée est plus petite, la chaîne a été tronquée.

Puis-je obtenir un PNG plutôt qu'un BMP ?

Cette page enregistre le bitmap tel quel. Pour le convertir, téléchargez-le et déposez-le dans BMP en Base64 avec Convertir en PNG ; le PNG est sans perte et généralement bien plus petit.