ok
This commit is contained in:
@@ -183,7 +183,7 @@ $(BIN)/$(PKG_PATH)/ViewerControleur.class: $(BIN) \
|
|||||||
|
|
||||||
|
|
||||||
# Exécution
|
# Exécution
|
||||||
run-conv: all
|
run-conv: $(BIN)/$(PKG_PATH)/Convertisseur.class
|
||||||
$(JAVA) -cp $(BIN) $(MAIN_CONVERTER) $(ARGS)
|
$(JAVA) -cp $(BIN) $(MAIN_CONVERTER) $(ARGS)
|
||||||
|
|
||||||
run-view: $(BIN)/$(PKG_PATH)/Viewer.class
|
run-view: $(BIN)/$(PKG_PATH)/Viewer.class
|
||||||
|
|||||||
@@ -11,7 +11,13 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
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 {
|
public class PIFReader {
|
||||||
|
|
||||||
private int width;
|
private int width;
|
||||||
@@ -20,7 +26,17 @@ public class PIFReader {
|
|||||||
private int[] lenG;
|
private int[] lenG;
|
||||||
private int[] lenB;
|
private int[] lenB;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 {
|
public RGBImage decodePifFile(File file) throws Exception {
|
||||||
FileInputStream fis = new FileInputStream(file);
|
FileInputStream fis = new FileInputStream(file);
|
||||||
BufferedInputStream bos = new BufferedInputStream(fis);
|
BufferedInputStream bos = new BufferedInputStream(fis);
|
||||||
@@ -49,7 +65,13 @@ public class PIFReader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 {
|
public void readHeader(BitInputStream in) throws IOException {
|
||||||
this.width = in.readBits(16);
|
this.width = in.readBits(16);
|
||||||
this.height = in.readBits(16);
|
this.height = in.readBits(16);
|
||||||
@@ -62,7 +84,7 @@ public class PIFReader {
|
|||||||
* rouge, vert et bleu. Chaque table contient 256 valeurs sur 5 bits.
|
* rouge, vert et bleu. Chaque table contient 256 valeurs sur 5 bits.
|
||||||
* Ces longueurs permettront de reconstruire les vrais codes plus tard
|
* 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
|
* @throws IOException si erreur de lecture se produit
|
||||||
*/
|
*/
|
||||||
public void readCanonicalTables(BitInputStream in) throws IOException {
|
public void readCanonicalTables(BitInputStream in) throws IOException {
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user