FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» SineCube
Structure des fichiers BMP/JPG/ICO Emptypar Marc Aujourd'hui à 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Structure des fichiers BMP/JPG/ICO Emptypar Marc Aujourd'hui à 12:22

» Philharmusique
Structure des fichiers BMP/JPG/ICO Emptypar jjn4 Hier à 13:58

» PANORAMIC V 1
Structure des fichiers BMP/JPG/ICO Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Structure des fichiers BMP/JPG/ICO Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Structure des fichiers BMP/JPG/ICO Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Structure des fichiers BMP/JPG/ICO Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Structure des fichiers BMP/JPG/ICO Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Structure des fichiers BMP/JPG/ICO Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Structure des fichiers BMP/JPG/ICO Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Structure des fichiers BMP/JPG/ICO Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Structure des fichiers BMP/JPG/ICO Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Structure des fichiers BMP/JPG/ICO Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Structure des fichiers BMP/JPG/ICO Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Structure des fichiers BMP/JPG/ICO Emptypar leclode Sam 27 Avr 2024 - 17:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 Structure des fichiers BMP/JPG/ICO

Aller en bas 
4 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptyMar 11 Oct 2016 - 22:29

Pour qui voudrait s'intéresser à la structure d'un fichier image au format bmp, une petite sub qui dumpe le fichier et en détaille la structure (tout est en hexadécimal).
En gros il y a une partie en-tête et une partie données qui détaille chaque pixel de l'image.
L'en-tête donne les caractéristiques de l'image (format, taille, bits par pixel, etc.)
La description des pixels est organisée de la façon suivante:
- 3 ou 4 octets par pixel donnant sa couleur sous la forme B, G, R et éventuellement un octet supplémentaire.
Les pixels sont décrits de bas en haut de l'image, et de gauche à droite. (les premiers octets de description correspondent au bas à gauche de l'image).

