Cookies de statistiques et de publicité
Nous utilisons des cookies de statistiques et de publicité, tous deux destinés à Google. Si vous refusez, rien ne change visiblement pour vous.Aller à la page de confidentialité
BMP
Bitmap Windows non compressé. Des fichiers gigantesques que produisent encore les scanners et les logiciels anciens.
BMP
BMP est un format binaire, qui ne veut rien dire hors d’un programme qui le connaît. Il stocke une grille de pixels : l’agrandir au-delà de sa propre résolution le ramollit. Il est utilisé pour l’échange entre programmes.
L’extension est .bmp et le nom complet Windows Bitmap. L’un et l’autre comptent moins que ce que le fichier peut contenir, et c’est le sujet du reste de cette page.
Microsoft l’a publié en 1987.
À un format resté lisible aussi longtemps, on peut confier quelque chose qu’on veut retrouver dans dix ans.
Elle est écrite et implémentable, même si c’est l’éditeur qui décide de la version suivante. En pratique cela suffit pour que le fichier continue de s’ouvrir ; cela ne suffit pas pour en être sûr.
Il s’ouvre encore partout et les anciens logiciels l’écrivent toujours, mais plus rien de neuf ne se construit autour. Convertissez ce que vous voulez garder, et ne le choisissez pas pour un projet qui commence aujourd’hui.
BMP enregistre son contenu à l’identique. Le réenregistrer ne change rien : vous pouvez l’ouvrir, le modifier et le réenregistrer autant de fois que vous voulez sans accumuler de dégâts, et c’est ce qui en fait un format de travail plutôt qu’un format de livraison.
BMP n’a nulle part où noter la transparence. Ce qui était transparent dans la source est rempli d’une couleur unie à la conversion — du blanc, sauf choix contraire.
Jusqu’à 8 bits par canal. Il peut travailler en RVB et une palette indexée.
Huit bits par canal, c’est ce qu’affiche un écran et ce que porte à peu près tout format de livraison.
Microsoft Paint, GIMP et IrfanView le lisent, comme la plupart des programmes du même genre.
Quand un fichier ne s’ouvre pas, le format est rarement en cause : le plus souvent, c’est le programme qui est plus ancien que lui. Convertir vers quelque chose de plus ancien est le contournement fiable, et c’est à cela que sert le reste de ce site.
Tous les navigateurs actuels le lisent.
Vous pouvez donc le poser sur une page ou l’attacher à un message sans vous demander ce que le destinataire a installé.
BMP est fait pour être transmis, pas pour travailler dedans. Modifier un tel fichier est possible et rarement agréable ; la voie raisonnable passe par la source et un nouvel export.
Les reproches qui reviennent : les fichiers sont gros pour ce qu’ils contiennent.
Rien de tout cela n’est une raison d’éviter le format. Ce sont les choses à connaître avant que l’une d’elles vous surprenne, ce qui est une affirmation différente et plus utile.
Un BMP stocke chaque pixel comme une valeur de couleur littérale, dans l’ordre, sans rien d’ingénieux d’appliqué. Cela rend la taille du fichier prévisible à l’octet près : largeur fois hauteur fois octets par pixel, plus un petit en-tête. Une image 1920 par 1080 à 24 bits par pixel fait environ 6,2 mégaoctets, qu’elle montre une photographie ou un rectangle blanc uni, et le calcul est le même dans les deux cas.
Cette propriété unique explique toute plainte sur le format. Une capture d’écran qui ferait 200 kilo-octets en PNG fait plusieurs mégaoctets en BMP. Une page scannée pèse des dizaines de mégaoctets. Rien ne s’est mal passé — le format n’a jamais eu de mécanisme pour rendre quoi que ce soit plus petit, ce qui en 1990 était un compromis raisonnable pour être trivial à lire et à écrire sur des machines à mémoire limitée.
Un BMP stocke classiquement ses lignes du bas de l’image vers le haut. La raison est historique — cela correspondait au système de coordonnées du matériel graphique autour duquel le format a été conçu — et c’est pourquoi un BMP écrit par du code naïf apparaît parfois inversé verticalement.
L’en-tête peut déclarer l’ordre inverse en utilisant une hauteur négative, et certains logiciels l’écrivent ainsi. Les deux sont valides, ce qui est un bon résumé du format : suffisamment simple à implémenter en un après-midi, avec assez de variations pour que les implémentations ne soient pas d’accord sur les bords, et c’est pour cela que les conversions BMP vers PNG méritent d’être inspectées si la géométrie est importante.
L’en-tête original de 1990 fait 40 octets et décrit les dimensions, la profondeur de couleur et peu d’autres choses. Des versions ultérieures l’étendent à 108 et 124 octets pour ajouter l’information d’espace colorimétrique et une couche alpha, et quelques outils écrivent une version qui précède tout cela.
La plupart des lecteurs gèrent les cas courants et certains ne gèrent pas les versions étendues. Si un BMP s’ouvre dans un programme et est refusé par un autre, une inadéquation de version d’en-tête est l’explication habituelle plutôt qu’un dommage — et c’est pourquoi un fichier produit par un instrument scientifique défait parfois les logiciels d’images ordinaires, qui ne reconnaissent pas la structure.
Les variantes 32 bits ont la place pour une couche alpha et les en-têtes étendus peuvent la décrire correctement. En pratique la prise en charge est suffisamment peu fiable pour que la transparence dans un BMP ne puisse pas être garantie : de nombreux lecteurs ignorent le quatrième octet entièrement et rendent l’image opaque, et c’est la source classique d’une icône qui apparaît avec un fond blanc inattendu.
Donc si une image a besoin d’un fond transparent, BMP est le mauvais conteneur pour cela et PNG est le bon. Convertir un BMP qui prétend être transparent en PNG est aussi le moyen fiable de découvrir si la transparence était réellement là — l’alpha est conservée par le décodeur PNG alors qu’elle a pu être silencieusement abandonnée par le lecteur BMP d’origine.
BMP définit bien deux codages en longueur de plage, pour des images 4 bits et 8 bits, qui compressent les plages de pixels identiques. Ils fonctionnent et sont presque jamais utilisés, parce qu’ils ne s’appliquent qu’aux faibles profondeurs de couleur et parce qu’au moment où la compression a importé, PNG existait et était meilleur à tous les égards.
Un BMP que vous rencontrez est donc presque certainement non compressé. Traiter cela comme une hypothèse sûre est raisonnable ; c’est aussi pourquoi convertir un BMP en PNG produit si régulièrement une réduction de taille spectaculaire sans rien perdu, la compression sans perte de PNG faisant ce que le format original n’a jamais cherché à faire.
Les scanners et logiciels de numérisation, particulièrement les anciens ou industriels. Les instruments médicaux et de laboratoire, qui favorisent des formats triviaux à écrire et impossibles à mal interpréter. Les utilitaires Windows et les outils de capture d’écran d’un certain âge. Les systèmes embarqués et la vision industrielle, où un décodeur est un risque et où des données brutes de pixels sont un atout pour la rapidité de traitement.
Et des logiciels écrits dans les années 1990 qui n’ont jamais eu de raison de changer. Le point commun est une préférence pour la simplicité sur la taille, ce qui pour un appareil écrivant sur un disque local est un choix défendable et pour un fichier qui doit être envoyé par courriel ne l’est pas — la simplicité n’est plus un atout quand le fichier doit voyager.
Le presse-papiers Windows utilise une structure dérivée de BMP pour les images, donc copier une image entre applications transmet quelque chose de très proche de ce format. Les fichiers d’icônes contiennent des données BMP. Certaines parties de l’interface l’utilisent encore en interne, et c’est pour cela que le format n’a pas disparu de Windows en pratique.
C’est pourquoi le format n’a pas disparu et ne disparaîtra pas : ce n’est plus vraiment un format de fichier qu’autant la manière dont Windows représente une image non compressée, avec une enveloppe de fichier disponible quand on en a besoin. Tant que le presse-papiers Windows transportera des images entre applications, BMP restera défini, et tant qu’il restera défini, des outils continueront de le produire et de le lire.
PNG, dans presque tous les cas. C’est sans perte, donc chaque pixel arrive exactement comme il était, et cela compresse — une capture d’écran ou un diagramme arrive en général à une petite fraction de la taille du BMP sans aucun changement visible. Il n’y a pas d’argument contre autre chose que des logiciels plus vieux que 1996, et cette exception elle-même disparaît à mesure que les systèmes tournent sur du code plus récent.
JPG uniquement quand l’image est une photographie et que la taille compte plus que l’exactitude, puisqu’il jettera du détail pour devenir plus petit. Pour un document scanné, une capture d’écran, un diagramme ou du trait, PNG est strictement meilleur et JPG rendra les bords du texte pires, ce qui rend la photo la seule situation où JPG a un avantage à considérer sur PNG en sortie d’un BMP.
Pour un BMP médical ou industriel dont vous n’avez pas le contexte de production, la conversion en PNG ou en TIFF est la voie la plus sûre, parce que ces formats conservent la profondeur de bit et l’espace colorimétrique sans tenter de les interpréter. Une fois en PNG, le fichier est portable sur n’importe quelle plateforme et lisible par n’importe quel outil, ce qui retire la dépendance à un logiciel propriétaire qui sait interpréter le BMP d’origine. La conversion préserve aussi la possibilité de revenir en arrière, puisque le PNG est sans perte et contient exactement ce que le BMP contenait.
| Extension | .bmp, .dib |
|---|---|
| Type de média | image/bmp |
| Publié par | Microsoft |
| Première publication | 1987 |