Ecriture à la fin uniquement si désiré

This commit is contained in:
xdrm-brackets 2015-10-13 11:08:01 +02:00
parent e060a0888c
commit fbdff1c750
8 changed files with 246 additions and 216 deletions

View File

@ -330,8 +330,8 @@ class RGBPixel:
self.intData = [ int( (r+g+b) / 3 ) ] self.intData = [ int( (r+g+b) / 3 ) ]
self.binData = chr( self.intData[0] ) self.binData = chr( self.intData[0] )
else: else:
self.intData = [ b, g, r ] self.intData = [ g, b, r ]
self.binData = chr(b) + chr(g) + chr(r) self.binData = chr(g) + chr(b) + chr(r)
def setRGB(self, r=0, g=0, b=0, x=None, y=None, bpp=24): def setRGB(self, r=0, g=0, b=0, x=None, y=None, bpp=24):
@ -411,7 +411,7 @@ class RGBPixel:
class BMPFile: class BMPFile:
# CONSTRUCTEUR: instancie les attributs # CONSTRUCTEUR: instancie les attributs
def __init__(self): def __init__(self, drawerBool=False):
self.header = BMPHeader() self.header = BMPHeader()
self.content = BMPContent() self.content = BMPContent()
self.binData = "" self.binData = ""
@ -419,10 +419,13 @@ class BMPFile:
self.binPalette = "" self.binPalette = ""
self.intPalette = [] self.intPalette = []
self.drawer = None; self.drawerBool = drawerBool
if( self.drawerBool ):
self.drawer = None;
# parse à partir de <binFile> en objets <BMPHeader> et <BMPContent> # parse à partir de <binFile> en objets <BMPHeader> et <BMPContent>
def parse(self, binFile=""): def parse(self, binFile=""):
# si on a défini le fichier # si on a défini le fichier
if binFile == "": if binFile == "":
print "<BMPFile.parse()> need an argument" print "<BMPFile.parse()> need an argument"
@ -451,10 +454,11 @@ class BMPFile:
for byte in self.binPalette: for byte in self.binPalette:
self.intPalette.append( ord(byte) ) self.intPalette.append( ord(byte) )
self.drawer = Drawer( if( self.drawerBool ):
len(self.content.map[0]), self.drawer = Drawer(
len(self.content.map) len(self.content.map[0]),
); len(self.content.map)
);
# unparse à partir d'un <BMPHeader> et d'un <BMPContent> # unparse à partir d'un <BMPHeader> et d'un <BMPContent>
def unparse(self, newBpp=None): def unparse(self, newBpp=None):

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

BIN
code/a.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 KiB

View File

