From 50032376800c0f86895a896534455f816aa66c2c Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sun, 6 Sep 2015 17:55:47 +0200 Subject: [PATCH] =?UTF-8?q?Parsage=20du=20corps=20de=20l'image=20op=C3=A9r?= =?UTF-8?q?ationnel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/bmp.py | 5 +++-- code/classes.py | 46 ++++++++++++++++++++++++++++++++++++++----- code/classes.pyc | Bin 1988 -> 2908 bytes code/contentDat.algo | 1 - 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/code/bmp.py b/code/bmp.py index 448ff3b..fb46348 100644 --- a/code/bmp.py +++ b/code/bmp.py @@ -19,6 +19,7 @@ headerSize = 54 header = BMPHeader( fileData[:headerSize] ) content = BMPContent( fileData[header.offset:], header ) -print header.bpp print -print content.map \ No newline at end of file +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 diff --git a/code/classes.py b/code/classes.py index d6b5adf..f3b0338 100644 --- a/code/classes.py +++ b/code/classes.py @@ -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)) + " " - \ No newline at end of file + + 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 \ No newline at end of file diff --git a/code/classes.pyc b/code/classes.pyc index 121bf9fad892df960a271f0e2d1efd6af4ce5a76..9f30776219c48981a980f7ea4a5632e5034ceb3a 100644 GIT binary patch delta 1023 zcmbtSOKTHR6h3!ec|e=OAdOIoSn3rOTZ&FQW0;suW9BMZqy&lX zTv%r9(w!UsgFnNCYpDzI2k7@r(i+5_GjqN<_dLFH?z#7K>C4GY`{zXQn}2YBTSkwK z{|!iT9T4ElNucDl$Ux-LI@Xp1c?s+zlaj!Zpdf*JWI~81_o~HD^+mVjfu{(mk#t_A z@7!~JV@XfR0I9b0ENKo=WExZ_W@vF_`k5^qP1==PMv00=8X`TB$1dsjZ0UXw<53?b z3@o|1xi5PTgPN{1b4)-H)s4pjZ5i|#xh{L|D6;2B1<@uirohH}HXEC%Aoq_U_qV|t z8U`Rl4d&!!5p6wxFAs+d*~(y*^}}J}E6AIYEtSzmgmX#{+~s~`VL(xyQj}C@lUa8BwsEoO_;Dk|$VB{h zJB$Nt7-1{RYf(2`YH2o5rB{>2kbWzQYrC-tW20y2pf{`5isCTiZb#kpyHmSbfoB1d z%mc(KDOcs}OGKxjJgcJ0kO^h0V|Y(Flh&k_e)XP|8J@7R=jb{7_BXCIxE%`3*|nL4 z!gImlL&4>Nk{uHj+%`^;!&$9nom1`L&fvymxK$-vwkyqg`U0VvzVhn*yHFEuOH={x z_J7tM=LhG%3)8`hfb^}mbU7Pj5}F6FjrB52J`JNjL*R(@#q@`F`wAzu21(eirwZ=s cA>ko42caRN&l2X4R!=|Xj^~*%H9NKN8?C*W@Bjb+ delta 363 zcmX|5OG*Pl5Pj7>JrhSmM8Obr5d?AYvvQH0NFpj(DD)8gK=3zNBq5__dXdElLcGD8 z#5=h41|Gqk7qBXdP1UQe_v-h#@?L4{?{c`;`Rd%`?`e()?AaDW!e)>VUV$ladBwRx z;v>=j6d~~tN5NaSVTK+z`Rpy3aKVr(47iCf)EKWy_wk7%P|Bo64qPitc99bfyBm0( zQQknoX*dtL#+1Z(MYW;0_GugEd{rEo;=^yoj#q%^0rki*+C|Cbir%E}cnC1MeVoP2 zjjiH564i?0LWaA3+ImP`FLkymLQuSfN3|M%ci6K92B-=d3iKS6sn{>wtZ#}UvwU+J XNx?4&V