La sub ne dumpe que le début du fichier qui peut être très long, on pourrait évidemment en rajouter.
Le résultat est renvoyé sous forme de chaîne dans le presse-papier.
Si ça peut amuser quelqu'un:
Code:
DIM f$,b$,i%
f$ = "C:\GRAPH\BMP\PNoel.bmp": ' un fichier bmp quelconque
HEIGHT 0,SCREEN_Y-30: WIDTH 0,450
LIST 1: FULL_SPACE 1: FONT_NAME 1,"Lucida Console"
MEMO 2: HIDE 2: WIDTH 2,450
DumpBmp(f$)
CLIPBOARD_PASTE 2
FOR i% = 1 TO COUNT(2): ITEM_ADD 1,ITEM_READ$(2,i%): NEXT i%
END
' ==============================================================================
SUB DumpBmp(f$,fr$)
  ' Dump d'un fichier image au format bitmap (bmp)
  ' -> Résultat dans fichier texte fr$ (ou clipboard si fr$ = "")
  ' NB: il peut y avoir un pixel supplémentaire (3 ou 4 octets à 00) en bout de
  '    chaque ligne...?
  IF LABEL("dpzb") = 0 THEN LABEL dpzb
  DIM_LOCAL sz%,a$,b$,rc$,i%,j%,nl%,rs%,w%,h%,bpp%,tb%,ad%,sad%,nb%,snb%,tx$,na%,fi%
  rc$ = CHR$(13)+CHR$(10)
  FILEBIN_OPEN_READ 1,f$: sz% = FILEBIN_SIZE(1)
    nl% = INT(sz%/2000): rs% = sz%-nl%*2000: a$ = "": ' lecture limitée à 2000 octets
    IF nl%>0 THEN FOR i% = 1 TO nl%: FILEBIN_HEXA_READ 1,2000,b$: a$ = a$+b$: NEXT i%
    IF rs% > 0 THEN FILEBIN_HEXA_READ 1,rs%,b$: a$ = a$+b$
  FILEBIN_CLOSE 1
  fi% = 0: IF fr$ <> "" THEN FILE_OPEN_WRITE 1,fr$: fi% = 1
  na% = 4: ' nb de chiffres de l'adresse
  IF sz% > 1040000
      na% = 6
  ELSE
      IF sz% > 65500 THEN na% = 5
  END_IF
  w% = HEX(MID$(a$,39,2)+MID$(a$,37,2)): h% = HEX(MID$(a$,47,2)+MID$(a$,45,2))
  bpp% = HEX(MID$(a$,57,2)): ' bits par pixel
  b$ = f$+" ("+STR$(w%)+"x"+STR$(h%)+" pixels, "+STR$(sz%)+" octets)"+rc$+rc$
  b$=b$+" - En-tête : -"+rc$
  ad% = 0: nb% = 2: tx$ = "'BM'": GOSUB dpzb
  ad% = 2: nb% = 4: tx$ = "Taille totale du fichier": GOSUB dpzb
  ad% = 6: nb% = 4: tx$ = "Réservé": GOSUB dpzb
  ad% = 10: nb% = 4: tx$ = "Offset des datas images": GOSUB dpzb
  ad% = 14: nb% = 4: tx$ = "Taille du header": GOSUB dpzb
  ad% = 18: nb% = 4: tx$ = "Largeur image (pixels)": GOSUB dpzb
  ad% = 22: nb% = 4: tx$ = "Hauteur image (pixels)": GOSUB dpzb
  ad% = 26: nb% = 2: tx$ = "Nombre de plans": GOSUB dpzb
  ad% = 28: nb% = 2: tx$ = "Nb de bits par pixel (bpp)": GOSUB dpzb
  ad% = 30: nb% = 4: tx$ = "Type de compression": GOSUB dpzb
  ad% = 34: nb% = 4: tx$ = "Taille de l'image": GOSUB dpzb
  ad% = 38: nb% = 4: tx$ = "Largeur (pixels/m)": GOSUB dpzb
  ad% = 42: nb% = 4: tx$ = "Hauteur (pixels/m)": GOSUB dpzb
  ad% = 46: nb% = 4: tx$ = "Nombre de couleurs": GOSUB dpzb
  ad% = 50: nb% = 4: tx$ = "Couleurs importantes": GOSUB dpzb
  tb% = w%*h%*bpp%/8: ' taille de la zone bitmap
  b$=b$+rc$+" - Datas image ("+STR$(bpp%/8)+" octets/pixel = "+STR$(tb%)+" octets) : -"
  IF fi% = 1
      FILE_WRITELN 1,b$: b$ = ""
  ELSE
      b$ = b$+rc$
  END_IF
  nb% = sz%-54: ' octets restant (bitmap)
  ' Si nb%>tb%, un pixel fictif supplémentaire par ligne = (nb%-tb%)/h% octets à zéro.
  ad% = 54: tx$ = "" : GOSUB dpzb
  IF fi% = 0
    CLIPBOARD_STRING_COPY b$
  ELSE
    FILE_CLOSE 1
  END_IF
  EXIT_SUB
  ' ++++++++++
dpzb:
  ' S/P extraction sous forme de dump d'une zone hexa de a$, d'adresse ad%, nb% octets,
  ' texte tx$ éventuel en commentaire  -> ajouté à la chaîne b$
  sad% = ad%: snb% = nb%
  WHILE nb%>16
      b$ = b$+RIGHT$("00000"+HEX$(ad%),na%)+": "
      FOR i% = ad% TO ad%+15
          b$ = b$+MID$(a$,2*i%+1,2)+" "
      NEXT i%
      IF tx$ <> "" THEN b$ = b$+" "+tx$
      IF fi% = 1
          FILE_WRITELN 1,b$: b$ = ""
      ELSE
          b$ = b$+rc$
      END_IF
      ad% = ad%+16: nb% = nb%-16
  END_WHILE
  IF nb% > 0
      IF nb% = 2 THEN tx$ = "      "+tx$
      b$ = b$+RIGHT$("00000"+HEX$(ad%),na%)+": "
      FOR i% = ad% TO ad%+nb%-1
          b$ = b$+MID$(a$,2*i%+1,2)+" "
      NEXT i%
      IF tx$ <> "" THEN b$ = b$+" "+tx$
      IF fi% = 1
          FILE_WRITELN 1,b$: b$ = ""
      ELSE
          b$ = b$+rc$
      END_IF
  END_IF
  ad% = sad%: nb% = snb%
