Package fr.iutfbleau.sae.mpif
Class PIFWriter
- java.lang.Object
-
- fr.iutfbleau.sae.mpif.PIFWriter
-
public class PIFWriter extends java.lang.ObjectCette classe permet d'écrire une image au format PIF. Le fichier PIF contient une en-tête avec la taille de l'image, les longueurs des codes canoniques, puis l'encodage des pixels en utilisant ces codes. Les méthodes de cette classe suivent l'ordre d'écriture du fichier : 1) écrire l'en-tête 2) écrire les tables de longueurs 3) encoder les pixels un par un
-
-
Constructor Summary
Constructors Constructor Description PIFWriter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidencodePixels(BitOutputStream out, RGBImage image, java.util.Map<java.lang.Integer,java.lang.String> canonRED, java.util.Map<java.lang.Integer,java.lang.String> canonGREEN, java.util.Map<java.lang.Integer,java.lang.String> canonBLUE)Encode chaque pixel de l'image en utilisant les codes canoniques.voidwriteHeader(BitOutputStream out, int width, int height)Écrit l'en-tête du fichier PIF.voidwriteTables(BitOutputStream out, java.util.Map<java.lang.Integer,java.lang.String> canonR, java.util.Map<java.lang.Integer,java.lang.String> canonG, java.util.Map<java.lang.Integer,java.lang.String> canonB)Écrit dans le fichier les longueurs des codes canoniques.voidwriteTOFile(java.lang.String filepath, RGBImage image, java.util.Map<java.lang.Integer,java.lang.String> canonR, java.util.Map<java.lang.Integer,java.lang.String> canonG, java.util.Map<java.lang.Integer,java.lang.String> canonB)Sauvegarde une image au format PIF dans un fichier.
-
-
-
Method Detail
-
writeTOFile
public void writeTOFile(java.lang.String filepath, RGBImage image, java.util.Map<java.lang.Integer,java.lang.String> canonR, java.util.Map<java.lang.Integer,java.lang.String> canonG, java.util.Map<java.lang.Integer,java.lang.String> canonB) throws java.lang.ExceptionSauvegarde une image au format PIF dans un fichier. Le fichier est créé ou écrasé si il existe déjà.- Parameters:
filepath- chemin du fichier à écrireimage- l'image RGB à encodercanonR- codes canoniques de la composante rougecanonG- codes canoniques de la composante vertecanonB- codes canoniques de la composante bleue- Throws:
java.lang.Exception- si une erreur survient dans l'écriture
-
writeHeader
public void writeHeader(BitOutputStream out, int width, int height)
Écrit l'en-tête du fichier PIF. L'en-tête contient uniquement la largeur et la hauteur, chacune codée sur 16 bits.- Parameters:
out- flux de sortie binairewidth- largeur de l'imageheight- hauteur de l'image
-
writeTables
public void writeTables(BitOutputStream out, java.util.Map<java.lang.Integer,java.lang.String> canonR, java.util.Map<java.lang.Integer,java.lang.String> canonG, java.util.Map<java.lang.Integer,java.lang.String> canonB)
Écrit dans le fichier les longueurs des codes canoniques. Pour chaque composante (R, G, B), on parcourt les 256 valeurs possibles. Si un symbole n'existe pas dans les codes, on écrit une longueur 0.- Parameters:
out- flux binaire vers le fichiercanonR- longueurs pour la composante rougecanonG- longueurs pour la composante vertecanonB- longueurs pour la composante bleue
-
encodePixels
public void encodePixels(BitOutputStream out, RGBImage image, java.util.Map<java.lang.Integer,java.lang.String> canonRED, java.util.Map<java.lang.Integer,java.lang.String> canonGREEN, java.util.Map<java.lang.Integer,java.lang.String> canonBLUE)
Encode chaque pixel de l'image en utilisant les codes canoniques. Pour chaque pixel, les composants R, G et B sont écrits dans cet ordre en utilisant writeBitString().- Parameters:
out- flux d'écriture binaireimage- l'image sourcecanonRED- codes canoniques pour le rougecanonGREEN- codes canoniques pour le vertcanonBLUE- codes canoniques pour le bleu
-
-