package img.test;

import img.io.ImageIO;
import img.Image;        // décommenter pour l'exercice 1
import img.Symetrie;     // décommenter pour l'exercice 1
import img.Rotation;     // décommenter pour l'exercice 2
import img.Decoupe;      // décommenter pour l'exercice 2
import img.Dimensions;   // décommenter pour l'exercice 2
//import img.Script;       // décommenter pour l'exercice 3
//import img.Luminosite;   // décommenter pour l'exercice 4
//import img.Negatif;      // décommenter pour l'exercice 5
//import img.Colorisation; // décommenter pour l'exercice 5
//import img.Masque;       // décommenter pour l'exercice 6
//import img.h.ImageH;     // décommenter pour l'exercice 7

/*
 * NOTE D'UTILISATION DU PROGRAMME DE TEST :
 * 
 * - faites les exercices de préférence dans l'ordre
 * 
 * - quand un exercice est fait :
 * --> décommentez le code de test correspondant dans la fonction main
 * --> décommentez les clauses d'import utiles
 *     
 * - quand les fichiers obtenus correspondent aux fichiers attendus,
 *   vous pouvez passer à l'exercice suivant
 */

public class Programme {

	public static void main(String[] args) {
		ImageIO.verbose(2);
		
		System.out.println("---- Exercice 1 ----\n");
		Image im;
		
		im = new Image("images/ndv.png"); im.applique(new Symetrie(true));
		im.save("images/ex1SymH.png");
		
		im = new Image("images/ndv.png"); im.applique(new Symetrie(false));
		im.save("images/ex1SymV.png");
		/*
*/	
		
		
		
		
		
		
		System.out.println("\n---- Exercice 2 ----\n");
		im = new Image("images/ndv.png"); im.applique(new Rotation(1));
		im.save("images/ex2R090.png");
		
		im = new Image("images/ndv.png"); im.applique(new Rotation(2));
		im.save("images/ex2R180.png");
		
		im = new Image("images/ndv.png"); im.applique(new Rotation(3));
		im.save("images/ex2R270.png");
		
		/*
		im = new Image("images/ndv.png"); im.applique(new Decoupe(457,44,150,110));
		im.save("images/ex2Crop.png");

		im = new Image("images/ndv.png"); im.applique(new Dimensions(500, 314));
		im.save("images/ex2DimR.png");
		
		im = new Image("images/ndv.png"); im.applique(new Dimensions(2000,1256));
		im.save("images/ex2DimA.png");
*/
		
		
		
		
		
		
		
		
		System.out.println("\n---- Exercice 3 ----\n");
/*		
		im = new Image("images/ndv.png"); im.applique(new Script(
			 	 new Decoupe(457,44,150,110),
				 new Dimensions(300, 220),
				 new Symetrie(false)));
		im.save("images/ex3Scrt.png");
*/
		
		
		
		
		
		
		System.out.println("\n---- Exercice 4 ----\n");
/*
		im = new Image("images/ndv.png"); im.applique(new Luminosite(0.5));
		im.save("images/ex4LumR.png");
		
		im = new Image("images/ndv.png"); im.applique(new Luminosite(1.33));
		im.save("images/ex4LumA.png");
*/		
		
		
		
		
		
		
		
		
		System.out.println("\n---- Exercice 5 ----\n");
/*		
		im = new Image("images/ndv.png"); im.applique(new Negatif());
		im.save("images/ex5Negt.png");
		
		im = new Image("images/ndv.png"); im.applique(new Colorisation(1.5, 0.25, 0.25));
		im.save("images/ex5Roug.png");
		
		im = new Image("images/ndv.png"); im.applique(new Colorisation(0.25, 1.5, 0.25));
		im.save("images/ex5Vert.png");
		
		im = new Image("images/ndv.png"); im.applique(new Colorisation(0.25, 0.25, 1.5));
		im.save("images/ex5Bleu.png");
		
		im = new Image("images/ndv.png"); im.applique(new Colorisation(1.2, 0.6, 1.2));
		im.save("images/ex5Mauv.png");
		
		im = new Image("images/ndv.png"); im.applique(new Colorisation(1, 1, 1));
		im.save("images/ex5Gris.png");
*/		
		
		
		
		
		
		
		System.out.println("\n---- Exercice 6 ----\n");
/*
		im = new Image("images/ndv.png"); im.applique(new Masque(Masque.CONTOURS, 5));
		im.save("images/ex6Cont.png");

		im = new Image("images/ndv.png"); im.applique(new Masque(Masque.FLOU1));
		im.save("images/ex6Flo1.png");

		im = new Image("images/ndv.png"); im.applique(new Masque(Masque.FLOU2));
		im.save("images/ex6Flo2.png");

		im = new Image("images/ndv.png"); im.applique(new Masque(Masque.REHAUSSEUR));
		im.save("images/ex6Rhau.png");

		im = new Image("images/ndv.png"); im.applique(new Script(
				new Colorisation(1, 1, 1),
				new Negatif()));
		im.save("images/ex6Sct1.png");
				 
		im = new Image("images/ndv.png"); im.applique(new Script(
			 	 new Decoupe(457,44,150,110),
				 new Dimensions(300, 220),
				 new Symetrie(false),
				 new Masque(Masque.REHAUSSEUR, 1)));
		im.save("images/ex6Sct2.png");
*/						 
		
		
		
		
		
		
		System.out.println("\n---- Exercice 7 ----\n");
/*
		ImageH imh;

		imh = new ImageH("images/ndv.png");
		imh.applique(new Symetrie(true));
		imh.applique(new Masque(Masque.REHAUSSEUR));
		imh.applique(new Decoupe(300,60,250,90));
		imh.applique(new Rotation(1));
		imh.applique(new Colorisation(1, 1, 1));
		imh.save("images/ex7hst1.png");
		imh.undo(); imh.save("images/ex7hst2.png");
		imh.undo(); imh.save("images/ex7hst3.png");
		imh.undo(); imh.save("images/ex7hst4.png");
		imh.undo(); imh.save("images/ex7hst5.png");
		imh.undo(); imh.save("images/ex7hst6.png");
*/	
	}
	
}