RETURN
END_SUB
' ==============================================================================
SUB DumpIco(f$,fr$)
  ' Dump d'un fichier image au format bitmap (ico)
  ' -> Résultat dans fichier texte fr$ (ou clipboard si fr$ = "")
  ' Exemple de structure:
  '  22 octets: header
  '  104 octets: palette (?)
  '  512 octets: bitmap image
  '  128 octets: 1 octet par bit image (?)
  IF LABEL("dpzi") = 0 THEN LABEL dpzi
  DIM_LOCAL sz%,tl%,a$,b$,c$,rc$,i%,j%,w%,h%,bpp%,nl%,rs%,tb%,lp%,ad%,sad%,nb%,snb%
  DIM_LOCAL tx$,na%,fi%
  rc$ = CHR$(13)+CHR$(10)
  FILEBIN_OPEN_READ 1,f$: sz% = FILEBIN_SIZE(1)
    nl% = INT(sz%/2000): rs% = sz%-nl%*2000: a$ = "": ' lecture limitée à 2000 octets
    IF nl%>0 THEN FOR i% = 1 TO nl%: FILEBIN_HEXA_READ 1,2000,b$: a$ = a$+b$: NEXT i%
    IF rs% > 0 THEN FILEBIN_HEXA_READ 1,rs%,b$: a$ = a$+b$
  FILEBIN_CLOSE 1
  fi% = 0: IF fr$ <> "" THEN FILE_OPEN_WRITE 1,fr$: fi% = 1
  na% = 4: ' nb de chiffres de l'adresse
  IF sz% > 1040000
      na% = 6
  ELSE
      IF sz% > 65500 THEN na% = 5
  END_IF
  w% = HEX(MID$(a$,13,2)): h% = HEX(MID$(a$,15,2))
  bpp% = HEX(MID$(a$,25,2))
  b$ = f$+" ("+STR$(w%)+"x"+STR$(h%)+" pixels, "+STR$(sz%)+" octets)"+rc$+rc$
  b$=b$+" - En-tête : -"+rc$
  ad% = 0: nb% = 2: tx$ = "Réservé (=0000)": GOSUB dpzi
  ad% = 2: nb% = 2: tx$ = "=1 icône =2 curseur": GOSUB dpzi
  ad% = 4: nb% = 2: tx$ = "Nombre d'images": GOSUB dpzi
  ad% = 6: nb% = 1: tx$ = "        Largeur (=0 si 256)": GOSUB dpzi
  ad% = 7: nb% = 1: tx$ = "        Hauteur (=0 si 256)": GOSUB dpzi
  ad% = 8: nb% = 1: tx$ = "        Nb de couleurs (=0 si >256)": GOSUB dpzi
  ad% = 9: nb% = 1: tx$ = "        Réservé (=0)": GOSUB dpzi
  ad% = 10: nb% = 2: tx$ = "Nb de plans (0 ou 1)": GOSUB dpzi
  ad% = 12: nb% = 2: tx$ = "Bits par pixel (ou 0)": GOSUB dpzi
  ad% = 14: nb% = 4: tx$ = "Taille datas bitmap": GOSUB dpzi
  ad% = 18: nb% = 4: tx$ = "Offset datas bitmap": GOSUB dpzi
  lp% = HEX(MID$(a$,45,2))
  b$=b$+rc$+" - Palette ? (= "+STR$(lp%)+" octets) : -"+rc$
  ad% = 22: nb% = lp%: tx$ = "": GOSUB dpzi
  tb% = w%*h%*bpp%/8: ' taille des données bitmap de l'image
  b$=b$+rc$+" - Datas image ("+STR$(bpp%/8)+" octets/pixel = "+STR$(tb%)+" octets) : -"+rc$
  ad% = ad%+lp%: nb% = tb%: tx$ = "": GOSUB dpzi
  b$ = b$+rc$+" - Zone "+STR$(sz%-62-tb%)+" octets (= 1 octet pour 6 pixels image ?) -"+rc$
  ad% = ad%+tb%: nb% = sz%-ad%: tx$ = "": GOSUB dpzi
  IF fr$ = ""
    CLIPBOARD_STRING_COPY b$
  ELSE
    FILE_WRITELN 1,b$: FILE_CLOSE 1
  END_IF
  EXIT_SUB
  ' ++++++++++