@ -33,8 +33,8 @@ def interfaceLoop():
print "| TRAITEMENT D'IMAGE |" print "| TRAITEMENT D'IMAGE |"
print "| |" print "| |"
print "+---------------------------+" print "+---------------------------+"
print "| <in> %s |" % exactLength( sys.argv[1], 19, -1) print "| <A> %s |" % exactLength( sys.argv[1], 21, -1)
print "| <out> %s |" % exactLength( sys.argv[2], 19, -1) print "| <B> %s |" % exactLength( sys.argv[2], 21, -1)
print "+---------------------------+" print "+---------------------------+"
print "| %s |" % exactLength("TESTS DE FICHIER", 25, 0) print "| %s |" % exactLength("TESTS DE FICHIER", 25, 0)
print "| %s |" % exactLength("", 25, 0) print "| %s |" % exactLength("", 25, 0)
@ -95,7 +95,7 @@ def interfaceLoop():
if h != "": if h != "":
arg2 = int(h) arg2 = int(h)
print startStr print startStr
testManualCreation(arg1, arg2) # teste la création d'un fichier à partir d'une matrice uniquement testManualCreation(image1, arg1, arg2) # teste la création d'un fichier à partir d'une matrice uniquement
elif action == 1: elif action == 1:
print startStr print startStr
result = testFileIntegrity(image1) # teste le PARSE/UNPARSE result = testFileIntegrity(image1) # teste le PARSE/UNPARSE
@ -230,12 +230,17 @@ def interfaceLoop():
print '- [PRESS ANY KEY TO CONTINUE] -'; print '- [PRESS ANY KEY TO CONTINUE] -';
print '- [ BUT PRESS "Q" TO QUIT ] -'; print '- [ BUT PRESS "Q" TO QUIT ] -';
loopKey = raw_input('- [ OR PRESS "R" TO RELOAD ] -'); print '- [ OR PRESS "R" TO RELOAD ] -';
loopKey = raw_input('- [ OR PRESS "S" TO SAVE ] -');
if( loopKey == 'q' or loopKey == 'Q' ): if( loopKey == 'q' or loopKey == 'Q' ):
exit(); exit();
elif( loopKey == 'r' or loopKey == 'R' ): elif( loopKey == 'r' or loopKey == 'R' ):
loadFiles(); loadFiles();
elif( loopKey == 's' or loopKey == 'S' ):
out = raw_input("out file: ");
image1.unparse();
image1.write(out);
interfaceLoop(); interfaceLoop();
@ -270,15 +275,17 @@ print "| |"
print "+---------------------------+" print "+---------------------------+"
# ON CREE LES IMAGES # ON CREE LES IMAGES
image1, file1 = BMPFile(), ""; image1, file1 = BMPFile(True), "";
image2, file2 = BMPFile(), ""; image2, file2 = BMPFile(), "";
with open( sys.argv[1] ) as file: with open( sys.argv[1] ) as file:
file1 += file.read(); file1 += file.read();
try:
with open( sys.argv[2] ) as file: with open( sys.argv[2] ) as file:
file2 += file.read() file2 += file.read()
except Exception as e:
print e;
def loadFiles(): def loadFiles():
image1.parse( file1 ); image1.parse( file1 );
@ -288,10 +295,11 @@ def loadFiles():
image1.drawer.setPixel( pix ); image1.drawer.setPixel( pix );
image1.drawer.refresh(); image1.drawer.refresh();
try: if( file2 != "" ):
image2.parse( file2 ); image2.parse( file2 );
except Exception as e:
print e;
loadFiles(); loadFiles();
interfaceLoop(); interfaceLoop();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

After

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

View File

