Parsage du corps de l'image opérationnel
This commit is contained in:
parent
784622d3da
commit
5003237680
|
@ -19,6 +19,7 @@ headerSize = 54
|
|||
header = BMPHeader( fileData[:headerSize] )
|
||||
content = BMPContent( fileData[header.offset:], header )
|
||||
|
||||
print header.bpp
|
||||
print
|
||||
print content.map
|
||||
for line in content.map:
|
||||
for pixel in line:
|
||||
print "rgb(%s, %s, %s)" % (pixel.r, pixel.g, pixel.b)
|
|
@ -32,7 +32,6 @@ class BMPHeader:
|
|||
self.header = binHeader
|
||||
|
||||
|
||||
|
||||
####################################################
|
||||
# classe qui parse le content (binaire) en matrice #
|
||||
####################################################
|
||||
|
@ -46,8 +45,45 @@ class BMPContent:
|
|||
print "ne prends pas en charge les versions autre que bmp24";
|
||||
exit
|
||||
|
||||
# si le fichier a une mauvaise taille donc mauvais format
|
||||
if len(binContent) != (2 + header.width * header.bpp/8 ) * header.height:
|
||||
print "Mauvais format"
|
||||
exit
|
||||
|
||||
self.map = ""
|
||||
for byte in binContent:
|
||||
self.map += str(ord(byte)) + " "
|
||||
|
||||
|
||||
self.map = []
|
||||
i = 0
|
||||
|
||||
for line in range(0, header.height):
|
||||
self.map.append( [] ) # on créé la colonne
|
||||
|
||||
for pix in range(0, header.width):
|
||||
self.map[line].append( # on ajoute le pixel à la ligne
|
||||
RGBPixel(
|
||||
ord( binContent[i+2] ), # rouge
|
||||
ord( binContent[i+1] ), # vert
|
||||
ord( binContent[i+0] ) # bleu
|
||||
)
|
||||
);
|
||||
|
||||
i += 3 # on passe à la suite
|
||||
|
||||
i += 2 # on saute le padding de saut de ligne
|
||||
|
||||
self.map = self.map[::-1] # on inverse les lignes
|
||||
|
||||
|
||||
#################################
|
||||
# classe contenant un pixel RGB #
|
||||
#################################
|
||||
class RGBPixel:
|
||||
def __init__(self, r, g, b):
|
||||
self.r = r
|
||||
self.g = g
|
||||
self.b = b
|
||||
|
||||
def set(self, r, g, b):
|
||||
self.r = r
|
||||
self.g = g
|
||||
self.b = b
|
BIN
code/classes.pyc
BIN
code/classes.pyc
Binary file not shown.
|
@ -2,4 +2,3 @@ c = contenu binaire
|
|||
w = pixels d'une ligne
|
||||
h = pixels d'une colonne
|
||||
b = octets par pixels
|
||||
|
||||
|
|
Loading…
Reference in New Issue