dpzi:
  ' S/P extraction sous forme de dump d'une zone hexa de a$, d'adresse ad%, nb% octets,
  ' texte tx$ éventuel en commentaire  -> ajouté à la chaîne b$
  sad% = ad%
  WHILE nb%>16
      b$ = b$+RIGHT$("00000"+HEX$(ad%),na%)+": "
      FOR i% = ad% TO ad%+15
          b$ = b$+MID$(a$,2*i%+1,2)+" "
      NEXT i%
      IF tx$ <> "" THEN b$ = b$+" "+tx$
      b$ = b$+rc$
      ad% = ad%+16: nb% = nb%-16
  END_WHILE
  IF nb% > 0
      IF nb% = 2 THEN tx$ = "      "+tx$
      b$ = b$+RIGHT$("00000"+HEX$(ad%),na%)+": "
      FOR i% = ad% TO ad%+nb%-1
          b$ = b$+MID$(a$,2*i%+1,2)+" "
      NEXT i%
      IF tx$ <> "" THEN b$ = b$+" "+tx$
      b$ = b$+rc$
  END_IF
  ad% = sad%
RETURN
END_SUB
' ==============================================================================
SUB DumpJpg(f$,fr$)
  ' Dump d'un fichier image au format jpg
  ' -> Résultat dans fichier texte fr$ (ou clipboard si fr$ = "")
  ' Structure détaillée:
  '          http://dev.exiv2.org/projects/exiv2/wiki/The_Metadata_in_JPEG_files
  DIM_LOCAL sz%,tl%,a$,b$,c$,d$,rc$,i%,j%,w%,h%,bpp%,nl%,rs%,tb%,lf%,sf%,ad%,sad%
  DIM_LOCAL nb%,snb%,tx$,na%,fi%
  IF LABEL("dpzj") = 0 THEN LABEL dpzj
  rc$ = CHR$(13)+CHR$(10)
  FILEBIN_OPEN_READ 1,f$: sz% = FILEBIN_SIZE(1)
    nl% = INT(sz%/2000): rs% = sz%-nl%*2000: a$ = "": ' lecture limitée à 2000 octets
    IF nl%>0 THEN FOR i% = 1 TO nl%: FILEBIN_HEXA_READ 1,2000,b$: a$ = a$+b$: NEXT i%
    IF rs% > 0 THEN FILEBIN_HEXA_READ 1,rs%,b$: a$ = a$+b$
  FILEBIN_CLOSE 1
  fi% = 0: IF fr$ <> "" THEN FILE_OPEN_WRITE 1,fr$: fi% = 1
  na% = 4: ' nb de chiffres de l'adresse
  IF sz% > 1040000
      na% = 6
  ELSE
      IF sz% > 65500 THEN na% = 5
  END_IF
  b$ = f$+" ("+STR$(sz%)+" octets)"+rc$+rc$
  b$=b$+" - En-tête : -"+rc$
  ad% = 0: nb% = 2: tx$ = "Start Of Image": GOSUB dpzj
  ad% = ad%+nb%
  c$ = MID$(a$,ad%*2+1,2)+MID$(a$,ad%*2+3,2)
  WHILE LEFT$(c$,2) = "FF": ' Start Of Frame
    d$ = ""
    IF RIGHT$(c$,2) = "C0": ' Frame de dimensions
        h% = 256*HEX(MID$(a$,ad%*2+11,2))+HEX(MID$(a$,ad%*2+13,2))
        w% = 256*HEX(MID$(a$,ad%*2+15,2))+HEX(MID$(a$,ad%*2+17,2))
        d$ = " (image="+STR$(w%)+"x"+STR$(h%)+" pixels)"
    ELSE
        IF RIGHT$(c$,2) = "E1" THEN d$ = " (Exifs)"
    END_IF
    nb% = 2: tx$ = "Start Of Frame"+d$: GOSUB dpzj
    ad% = ad%+2
    i% = ad%*2+1: lf% = HEX(MID$(a$,i%,2))*256+HEX(MID$(a$,i%+2,2)): ' longueur de frame
    nb% = lf%: tx$ = "": GOSUB dpzj
    ad% = ad%+nb%
    c$ = MID$(a$,ad%*2+1,2)+MID$(a$,ad%*2+3,2)
  END_WHILE
  b$=b$+" - Datas : -"
  IF fi% = 1
      FILE_WRITELN 1,b$: b$ = ""
  ELSE
      b$ = b$+rc$
  END_IF
  nb% = sz%-ad%: tx$ = "": GOSUB dpzj
  IF fi% = 0
    CLIPBOARD_STRING_COPY b$
  ELSE
    FILE_CLOSE 1
  END_IF
  EXIT_SUB
  ' ++++++++++
