diff --git a/code/bmp.py b/code/bmp.py index 1f351ac..0b28047 100644 --- a/code/bmp.py +++ b/code/bmp.py @@ -4,7 +4,7 @@ ########################### # classes -from headerClass import * +from classes import * import dep import sys @@ -16,9 +16,9 @@ with open(sys.argv[1]) as f: headerSize = 54 -header = BMPHeader( fileData[0:headerSize] ) -content = fileData[headerSize:] +header = BMPHeader( fileData[:headerSize] ) +content = BMPContent( fileData[header.offset:], header.width, header.bpp) -print header.offset +print header.bpp print -print content \ No newline at end of file +print content.map \ No newline at end of file diff --git a/code/headerClass.py b/code/classes.py similarity index 63% rename from code/headerClass.py rename to code/classes.py index 22d80d0..6010be3 100644 --- a/code/headerClass.py +++ b/code/classes.py @@ -1,7 +1,12 @@ # ~*~ encoding: utf-8 ~*~ # + +################################################# +# classe qui parse le header (binaire) en objet # +################################################# class BMPHeader: + # convertit les octets en entier def toInt(self, bytes): intReturn = 0; for i, byte in enumerate(bytes): @@ -24,4 +29,25 @@ class BMPHeader: self.vertRes = self.toInt(binHeader[42:46]) # résolution verticale (pixels) self.colorNb = self.toInt(binHeader[46:50]) # nombre de couleurs de l'image (ou 0) self.colorINb = self.toInt(binHeader[50:54]) # nombre d'images importantes (ou 0) - self.header = binHeader \ No newline at end of file + self.header = binHeader + + +#################################################### +# classe qui parse le content (binaire) en matrice # +#################################################### +class BMPContent: + + # CONSTRUCTEUR: parse le content (bin) avec les informations: + # longueur de l'image (en pixels) + # nombre de bits par pixel + def __init__(self, binContent, width, bpp): + # gestion du bpp + if( bpp != 24 ): + print "ne prends pas en charge les versions autre que bmp24"; + exit + + # matrice du contenu + self.map = [] + + for byte in binContent: + self.map.append( ord(byte) ); \ No newline at end of file diff --git a/code/classes.pyc b/code/classes.pyc new file mode 100644 index 0000000..7437e8c Binary files /dev/null and b/code/classes.pyc differ