/*

---- Exercice 1 ----

Sauvegarde dans images/ex1SymH.png... ok.
Sauvegarde dans images/ex1SymV.png... ok.

---- Exercice 2 ----

Sauvegarde dans images/ex2R090.png... ok.
Sauvegarde dans images/ex2R180.png... ok.
Sauvegarde dans images/ex2R270.png... ok.
Sauvegarde dans images/ex2Crop.png... ok.
Sauvegarde dans images/ex2DimR.png... ok.
Sauvegarde dans images/ex2DimA.png... ok.

---- Exercice 3 ----

Sauvegarde dans images/ex3Scrt.png... ok.

---- Exercice 4 ----

Sauvegarde dans images/ex4LumR.png... ok.
Sauvegarde dans images/ex4LumA.png... ok.

---- Exercice 5 ----

Sauvegarde dans images/ex5Negt.png... ok.
Sauvegarde dans images/ex5Roug.png... ok.
Sauvegarde dans images/ex5Vert.png... ok.
Sauvegarde dans images/ex5Bleu.png... ok.
Sauvegarde dans images/ex5Mauv.png... ok.
Sauvegarde dans images/ex5Gris.png... ok.

---- Exercice 6 ----

Sauvegarde dans images/ex6Cont.png... ok.
Sauvegarde dans images/ex6Flo1.png... ok.
Sauvegarde dans images/ex6Flo2.png... ok.
Sauvegarde dans images/ex6Rhau.png... ok.
Sauvegarde dans images/ex6Sct1.png... ok.
Sauvegarde dans images/ex6Sct2.png... ok.

---- Exercice 7 ----

Sauvegarde dans images/ex7hst1.png... ok.
Sauvegarde dans images/ex7hst2.png... ok.
Sauvegarde dans images/ex7hst3.png... ok.
Sauvegarde dans images/ex7hst4.png... ok.
Sauvegarde dans images/ex7hst5.png... ok.
Sauvegarde dans images/ex7hst6.png... ok.

*/
