From 16b42b7380c9be151332f84c2aa5c84b51643630 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Mon, 7 Sep 2015 10:11:04 +0200 Subject: [PATCH] =?UTF-8?q?pb=20padding=20r=C3=A9gl=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/bmp.py | 8 ++++++-- code/classes.py | 27 +++++++++++++++------------ code/classes.pyc | Bin 5648 -> 5917 bytes 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/code/bmp.py b/code/bmp.py index d424d54..893a69b 100644 --- a/code/bmp.py +++ b/code/bmp.py @@ -11,9 +11,13 @@ import sys img = BMPFile() img.parse( sys.argv[1] ); -### print header human-readable data ### -#print img.header.info() +### print header human-readable data ### +print img.header.info() + +print +print img.content.readableData +print ### print file human-readable data ### #print img.readableData diff --git a/code/classes.py b/code/classes.py index 3c7ccb6..102df19 100644 --- a/code/classes.py +++ b/code/classes.py @@ -9,7 +9,7 @@ class BMPHeader: # CONSTRUCTEUR: initialise les variables def __init__(self): - self.header = 0; # header brut (format initial: bin) + self.bin = 0; # header brut (format initial: bin) self.signature = 0; # signature (4D42) self.fileSize = 0; # taille du fichier bmp (bytes) self.offset = 0; # début de l'image (bytes) @@ -75,7 +75,12 @@ class BMPHeader: print "nombre de couleur: %s" % ( hex(self.colorNb ) ) print "nb couleurs impor: %s" % ( hex(self.colorINb ) ) print "=====================" - print + print "INFORMATIONS COMP." + print "=====================" + print "padding: %s" % ( (4- self.width*3 %4)%4 ) + print "=====================" + + #################################################### # classe qui parse le content (binaire) en matrice # @@ -97,20 +102,13 @@ class BMPContent: exit() # taille avec un padding de 1 - correctSizes = [ - ( header.width * ( 1 +header.bpp/8 ) ) * header.height, # padding de 1 - ( header.width * ( 2 + header.bpp/8 ) ) * header.height # padding de 2 - ] + padding = ( 4 - header.width*3 % 4 ) % 4 + correctSize = header.width * ( padding + header.bpp/8 ) * header.height; # si le fichier a une mauvaise taille donc mauvais format - padding = 0 - if not len(binContent) in correctSizes: + if not len(binContent) == correctSize: print "Mauvais format (erreur de taille)" exit() - elif len(binContent) == correctSizes[0]: - padding = 1 - else: - padding = 2 # attribution de la map self.map = [] @@ -139,6 +137,11 @@ class BMPContent: for byte in binContent: self.readableData += str(ord(byte)) + " " + + # unparse une map de pixels en binaire + def unparse(self, map): + print "To Do!" + print "unparsing content and creating header" ################################# # classe contenant un pixel RGB # diff --git a/code/classes.pyc b/code/classes.pyc index e6f2d3c84e51e66a0e7f19eb29a7a4bdca5abe42..78f0a29513d4353325041211d799adc40c757ab4 100644 GIT binary patch delta 1070 zcmZ8gTTc^F5T3J_Zri1lwp*})&;lh{ED{hRMq(o2qDZ)SN`lcSDcuGaObgvL8q>xH z^a*1mClY-yArXD^!Sq=lcsKe#j3(+IaAsG8*ml0m%+7vi<~!5p{jUc!`FA92Pk;ZQ zJz<&*0IPPnvB&a?${9wDpK6eW74#<1oUw+iMcI%QgUeSei69PE0%`#3Dp&>>7_^=u zXgw+b$eYPVDtN%goH%mK%ug@yx$&i$h53ADVqtD^z)50yvtU_vdF?{x_|xmybg)fb ziI1W8tY2(|`&5;wtV4+KnLsB#;2H5bIxAxOIo7lLF01goDT_7zT7bIe?c$TZ)O{0O zCx8Gfgx?|&hS0)j-dK;tNK@A%ONN>R>k?QB4kFVa2=$|E&36DS6_RZRmC9h$6>t@( zG1z8MQ(!{^=RQ~gl*Yvzo>&H015#)O71E%t!h^Tq2FUj*wk4RnwF`BjMp8@@=}7KI z5ZY46=Z1*5hVO;`PiTH(Tc&dvl_)TZ+*^mRj1l(gMXxaO?*`k(UsxPO&c}6V89=5FA(+JB z^~$qiC^jX&8BOLh%sDhU;8~_h693thYj={IDAhhpzG&29U)Uv@#{1LpcJy$o04kd(B{?{b-!i5->PH=^D6YI0KZ5bbz8Vmi^m@nq@7`p;8RFqDLN!1UXG4j)FGRrGJcrr zHHfJ0cgT*TrE)uhDIpkd>ae*73uHC4j6}%L`I>--sg`_?~07_iw!qoDjph;n~E;1slNc-a6e(=w(PUkU%h~6D(vApQIk@tUkq~>5urbE7Jd-te`ERarTc8 iWS!&@^b+y5@n)uE@h}cI<&-FL4u55G`do4