Bonjour à toutes et tous,
J'ai écrit une fonction séparant l'en-tête d'un fichier image de sa partie donnée.
Mon problème se situe dans le résultat. Lorsque je regarde avec un éditeur hexa la position du fin de header d'un fichier jpg je le trouve en @ 209. Mon fichier header.dat "pèse" lui 213 Octets, mieux encore le fichier data.dat lui "pèse" 144483 octets au lieu des 143955 qu'il devrait????
Une idée?
D'avance merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 def separate(file_name): try: load = open(file_name, "rb").read() h_end = chr(255) + chr(196) header_name = "hd_src.dat" data_name = "d_src.dat" idx = 0 typ = ord(load[0]) # lecture du 1er car du fichier et conversion du contenu en entier if typ == 71: # G # print 'Le fichier ' + file_name + ' est une image GIF' None elif typ == 137: # print 'Le fichier ' + file_name + ' est une image PNG' None elif typ == 255: # print 'Le fichier ' + file_name + ' est une image JPG' # recup du header compris entre le premier octet et le premier FF C4 # puis des datas store_h = open(header_name, "w") # find FF C4 ou chr(255) chr(196) idx = load.find(h_end) + 2 print "Trouver FF C4 en : " + str(idx) store_h.write(load[0 : idx]) store_h.close() store_d = open(data_name, "w") store_d.write(load[idx:]) store_d.close() print str(len(load) - idx) + " donnees lues." else: print 'Le fichier ' + file_name + ' n\'est pas une image!' print typ except: print 'Fichier ' + file_name + ' inexistant!'
Partager