@ -10,6 +10,7 @@ from tests import *
from utility import Drawer from utility import Drawer
import random import random
import os
import sys import sys
import time import time
from math import log from math import log
@ -98,14 +99,14 @@ def defaultTest(img):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -121,33 +122,34 @@ def defaultTest(img):
# @history # @history
# Unparse une matrice de pixels aléatoire de taille 100x100 # Unparse une matrice de pixels aléatoire de taille 100x100
# L'enregistre dans le fichier de sortie # L'enregistre dans le fichier de sortie
def testManualCreation(width=100, height=100): def testManualCreation(img, width=100, height=100):
t = Timer(); t = Timer();
d = Drawer(width, height); # AFFICHAGE
print "| Creating Image |",; t.reset(); print "| Creating Image |",; t.reset();
img = BMPFile() img.content.map = [];
img.drawer.setSize(width, height);
for y in range(0, height): for y in range(0, height):
img.content.map.append( [] ) img.content.map.append( [] )
for x in range(0, width): for x in range(0, width):
img.content.map[y].append( RGBPixel( img.content.map[y].append( RGBPixel(
random.randint(0, 255), r=random.randint(0, 255),
random.randint(0, 255), g=random.randint(0, 255),
random.randint(0, 255), b=random.randint(0, 255),
x=x,
y=y,
bpp=24 bpp=24
) ); ) );
d.setPixel( (x, y), (img.content.map[y][x].r, img.content.map[y][x].g, img.content.map[y][x].b) ); img.drawer.setPixel( img.content.map[y][x] );
img.unparse(); # img.unparse();
print "%s |" % (t.get()) print "%s |" % (t.get())
print "| Writing Image |",; t.reset(); # print "| Writing Image |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -177,7 +179,7 @@ def testFileIntegrity(img):
# A = BMPFile(); # Instanciation du BMPFile # A = BMPFile(); # Instanciation du BMPFile
# # Parsing # Parsing
# print "| Parsing file |",; t.reset(); # print "| Parsing file |",; t.reset();
# A.parse( binFile ); # A.parse( binFile );
# print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -191,7 +193,7 @@ def testFileIntegrity(img):
# Writing # Writing
print "| Writing file |",; t.reset(); print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) img.write( "parseUnparseTest.bmp" )
print "%s |" % (t.get()) print "%s |" % (t.get())
@ -199,15 +201,19 @@ def testFileIntegrity(img):
# lecture du fichier # lecture du fichier
print "| Reading Image |",; t.reset(); print "| Reading Image |",; t.reset();
with open( sys.argv[2] ) as file: with open( "parseUnparseTest.bmp" ) as file:
binFile = file.read() binFile = file.read()
print "%s |" % (t.get()) print "%s |" % (t.get())
os.remove("parseUnparseTest.bmp"); # suppression de l'image
# Parsing # Parsing
print "| Parsing file |",; t.reset(); print "| Parsing file |",; t.reset();
B.parse( binFile ); B.parse( binFile );
print "%s |" % (t.get()) print "%s |" % (t.get())
img.drawer.fill( img.content.map );
returnValue += "\n\n\n" + B.header.info(); returnValue += "\n\n\n" + B.header.info();
return returnValue; return returnValue;
@ -288,14 +294,14 @@ def testSaltAndPepper(img, seuilSet=50, seuilUnset=1, borneUnset=1, smooth=1):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( "SaltAndPepper.bmp" ) # img.write( "SaltAndPepper.bmp" )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -310,14 +316,14 @@ def testSaltAndPepper(img, seuilSet=50, seuilUnset=1, borneUnset=1, smooth=1):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -365,14 +371,14 @@ def testAdditiveBernouilliNoise(img, seuilA=10, seuilB=35):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( "AdditiveBernouilli.bmp" ) # img.write( "AdditiveBernouilli.bmp" )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -383,14 +389,14 @@ def testAdditiveBernouilliNoise(img, seuilA=10, seuilB=35):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -440,14 +446,14 @@ def testAdditiveGaussianNoise(img, sigma=10, seuil=35):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( "AdditiveGaussian.bmp" ) # img.write( "AdditiveGaussian.bmp" )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -462,14 +468,14 @@ def testAdditiveGaussianNoise(img, sigma=10, seuil=35):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -615,7 +621,7 @@ def printSNR(image, model):
# Parse A et B # Parse A et B
# Créer une matrice de pixels # Créer une matrice de pixels
# Unparse cette matrice et l'enregistre dans le fichier "compare.bmp" # Unparse cette matrice et l'enregistre dans le fichier "compare.bmp"
def imageForImageQuality(imgae1, image2): def imageForImageQuality(image, model):
t = Timer(); t = Timer();
# imageFile, modelFile = "", "" # imageFile, modelFile = "", ""
# image, model = BMPFile(), BMPFile() # image, model = BMPFile(), BMPFile()
@ -657,15 +663,17 @@ def imageForImageQuality(imgae1, image2):
255 - abs( image.content.map[y][x].b - model.content.map[y][x].b ) 255 - abs( image.content.map[y][x].b - model.content.map[y][x].b )
) ) ) )
print "%s |" % (t.get()) print "%s |" % (t.get())
print "| Unparsing |",; t.reset();
newImg.unparse();
print "%s |" % (t.get())
print "| Writing File |",; t.reset(); image.drawer.fill( newImg.content.map );
with open("compare.bmp", "w") as f:
f.write( newImg.binData ); # print "| Unparsing |",; t.reset();
print "%s |" % (t.get()) # newImg.unparse();
# print "%s |" % (t.get())
# print "| Writing File |",; t.reset();
# with open("compare.bmp", "w") as f:
# f.write( newImg.binData );
# print "%s |" % (t.get())
@ -723,24 +731,25 @@ def mergeImagesAdditive(A, B):
newImg.content.map.append( [] ); newImg.content.map.append( [] );
for aPix, bPix in zip(lineA, lineB): for aPix, bPix in zip(lineA, lineB):
newImg.content.map[aPix.y].append( RGBPixel( newImg.content.map[aPix.y].append( RGBPixel(
( aPix.r + bPix.r ) / 2, # moyenne du rouge r = ( aPix.r + bPix.r ) / 2, # moyenne du rouge
( aPix.g + bPix.g ) / 2, # moyenne du vert g = ( aPix.g + bPix.g ) / 2, # moyenne du vert
( aPix.b + bPix.b ) / 2, # moyenne du bleu b = ( aPix.b + bPix.b ) / 2, # moyenne du bleu
x = aPix.x, x = aPix.x,
y = aPix.y, y = aPix.y,
bpp = aPix.bpp bpp = aPix.bpp
) ) ) )
A.drawer.setPixel( newImg.content.map[aPix.y][aPix.x] );
print "%s |" % (t.get()) print "%s |" % (t.get())
print "| Unparsing |",; t.reset();
newImg.unparse(newBpp=24);
print "%s |" % (t.get())
print "| Writing File |",; t.reset(); # print "| Unparsing |",; t.reset();
with open("mergeAdd.bmp", "w") as f: # newImg.unparse(newBpp=24);
f.write( newImg.binData ); # print "%s |" % (t.get())
print "%s |" % (t.get())
# print "| Writing File |",; t.reset();
# with open("mergeAdd.bmp", "w") as f:
# f.write( newImg.binData );
# print "%s |" % (t.get())
@ -805,17 +814,20 @@ def mergeImagesSubstractive(A, B):
y = aPix.y, y = aPix.y,
bpp = aPix.bpp bpp = aPix.bpp
) ) ) )
A.drawer.setPixel( newImg.content.map[aPix.y][aPix.x] );
print "%s |" % (t.get()) print "%s |" % (t.get())
A.content.map = newImg.content.map;
print "| Unparsing |",; t.reset(); # print "| Unparsing |",; t.reset();
newImg.unparse(newBpp=24); # newImg.unparse(newBpp=24);
print "%s |" % (t.get()) # print "%s |" % (t.get())
print "| Writing File |",; t.reset(); # print "| Writing File |",; t.reset();
with open("mergeSub.bmp", "w") as f: # with open("mergeSub.bmp", "w") as f:
f.write( newImg.binData ); # f.write( newImg.binData );
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -879,14 +891,14 @@ def revealShapes(img, red=0,green=0,blue=0, seuil=50):
img.drawer.setPixel( pixel ); img.drawer.setPixel( pixel );
print "%s |" % (t.get()) print "%s |" % (t.get())
print "| Unparsing |",; t.reset(); # print "| Unparsing |",; t.reset();
img.unparse(newBpp=24); # img.unparse(newBpp=24);
print "%s |" % (t.get()) # print "%s |" % (t.get())
print "| Writing File |",; t.reset(); # print "| Writing File |",; t.reset();
with open( sys.argv[2], "w") as f: # with open( sys.argv[2], "w") as f:
f.write( img.binData ); # f.write( img.binData );
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -939,14 +951,14 @@ def colorShape(img, x=0, y=0):
print "| Unparsing |",; t.reset(); # print "| Unparsing |",; t.reset();
img.unparse(newBpp=24); # img.unparse(newBpp=24);
print "%s |" % (t.get()) # print "%s |" % (t.get())
print "| Writing File |",; t.reset(); # print "| Writing File |",; t.reset();
with open( sys.argv[2], "w") as f: # with open( sys.argv[2], "w") as f:
f.write( img.binData ); # f.write( img.binData );
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -1004,14 +1016,14 @@ def colorAllShapes(img):
print "| Unparsing |",; t.reset(); # print "| Unparsing |",; t.reset();
img.unparse(newBpp=24); # img.unparse(newBpp=24);
print "%s |" % (t.get()) # print "%s |" % (t.get())
print "| Writing File |",; t.reset(); # print "| Writing File |",; t.reset();
with open( sys.argv[2], "w") as f: # with open( sys.argv[2], "w") as f:
f.write( img.binData ); # f.write( img.binData );
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -1066,14 +1078,14 @@ def testStroke(img):
print "| Unparsing |",; t.reset(); # print "| Unparsing |",; t.reset();
img.unparse(newBpp=24); # img.unparse(newBpp=24);
print "%s |" % (t.get()) # print "%s |" % (t.get())
print "| Writing File |",; t.reset(); # print "| Writing File |",; t.reset();
with open( sys.argv[2], "w") as f: # with open( sys.argv[2], "w") as f:
f.write( img.binData ); # f.write( img.binData );
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -1124,14 +1136,14 @@ def testAverageFilter(img):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -1179,14 +1191,14 @@ def testLaplace(img):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -1224,14 +1236,14 @@ def testRoberts(img):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -1272,14 +1284,14 @@ def testPrewitt(img):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -1322,14 +1334,14 @@ def testSobel(img):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -1382,14 +1394,14 @@ def testConvolution(img):
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -1413,24 +1425,24 @@ def testConvolution(img):
# Parse le fichier d'origine # Parse le fichier d'origine
# Applique le filtre # Applique le filtre
# Unparse l'image et l'enregistre dans le fichier de sortie # Unparse l'image et l'enregistre dans le fichier de sortie
def testBichrome(): def testBichrome(img):
t = Timer(); t = Timer();
# lecture du fichier # lecture du fichier
print "| Reading Image |",; t.reset(); # print "| Reading Image |",; t.reset();
with open( sys.argv[1] ) as file: # with open( sys.argv[1] ) as file:
binFile = file.read() # binFile = file.read()
print "%s |" % (t.get()) # print "%s |" % (t.get())
img = BMPFile(); # Instanciation du BMPFile # img = BMPFile(); # Instanciation du BMPFile
# Parsing # # Parsing
print "| Parsing file |",; t.reset(); # print "| Parsing file |",; t.reset();
img.parse( binFile ); # img.parse( binFile );
print "%s |" % (t.get()) # print "%s |" % (t.get())
print "| Application du filtre |",; t.reset(); print "| Application du filtre |",; t.reset();
@ -1441,17 +1453,20 @@ def testBichrome():
255*int( (pixel.r+pixel.g+pixel.b)/3 >= 128 ), 255*int( (pixel.r+pixel.g+pixel.b)/3 >= 128 ),
255*int( (pixel.r+pixel.g+pixel.b)/3 >= 128 ) 255*int( (pixel.r+pixel.g+pixel.b)/3 >= 128 )
) )
img.drawer.setPixel( pixel );
img.drawer.refresh();
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())
@ -1471,39 +1486,39 @@ def testBichrome():
# Parse le fichier d'origine # Parse le fichier d'origine
# Applique le filtre # Applique le filtre
# Unparse l'image et l'enregistre dans le fichier de sortie # Unparse l'image et l'enregistre dans le fichier de sortie
def testHighPass(): def testHighPass(img):
t = Timer(); t = Timer();
# lecture du fichier # lecture du fichier
print "| Reading Image |",; t.reset(); # print "| Reading Image |",; t.reset();
with open( sys.argv[1] ) as file: # with open( sys.argv[1] ) as file:
binFile = file.read() # binFile = file.read()
print "%s |" % (t.get()) # print "%s |" % (t.get())
img = BMPFile(); # Instanciation du BMPFile # img = BMPFile(); # Instanciation du BMPFile
# Parsing # # Parsing
print "| Parsing file |",; t.reset(); # print "| Parsing file |",; t.reset();
img.parse( binFile ); # img.parse( binFile );
print "%s |" % (t.get()) # print "%s |" % (t.get())
print "| Application du filtre |",; t.reset(); print "| Application du filtre |",; t.reset();
img.content.map = FX.Filter.HighPass(img.content.map); img.content.map = FX.Filter.HighPass(img.drawer, img.content.map);
print "%s |" % (t.get()) print "%s |" % (t.get())
# Unparsing # Unparsing
print "| Unparsing file |",; t.reset(); # print "| Unparsing file |",; t.reset();
img.unparse() # img.unparse()
print "%s |" % (t.get()) # print "%s |" % (t.get())
# image to stdout # # image to stdout
print "| Writing file |",; t.reset(); # print "| Writing file |",; t.reset();
img.write( sys.argv[2] ) # img.write( sys.argv[2] )
print "%s |" % (t.get()) # print "%s |" % (t.get())

View File

@ -12,6 +12,9 @@ class Drawer():
self.count = 0; self.count = 0;
def setSize(self, width, height):
self.__init__(width, height);
# remet le compteur à zéro # remet le compteur à zéro
def reset(self): def reset(self):
self.count = 0; self.count = 0;
@ -24,7 +27,7 @@ class Drawer():
# dessine un pixel de type RGBPixel(BMPFile) # dessine un pixel de type RGBPixel(BMPFile)
def setPixel(self, rgbpix): def setPixel(self, rgbpix):
self.screen.set_at( (rgbpix.x, rgbpix.y), (rgbpix.r, rgbpix.g, rgbpix.b) ); self.screen.set_at( (rgbpix.x, rgbpix.y), (rgbpix.r, rgbpix.b, rgbpix.g) );
self.count = (self.count + 1) % self.width; # incrémente le compteur self.count = (self.count + 1) % self.width; # incrémente le compteur
if( self.count >= self.width-1 ): # si le compteur a fait une ligne complète if( self.count >= self.width-1 ): # si le compteur a fait une ligne complète