Image bitmap Windows (.bmp)

Architecture Standard

Le format de fichier image bitmap (BMP) de Microsoft est un format graphique matriciel fondamental, indépendant du périphérique. Il stocke des lignes de balayage non compressées ou compressées en RLE et est directement compatible avec le tampon d’image matériel.

Convertir BMP en PNG

Outil de conversion gratuit de BMP vers PNG dans le navigateur. Convertissez des fichiers instantanément sur votre appareil.

Inspection et métadonnées

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers BMP en inspectant leur séquence initiale d'octets binaires :

Sélectionnez ou déposez des fichiers ici

Privé - les fichiers ne quittent jamais votre appareil

ou coller Ctrl+V
Garantie de confidentialité sans transmission réseau : 0 octet envoyé vers des serveurs externes. Tout le traitement a eu lieu localement dans le bac à sable de votre navigateur.

Signature d'en-tête au niveau des octets (octets magiques)

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers BMP en inspectant leur séquence initiale d'octets binaires :

SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :

42 4D

REPRÉSENTATION ASCII : BM

Normalisation : Architecture bitmap indépendante du périphérique (DIB) de Microsoft Windows

Spécifications techniques

Architecture de conteneurBITMAPFILEHEADER suivi de BITMAPINFOHEADER (DIB) et du tableau de pixels raster
CompressionLignes de balayage brutes non compressées ou codage par plages RLE8 / RLE4 en option
Ordre des octetsPetit-boutiste (ordre des octets Intel x86)
Espaces colorimétriquesRVB dépendant du périphérique, sRGB (intégré dans BITMAPV5HEADER)
Canaux et structureMonochrome 1 bit, palette 4 bits / 8 bits, 16 bits, RVB 24 bits ou RVBA 32 bits
Dimensions maximales2 147 483 647 x 2 147 483 647 pixels (entier signé de 32 bits)
TransparenceMasque alpha BGRA de 32 bits pris en charge dans les formats modernes BITMAPV3HEADER et V5HEADER
Prise en charge du traitement en continuPas de prise en charge de la diffusion en continu ; les lignes de balayage sont stockées à l’envers (de bas en haut), sauf si la hauteur est négative

Matrice de comparaison technique : BMP face aux concurrents

Attribut techniqueBMP (Actuel)PNGTIFFJPG
Mode de compressionNon compressé / RLE minimalCompression Deflate sans perte ; le gain de taille varie selon le contenu de l’imageNon compressé / LZW / ZipDCT avec perte (~90 % plus petit)
Vitesse de décodageCopie mémoire instantanéeNécessite une décompression DeflateNécessite une décompression LZW/ZIPNécessite un calcul IDCT
Ordre des lignes de balayageDe bas en haut (inversé)Du haut vers le basDu haut vers le bas / BandesBlocs MCU du haut vers le bas
Pertinence pour le WebTrès mauvaise (fichiers volumineux)Excellente pour les graphiquesMédiocre (publication assistée par ordinateur)Excellente pour la photographie

Modes de corruption courants et guide de restauration hexadécimale

L'image s'affiche inclinée en diagonale ou déformée selon un angle.

Cause initiale: Calcul incorrect du remplissage des lignes (échec du remplissage de chaque ligne de balayage sur une frontière de 4 octets).

Récupération: Réencodez le fichier avec le convertisseur d’images de File2File.app pour obtenir un pas de ligne de balayage correct de 32 bits.

Analyse de sécurité et vecteurs d'attaque de l'analyseur

Les décodeurs BMP souffrent souvent de dépassements de lecture de tampon lors de l'allocation de tampons à partir de dimensions non fiables de l'en-tête DIB.

Vecteurs d’attaque connus

  • Dépassement d'entier dans le calcul largeur * hauteur * bpp entraînant une allocation de petite taille sur le tas et une écriture hors limites.
  • Séquences d'échappement de codage par plages RLE8/RLE4 corrompues provoquant des écritures en mémoire au-delà du tampon alloué.
  • Déni de service par allocation de mémoire de plusieurs gigaoctets déclenchée par des dimensions d'en-tête forgées.

Bonnes pratiques de défense: Valider strictement les limites de largeur, de hauteur et de profondeur de bits de l'en-tête DIB avant d'allouer la mémoire de destination.

Origines historiques et jalons

1998Windows 98 introduit BITMAPV5HEADER, ajoutant la gestion des profils colorimétriques ICC et la correction gamma.
1990Windows 3.0 standardise la spécification DIB BITMAPINFOHEADER dans tout le système d'exploitation.
1987Introduit avec Windows 2.0 et OS/2 1.1 en tant que format matriciel d'affichage natif.

Principaux avantages

  • Dégradation de compression nulle : stockage de pixels 100 % exact au bit près sans aucun artéfact de compression.
  • BMP dispose d’un codec natif sous Windows, tandis que sa prise en charge varie dans les autres systèmes d’exploitation et applications.
  • Sa simplicité de décodage le rend idéal pour les microcontrôleurs et l'enseignement de la programmation graphique.

Limites techniques

  • Tailles de fichiers énormes en raison de l'absence de compression par entropie moderne comme DEFLATE ou le codage de Huffman.
  • Inefficace pour la transmission sur le Web ou la distribution sur les réseaux mobiles.
  • L'ordre des lignes de balayage de bas en haut nécessite d'inverser verticalement les lignes dans les pipelines graphiques modernes qui les traitent de haut en bas.

Faits intéressants

  • Le BMP stocke par défaut les lignes de balayage de l'image à l'envers (du bas vers le haut), en raison du système de coordonnées cartésiennes mathématiques utilisé dans OS/2.
  • Si la valeur de la hauteur dans l'en-tête BMP est définie sur un nombre négatif, l'image est décodée à l'endroit (du haut vers le bas).
  • Chaque ligne de balayage d'un fichier BMP doit être complétée par des zéros pour être un multiple de 4 octets (alignement sur une frontière de 32 bits).

Foire aux questions techniques

Pourquoi les fichiers BMP sont-ils si volumineux ?

Les fichiers BMP stockent des valeurs de couleur brutes et non compressées pour chaque pixel, tandis que des formats comme le PNG compressent ces données sans perte de qualité.

Le format BMP prend-il en charge la transparence ?

Oui. Les fichiers BMP 32 bits (utilisant BITMAPV3HEADER ou version ultérieure) peuvent stocker un canal alpha 8 bits, bien que la prise en charge varie selon les logiciels plus anciens.

Comment puis-je réduire la taille d'un fichier BMP ?

La conversion de BMP en PNG peut réduire la taille du fichier tout en préservant les valeurs des pixels, mais le résultat dépend du contenu de l’image et de l’encodage BMP.