Parsage du corps de l'image opérationnel

This commit is contained in:
xdrm-brackets 2015-09-06 17:55:47 +02:00
parent 784622d3da
commit 5003237680
4 changed files with 44 additions and 8 deletions

View File

@ -19,6 +19,7 @@ headerSize = 54
header = BMPHeader( fileData[:headerSize] ) header = BMPHeader( fileData[:headerSize] )
content = BMPContent( fileData[header.offset:], header ) content = BMPContent( fileData[header.offset:], header )
print header.bpp
print print
print content.map for line in content.map:
for pixel in line:
print "rgb(%s, %s, %s)" % (pixel.r, pixel.g, pixel.b)

View File

@ -32,7 +32,6 @@ class BMPHeader:
self.header = binHeader self.header = binHeader
#################################################### ####################################################
# classe qui parse le content (binaire) en matrice # # 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"; print "ne prends pas en charge les versions autre que bmp24";
exit 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 = []
self.map += str(ord(byte)) + " " 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

Binary file not shown.

View File

@ -2,4 +2,3 @@ c = contenu binaire
w = pixels d'une ligne w = pixels d'une ligne
h = pixels d'une colonne h = pixels d'une colonne
b = octets par pixels b = octets par pixels