Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

dans la serie les mysteres du C
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1665
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#11 Message par venom » dim. 22 févr. 2026 00:05

C'est drôle je ne savais pas que le bmp stocké des informations :eek: un peu comme les tags id3 des fichiers audio.
J'ai donc regarder un peu et en gros les offset de début stock des informations importantes 8-) en gros un bmp donne ça :

Code : Tout sélectionner

 
 ┌───────────────────────────────┐
│ BITMAPFILEHEADER 
(14 octets)  │
│                               │
│ Offset 0x00 
: Signature "BM"  │
│ Offset 0x02 
: Taille fichier  │
│ Offset 0x06 
: Réservé         │
│ Offset 0x0A 
: Offset pixels   │
└───────────────────────────────┘
             │
             ▼
┌───────────────────────────────┐
│ BITMAPINFOHEADER 
/ DIB (40)   │
│                               │
│ Offset 0x0E 
: Taille header   │
│ Offset 0x12 
: Largeur          │
│ Offset 0x16 
: Hauteur          │
│ Offset 0x1A 
: Plans            │
│ Offset 0x1C 
: Bits par pixel   │
│ Offset 0x1E 
: Compression      │
│ Offset 0x22 
: Taille image     │
│ Offset 0x26 
: Résolution X     │
│ Offset 0x2A 
: Résolution Y     │
│ Offset 0x2E 
: Nb couleurs      │
│ Offset 0x32 
: Couleurs imp.    │
└───────────────────────────────┘
             │
             ▼
┌───────────────────────────────┐
│ Palette 
(si bpp ≤ 8 bits)    │
│                               │
│ Taille 
= offsetPixels - (14+40)
└───────────────────────────────┘
             │
             ▼
┌───────────────────────────────┐
│ Données pixels                │
│                               │
│ Commence à l’offset indiqué   │
│ par BITMAPFILEHEADER 
(0x0A)   │
│ Alignement lignes 
: multiple  │
│ de 4 octets                   │
└───────────────────────────────┘ 


C'est ce que fait ton code Temps-X ?






@++
Mon site web
Mon discord : venom#4888

dans la serie les mysteres du C
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2952
Enregistré en : juillet 2016
Localisation : Terre

#12 Message par Temps-x » dim. 22 févr. 2026 01:33

Bonsoir venom,

venom a écrit :Source du message C'est ce que fait ton code Temps-X ?


Oui et non :lol:

venom a écrit :Source du message

Commence à l’offset indiqué
par BITMAPFILEHEADER (0x0A)
Alignement lignes : multiple
de 4 octets


0x0A indique la fin de lecture du fichier,de plus il faut lire 3 octets par couleur pour un format 24 bits, j'avais bien dit que c'était une histoire de fou. :lol:

Je fourni dans le fichier zip la source 8-) où tout est marqué, avec un exemple de lecture du fichier Bmp, au cas où tu aurais zappé tout est ICI

C'est assez tordu pour lire un fichier Bmp, il faut commencer par la fin en remontant vers le début du premier pixel pour finir . oops

Les premiers pixels vont de droite à gauche, le mieux c'est de paramétrer l'écran avec l'orientation qui convienne.

Dans la plupart des fichiers connus, il y a presque toujours un Header.

Le seul problème pour écrire un programme, c'est d'être obligé de chercher des heures pour avoir seulement qu'une moitié d'informations.

Bon, pour les Bmp pas de problème, on a de la documentation un peu partout, mais pour certains formats c'est dur dur.... :?

:roll: Malgré le progrès de l'informatique, la société Mondial veille à ce qu'on soit le moins informé possible, les explications sont au compte-gouttes.

Heureusement qu'il y a eu certains hommes, comme par exemple Bigonoff et bien d'autres... pour diffuser le savoir.

Pour apprendre sans passer par des lycées techniques qui sont réservés à une élite, il faut avoir du courage.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

dans la serie les mysteres du C
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1665
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#13 Message par venom » dim. 22 févr. 2026 08:54

Oui j'ai vu que les pixels se lisent du bas vers le haut :shock: logique incomprise mais bon :lol:

:oops: oui j'avais vu en plus que tu avais fourni le source. Je vais y jetter un œil :wink:

Mais même si c'est a moitié compréhensible c'est sympa c'est header 8-)






@++
Mon site web
Mon discord : venom#4888

dans la serie les mysteres du C
gwion
Expert
Expert
Messages : 1136
Enregistré en : février 2022

#14 Message par gwion » dim. 22 févr. 2026 09:02

On trouve pourtant facilement beaucoup d'infos très précises et très fiables sur les descriptions des formats de fichiers sans trop chercher dans tous les sens.
3 sources incontournables :
-la bibliothèque du congrès
-le MSDN Microsoft
-fileformat.info

Exemple pour le BMP : https://www.fileformat.info/format/bmp/egff.htm

dans la serie les mysteres du C
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2952
Enregistré en : juillet 2016
Localisation : Terre

#15 Message par Temps-x » dim. 22 févr. 2026 12:55

Bonjour gwion, venom, et tout le forum,



Temps-x a écrit :Source du message Bon, pour les Bmp pas de problème, on a de la documentation un peu partout,

:sifflotte: J'ai l'impression que tu ne prends pas le temps de lire ce que je dis.



Essai de trouver comment on utilise les APIS pour mettre en oeuvre le port RS232 avec une démontration en basic

Bon courage.... :-D tu vas surement le trouver, mais en C++ avec des explications obscures et non claires qui se report avec d'autre fichier


Venom, le début ou fin du fichier 0x0A n'as pas besoin d'être lue si tu utilises un fichier BMP non compressé,

(Largeur x Hauteur)*3 = nombre de pixel à lire, ce qu'il faut connaître c'est la signature, largeur, longueur, compression, à partir de ça tu peux lire ton fichier. on commençant par la fin :-)

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 15 invités