màj classes.py

This commit is contained in:
xdrm-brackets 2015-09-06 18:35:58 +02:00
parent 6e8f45407c
commit 3849595953
2 changed files with 16 additions and 14 deletions

View File

@ -6,7 +6,6 @@
# classes # classes
from classes import * from classes import *
import dep
import sys import sys
fileData = "" fileData = ""
@ -19,7 +18,7 @@ headerSize = 54
header = BMPHeader( fileData[:headerSize] ) header = BMPHeader( fileData[:headerSize] )
content = BMPContent( fileData[header.offset:], header ) content = BMPContent( fileData[header.offset:], header )
print
for line in content.map: for line in content.map:
for pixel in line: for pixel in line:
print "rgb(%s, %s, %s)" % (pixel.r, pixel.g, pixel.b) print "rgb(%s, %s, %s)" % (pixel.r, pixel.g, pixel.b)
print

View File

@ -15,6 +15,7 @@ class BMPHeader:
# CONSTRUCTEUR: parse le header au format bin en objet # CONSTRUCTEUR: parse le header au format bin en objet
def __init__(self, binHeader): def __init__(self, binHeader):
self.header = binHeader # header brut (format initial: bin)
self.signature = self.toInt(binHeader[ 0: 2]) # signature (4D42) self.signature = self.toInt(binHeader[ 0: 2]) # signature (4D42)
self.fileSize = self.toInt(binHeader[ 2: 6]) # taille du fichier bmp (bytes) 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) self.offset = self.toInt(binHeader[10:14]) # début de l'image (bytes)
@ -29,7 +30,8 @@ class BMPHeader:
self.vertRes = self.toInt(binHeader[42:46]) # résolution verticale (pixels) 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.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)
self.header = binHeader
#################################################### ####################################################
@ -45,13 +47,19 @@ 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
# 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 # 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" print "Mauvais format"
exit exit
# attribution de la map
self.map = [] self.map = []
i = 0 i = 0
@ -82,8 +90,3 @@ class RGBPixel:
self.r = r self.r = r
self.g = g self.g = g
self.b = b self.b = b
def set(self, r, g, b):
self.r = r
self.g = g
self.b = b