From 3849595953ad6d402d6e07d2059a460f71443591 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sun, 6 Sep 2015 18:35:58 +0200 Subject: [PATCH] =?UTF-8?q?m=C3=A0j=20classes.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/bmp.py | 5 ++--- code/classes.py | 25 ++++++++++++++----------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/code/bmp.py b/code/bmp.py index fb46348..cd96659 100644 --- a/code/bmp.py +++ b/code/bmp.py @@ -6,7 +6,6 @@ # classes from classes import * -import dep import sys fileData = "" @@ -19,7 +18,7 @@ headerSize = 54 header = BMPHeader( fileData[:headerSize] ) content = BMPContent( fileData[header.offset:], header ) -print for line in content.map: for pixel in line: - print "rgb(%s, %s, %s)" % (pixel.r, pixel.g, pixel.b) \ No newline at end of file + print "rgb(%s, %s, %s)" % (pixel.r, pixel.g, pixel.b) + print \ No newline at end of file diff --git a/code/classes.py b/code/classes.py index f3b0338..9d04d41 100644 --- a/code/classes.py +++ b/code/classes.py @@ -15,6 +15,7 @@ class BMPHeader: # CONSTRUCTEUR: parse le header au format bin en objet def __init__(self, binHeader): + self.header = binHeader # header brut (format initial: bin) self.signature = self.toInt(binHeader[ 0: 2]) # signature (4D42) self.fileSize = self.toInt(binHeader[ 2: 6]) # taille du fichier bmp (bytes) self.offset = self.toInt(binHeader[10:14]) # début de l'image (bytes) @@ -29,8 +30,9 @@ 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) - self.header = binHeader - + + + #################################################### # classe qui parse le content (binaire) en matrice # @@ -45,13 +47,19 @@ class BMPContent: print "ne prends pas en charge les versions autre que bmp24"; exit + # taille avec un padding de 1 + correctSizes = [ + ( 0 + header.width * header.bpp/8 ) * header.height, + ( 1 + header.width * header.bpp/8 ) * header.height, + ( 2 + header.width * header.bpp/8 ) * header.height + ] + # si le fichier a une mauvaise taille donc mauvais format - if len(binContent) != (2 + header.width * header.bpp/8 ) * header.height: + if not len(binContent) in correctSizes: print "Mauvais format" exit - - + # attribution de la map self.map = [] i = 0 @@ -81,9 +89,4 @@ 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 \ No newline at end of file + self.b = b \ No newline at end of file