Padding corrigé
This commit is contained in:
parent
9210ece885
commit
82107726e8
|
@ -25,6 +25,9 @@ class BMPHeader:
|
||||||
self.colorNb = 0; # nombre de couleurs de l'image (ou 0)
|
self.colorNb = 0; # nombre de couleurs de l'image (ou 0)
|
||||||
self.colorINb = 0; # nombre d'images importantes (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 <bytes> en entier
|
# convertit les octets <bytes> en entier
|
||||||
def toInt(self, bytes):
|
def toInt(self, bytes):
|
||||||
intReturn = 0;
|
intReturn = 0;
|
||||||
|
@ -50,11 +53,15 @@ class BMPHeader:
|
||||||
self.colorNb = self.toInt(binHeader[46:50]) # nombre de couleurs de l'image (ou 0)
|
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.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 = ""
|
self.readableData = ""
|
||||||
for byte in binHeader:
|
for byte in binHeader:
|
||||||
self.readableData += str(ord(byte)) + " "
|
self.readableData += str(ord(byte)) + " "
|
||||||
|
|
||||||
|
|
||||||
# Affiche au format humain, toutes les infos du header
|
# Affiche au format humain, toutes les infos du header
|
||||||
def info(self):
|
def info(self):
|
||||||
print
|
print
|
||||||
|
@ -77,7 +84,8 @@ class BMPHeader:
|
||||||
print "====================="
|
print "====================="
|
||||||
print "INFORMATIONS COMP."
|
print "INFORMATIONS COMP."
|
||||||
print "====================="
|
print "====================="
|
||||||
print "padding: %s" % ( (4- self.width*3 %4)%4 )
|
print "rowsize: %s" % ( hex(self.rowSize ) )
|
||||||
|
print "rowEncoded: %s" % ( hex(self.padding ) )
|
||||||
print "====================="
|
print "====================="
|
||||||
print
|
print
|
||||||
|
|
||||||
|
@ -102,8 +110,7 @@ class BMPContent:
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
# taille avec un padding de 1
|
# taille avec un padding de 1
|
||||||
padding = ( 4 - header.width*3 % 4 ) % 4
|
correctSize = header.rowSize * header.height;
|
||||||
correctSize = header.width * ( padding + header.bpp/8 ) * header.height;
|
|
||||||
|
|
||||||
# si le fichier a une mauvaise taille donc mauvais format
|
# si le fichier a une mauvaise taille donc mauvais format
|
||||||
if not len(binContent) == correctSize:
|
if not len(binContent) == correctSize:
|
||||||
|
@ -128,7 +135,7 @@ class BMPContent:
|
||||||
|
|
||||||
i += 3 # on passe à la suite
|
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
|
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
|
width = len( map[0] ) # nb de colonnes = taille des lignes de la map
|
||||||
padding = ( 4 - width*3 % 4 ) % 4 # padding de bourrage de lignes
|
padding = ( 4 - width*3 % 4 ) % 4 # padding de bourrage de lignes
|
||||||
|
|
||||||
|
|
||||||
self.bin = ""
|
self.bin = ""
|
||||||
for line in self.map[::-1]:
|
for line in self.map[::-1]:
|
||||||
for pixel in line:
|
for pixel in line:
|
||||||
|
|
BIN
code/classes.pyc
BIN
code/classes.pyc
Binary file not shown.
Loading…
Reference in New Issue