diff --git a/makefile b/makefile index 6fe444b..30dc1a5 100644 --- a/makefile +++ b/makefile @@ -183,7 +183,7 @@ $(BIN)/$(PKG_PATH)/ViewerControleur.class: $(BIN) \ # Exécution -run-conv: all +run-conv: $(BIN)/$(PKG_PATH)/Convertisseur.class $(JAVA) -cp $(BIN) $(MAIN_CONVERTER) $(ARGS) run-view: $(BIN)/$(PKG_PATH)/Viewer.class diff --git a/src/fr/iutfbleau/sae/mpif/PIFReader.java b/src/fr/iutfbleau/sae/mpif/PIFReader.java index 4d0023c..a3f5c41 100644 --- a/src/fr/iutfbleau/sae/mpif/PIFReader.java +++ b/src/fr/iutfbleau/sae/mpif/PIFReader.java @@ -11,7 +11,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - +/** + * Cette classe permet de lire un fichier .pif et de reconstruire l'image d'origine. + * Elle lit d'abord l'en-tête puis les longueurs des codes canoniques. + * Ensuite elle reconstruit les codes, construit les arbres de décodage + * et décode les pixels un par un pour obtenir l'image RGB finale. + * Elle est utilisée par le programme Viewer pour afficher une image .pif. + */ public class PIFReader { private int width; @@ -21,11 +27,15 @@ public class PIFReader { private int[] lenB; /** - * Lit et décode un fichier PIF. - * - * @param filepath chemin du fichier PIF - * @return l'image RGB décodée - * @throws Exception si erreur de lecture + * Cette methode sert de point d'entrer pour le decodage d'un pif. + * Elle Lit complètement un fichier .pif et renvoie l'image décodée. + * Elle lit l'en-tête, récupère les longueurs des codes, + * reconstruit les codes canoniques puis les arbres nécessaires + * au décodage. Enfin elle lit pixel par pixel. + * + * @param file fichier .pif à décoder + * @return l'image obtenue après décodage + * @throws Exception si le fichier est invalide ou si une erreur survient pendant la lecture */ public RGBImage decodePifFile(File file) throws Exception { FileInputStream fis = new FileInputStream(file); @@ -55,9 +65,13 @@ public class PIFReader { } - /** - * Lit l'en-tête du fichier PIF (largeur et hauteur sur 16 bits chacune). - * @throws IOException si erreur de lecture + + /** + * Lit l'en-tête du fichier .pif. On y récupère la largeur + * et la hauteur de l'image, chacune codée sur 16 bits. + * + * @param in flux binaire à lire + * @throws IOException si la lecture échoue */ public void readHeader(BitInputStream in) throws IOException { this.width = in.readBits(16); @@ -71,7 +85,7 @@ public class PIFReader { * rouge, vert et bleu. Chaque table contient 256 valeurs sur 5 bits. * Ces longueurs permettront de reconstruire les vrais codes plus tard * - * @param in flux binaire d'entrée + * @param in flux binaire d'entrée pdfpdof * @throws IOException si erreur de lecture se produit */ public void readCanonicalTables(BitInputStream in) throws IOException { diff --git a/temp/un-portrait-brillant-d-une-belle-femme.pif b/temp/un-portrait-brillant-d-une-belle-femme.pif new file mode 100644 index 0000000..fee63ff Binary files /dev/null and b/temp/un-portrait-brillant-d-une-belle-femme.pif differ