From 82107726e8d8b2bd755976491c414eed2e645b5a Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Mon, 7 Sep 2015 16:16:37 +0200 Subject: [PATCH] =?UTF-8?q?Padding=20corrig=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/classes.py | 22 ++++++++++++++-------- code/classes.pyc | Bin 6178 -> 6277 bytes 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/code/classes.py b/code/classes.py index 1ddd08b..05980e3 100644 --- a/code/classes.py +++ b/code/classes.py @@ -24,7 +24,10 @@ class BMPHeader: self.vertRes = 0; # résolution verticale (pixels) self.colorNb = 0; # nombre de couleurs de l'image (ou 0) self.colorINb = 0; # nombre d'images importantes (ou 0) - + + self.rowSize = 0; # longueur réelle d'une ligne + self.padding = 0; # bourrage de fin de ligne (nb de bytes) + # convertit les octets en entier def toInt(self, bytes): intReturn = 0; @@ -49,12 +52,16 @@ 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) + + # calculated values + self.rowSize = self.size / self.height # taille réelle d'une ligne (+padding) + self.padding = self.rowSize - self.width*self.bpp/8 # bourrage (nb de bytes) + self.readableData = "" for byte in binHeader: self.readableData += str(ord(byte)) + " " - - + # Affiche au format humain, toutes les infos du header def info(self): print @@ -77,7 +84,8 @@ class BMPHeader: print "=====================" print "INFORMATIONS COMP." print "=====================" - print "padding: %s" % ( (4- self.width*3 %4)%4 ) + print "rowsize: %s" % ( hex(self.rowSize ) ) + print "rowEncoded: %s" % ( hex(self.padding ) ) print "=====================" print @@ -102,8 +110,7 @@ class BMPContent: exit() # taille avec un padding de 1 - padding = ( 4 - header.width*3 % 4 ) % 4 - correctSize = header.width * ( padding + header.bpp/8 ) * header.height; + correctSize = header.rowSize * header.height; # si le fichier a une mauvaise taille donc mauvais format if not len(binContent) == correctSize: @@ -128,7 +135,7 @@ class BMPContent: i += 3 # on passe à la suite - i += padding # on saute le padding de saut de ligne + i += header.padding # on saute le padding de saut de ligne self.map = self.map[::-1] # on inverse les lignes @@ -146,7 +153,6 @@ class BMPContent: 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: diff --git a/code/classes.pyc b/code/classes.pyc index 1e861da0aa195db3159045e7c9a22501825b1dd4..6de5c1c2b2456c0bc536facd19bdfd501887fb67 100644 GIT binary patch delta 1636 zcmZ8hO>7%Q6n?YoUC00S`aemHapPoBh^X6;L>#CT^5Yf>+9}Wq2?fWys@4SC@vgui zM?FN93P?!NzzHD%60`>nAXhyh!4)A62yuV|+>ki*#EAof_hv#JVefo;^Ua%izcZhl zx!ExFKNHb!KR7afXCEHjf2YP^1hA6=M+s?g0It{?06gO%fSnPy*yp7njPjuO`W5d@ zSIYgC<9OZcVp-cYYNRMW){5c_EzC4=PrJn|abACoRmDBM#(o8XPkEoGcVqwH*ug z@35;fh8#MjV(=&&PaGMWv)&Yn0S*WlLe?&8X3x7~AG=fPs#$J#y=y_}hZY|BJg6oL3E8Zp<&oipOQ=#p+>MgNM{ z(^;hWG(nZ1CN5>47H`DTMm`db%!qemZ`EdSL8eD0?A2CZ<@XfP4-9P0(@AX{zKMXz z!GD`_KoyGOkh!=fK8-(o8LQmE!XxUCJJ2BrQ9oc_MmoHrf!_p2$6Ry)uFItD7~q89 zAOyoZ5SS#Zy@wh$(R*-Ui1Ufk4aH7@WM6~>)q)0$3@BrZVqJqM*%^hvF`!sRdlSO^ zKM_*Ip-z4=+7pIVbYWk>Rh*FnF-3Hcz`{OUlJ-?qU37&xcjdCm={l z55i;uKPMu4J^}lS$2}hv3(0jcOs+gmne_g_AD>0ZP9bn=R7@R!JM;oob-LEFOnYvZ z&x>D^rL&ys5l|KQ_WC7n=@PNnSw(TWVRNlBz7kaNh0>25vi`M}n8=6f(Bw zbzNzq?+xYc*eXMYX;``JL%Z&d>C0U+&NV=~~%;S{XBA%I_dj!Q} zyF|(ribA@roP12Yka5=DN7AQ90DDV|votGc5q1i1+zKl&o9-t+O)y6w+qz29Ds^@c-|b3)9weE2RTR_&zC=(ZAh+f7-0pP)+`-8` z6{{t_&QG(l_$B|mLArOva^Y>f)Q#fB(?8}nfvano64MbVOG#xk*+q{*N` z68cb9&;^%z9~2)%WqlB3UxJ|cqOXGZ?u!VrZ$9}4=^*o#+;G`m zPX1}UR0`N&AOH(?4(PDxl;yVhyu53knrEG@vkp#D5C`n~ox0a_y}nbDzonkD0t3ok zvp?{v5C&Db8eJ-DaWNxWd>M}j#uZ+CYSN9)iJF^ZH`@ledCFr_EHf0h>aIpx^}6z} zF!?_AlUVFEUDxmIJ-IObY6G7y^w}-s>g&XI)K+d=?2l|DKr6A26z z)>vMeSv+)g&UafQH-e~ijtVe-s2zm@k!w()l;^EF<;M{UB1|7h8b#}bvA?Nb<+4aMJ@j0h3vu6Mf^MOPX zc|$*Nm@FsCD&}h6>o`@OaHaN}ojng}Bx?40UdKgBuy^Zn!ykJ4&a?-(5S%%H%~yxz z&xE7=uXHG@*Zbkl( zai91Q;vf$|-D)XeiJ~4CXV94Iq9|-mhO@}9#GpDvHOD$PN8wQ@U%^m?Z|Z21^UgW> zUA9+U-Fgz&O!6;ahUTD%VbkXmJ>M4S!cO7ZA@l05 z1443ZkiwUVSy5T-f;%Pj@fInbLhi6m&SMNJ7LFodnp)rtCmi-R3|&2FoZB~j6iD-? zr>^6PBTDk=;>!l#a8G_*`~a^n;yKF>{faT*O9-Teu}`C!rq9^Gj&I~2r8SdXK;|0R OYjUq#F&epgF8Ln-S_