diff --git a/code/bmp.py b/code/bmp.py index 893a69b..57c3627 100644 --- a/code/bmp.py +++ b/code/bmp.py @@ -15,9 +15,6 @@ img.parse( sys.argv[1] ); ### print header human-readable data ### print img.header.info() -print -print img.content.readableData -print ### print file human-readable data ### #print img.readableData @@ -28,7 +25,18 @@ print #print img.content.readableData -for line in img.content.map: - for pixel in line: - print "rgb(%s, %s, %s)" % (pixel.r, pixel.g, pixel.b) - print \ No newline at end of file + + +#for line in img.content.map: +# for pixel in line: +# print "rgb(%s, %s, %s)" % (pixel.r, pixel.g, pixel.b) +# print + +for byte in img.content.bin: + print ord(byte), +print + +img.content.unparse( img.content.map ) + +for byte in img.content.bin: + print ord(byte), \ No newline at end of file diff --git a/code/classes.py b/code/classes.py index 102df19..b8facba 100644 --- a/code/classes.py +++ b/code/classes.py @@ -140,9 +140,20 @@ class BMPContent: # unparse une map de pixels en binaire def unparse(self, map): - print "To Do!" - print "unparsing content and creating header" - + self.map = map + + height = len( map ) # nb de lignes = taille de la map + width = len( map[0] ) # nb de colonnes = taille des lignes de la map + padding = ( 4 - width*3 % 4 ) % 4 # padding de bourrage de lignes + + + self.bin = "" + for line in self.map[::-1]: + for pixel in line: + self.bin += unichr(pixel.b) + unichr(pixel.g) + unichr(pixel.r) + for zero in range(0, padding): + self.bin += unichr(0) + ################################# # classe contenant un pixel RGB # ################################# diff --git a/code/classes.pyc b/code/classes.pyc index 78f0a29..1de96c7 100644 Binary files a/code/classes.pyc and b/code/classes.pyc differ