dpzj:
  ' S/P extraction sous forme de dump d'une zone hexa de a$, d'adresse ad%, nb% octets,
  ' texte tx$ éventuel en commentaire  -> ajouté à la chaîne b$
  sad% = ad%: snb% = nb%
  WHILE nb%>16
      b$ = b$+RIGHT$("00000"+HEX$(ad%),na%)+": ": item_add 1,RIGHT$("0000"+HEX$(ad%),5)+": "
      FOR i% = ad% TO ad%+15
          b$ = b$+MID$(a$,2*i%+1,2)+" "
      NEXT i%
      IF tx$ <> "" THEN b$ = b$+" "+tx$
      IF fi% = 1
          FILE_WRITELN 1,b$: b$ = ""
      ELSE
          b$ = b$+rc$
      END_IF
      ad% = ad%+16: nb% = nb%-16
  END_WHILE
  IF nb% > 0: ' reste
      IF nb% = 2 THEN tx$ = "      "+tx$
      b$ = b$+RIGHT$("00000"+HEX$(ad%),na%)+": "
      FOR i% = ad% TO ad%+nb%-1
          b$ = b$+MID$(a$,2*i%+1,2)+" "
      NEXT i%
      IF tx$ <> "" THEN b$ = b$+" "+tx$
      IF fi% = 1
          FILE_WRITELN 1,b$: b$ = ""
      ELSE
          b$ = b$+rc$
      END_IF
  END_IF
  ad% = sad%: nb% = snb%
RETURN
END_SUB
' ==============================================================================
Structure des fichiers BMP/JPG/ICO Exempl10
Je voudrais faire la même chose avec les fichiers ICO, mais là c'est un peu plus coton... scratch

12/10 ajouté la sub DumpIco() pour les fichiers .ico
15/10 ajouté la sub DumpJpg() pour les images .jpg
16/10 possibilité du résultat dans un fichier au lieu du presse-papier


Dernière édition par JL35 le Dim 16 Oct 2016 - 20:18, édité 6 fois
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptyMer 12 Oct 2016 - 0:06

Bravo JL35.

C’est toujours intéressant de connaitre ça

Pour faire le connaisseur  tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptyMer 12 Oct 2016 - 7:22

intéressant. Merci JL35 !

Il faut que je prenne le temps de regarder en détail. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptyMer 12 Oct 2016 - 16:07

bonjour papydall,

Dans la sub on a aussi directement la taille totale avec sz%: STR$(sz%).

Remarque importante: j'ai oublié de préciser que dans le fichier bmp, les données numériques sont écrites en 'little endian', c'est à dire les poids faibles en tête.

Par exemple, une valeur sur 2 octets, en hexadécimal:
D3 01 = 01D3 (= 467 en décimal)
Une valeur sur 4 octets:
2C 1B 0A 00 = 0A1B2C (= 662316 en décimal)
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptyMer 12 Oct 2016 - 16:26

JL35 a écrit:
Remarque importante: j'ai oublié de préciser que dans le fichier bmp, les données numériques sont écrites en 'little endian', c'est à dire les poids faibles en tête.

C’est ce que j’ai précisé dans mon SPOILER Pour faire le connaisseur

Mais comme tout le monde n’est pas aussi connaisseur que Papydall, …  tongue HiHiHi
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptyMer 12 Oct 2016 - 16:34

Dont acte papydall, tu as bien précisé dans 'Pour faire le connaisseur' que tous les octets codant la taille sont inversés.

Et moi, Pour faire le malin, je précise que TOUTES les données enregistrés dans l'en-tête, sur 2 ou 4 octets sont en ordre inverse ! en little endian, pour rappeler des souvenirs aux vieux programmeurs en assembleur.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptyMer 12 Oct 2016 - 16:58

J’ai flirté avec le Litte-endian, le Big-endian en passant par le Middle-endian, sans oublier le Bi-endian qu’on appelait bytesexual. Basketball


A malin, malin et demi! 
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptyMer 12 Oct 2016 - 18:06

Bon et bien moi entre le Litte-endian, le Big-endian et le Middle-endian je suis à l'ouest...

Eh au fait ça se trouve ou le Middle-endian Question Exclamation

Bon ok je sort...

lol! lol! lol!
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptyMer 12 Oct 2016 - 20:07

L'indien c'est papydall, attention à ses flèches qui peuvent être acérées !

Ceci dit, j'ai modifié légèrement la sub DumpBmp() et ajouté une sub DumpIco() pour les fichiers images .ico.
C'est un format assez complexe, et ce qui n'arrange rien c'est qu'il peut y avoir plusieurs images icônes dans le même fichier !
Et je n'ai pas (encore ?) trouvé la signification de certaines zones.
Alors le dump est assez rustique, pour des icônes simples, et il y a sûrement des cas où le résultat serait à prendre avec circonspection.
J'ai bien trouvé ça: http://www.gladir.com/LEXIQUE/FICHIERS/ico.htm mais ce n'est pas très clair quand même pour ma petite tête...

Pour les deux dumps je traite maintenant l'intégralité du fichier (qui tient donc dans une seule chaîne sous forme hexa), donc c'est fait pour des imagettes genre icônes, plus gros ça risquerait de faire exploser la machine.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptySam 15 Oct 2016 - 17:20

Je viens d'ajouter le dump des fichiers images au format jpg.
Je répète que c'est pour de petits fichiers images (quelques milliers d'octets), au-delà ça peut marcher encore mais le temps d'exécution devient vite assez long.
Et dans ce cas il faudrait modifier les subs pour renvoyer le résultat dans un fichier texte par exemple, plutôt que dans le presse-papier.
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2705
Date d'inscription : 13/09/2009

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: +++   Structure des fichiers BMP/JPG/ICO EmptyDim 16 Oct 2016 - 18:10

Ouh, encore du grand JL35, ça !
Et ça devient de plus en plus ample.
(bientôt, il va d'ailleurs nous
rajouter les musiques, les vidéos...)
Laughing alien Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO EmptyDim 16 Oct 2016 - 20:24

Tiens jj, content de te voir, ça va ?

Pour les musiques et vidéos, là c'est un peu plus duraille, et je ne suis pas sûr que ça intéresse grand monde ! On a déjà parlé du format mp3 quelque part (avec ygeronimi ?), je ne sais plus trop où...

Sinon là-haut j'ai ajouté la possibilité de récupérer le résultat du dump dans un fichier texte, en effet, dès que le fichier image est un peu grand ça devient rédhibitoire par le presse-papier.
Le résultat du dump en hexa est environ 3,5 fois plus volumineux que le fichier source lui-même.
Revenir en haut Aller en bas
Contenu sponsorisé





Structure des fichiers BMP/JPG/ICO Empty
MessageSujet: Re: Structure des fichiers BMP/JPG/ICO   Structure des fichiers BMP/JPG/ICO Empty

Revenir en haut Aller en bas
 
Structure des fichiers BMP/JPG/ICO
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Structure spirale n°1
» Structure spirale n°2
» problème de structure ?
» Structure de données facile pour dll
» Structure (capture d'écran)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: