Class PIFWriter


  • public class PIFWriter
    extends java.lang.Object
    Cette 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
      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.
      void writeHeader​(BitOutputStream out, int width, int height)
      Écrit l'en-tête du fichier PIF.
      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.
      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)
      Sauvegarde une image au format PIF dans un fichier.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PIFWriter

        public PIFWriter()
    • 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.Exception
        Sauvegarde une image au format PIF dans un fichier. Le fichier est créé ou écrasé si il existe déjà.
        Parameters:
        filepath - chemin du fichier à écrire
        image - l'image RGB à encoder
        canonR - codes canoniques de la composante rouge
        canonG - codes canoniques de la composante verte
        canonB - 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 binaire
        width - largeur de l'image
        height - 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 fichier
        canonR - longueurs pour la composante rouge
        canonG - longueurs pour la composante verte
        canonB - 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 binaire
        image - l'image source
        canonRED - codes canoniques pour le rouge
        canonGREEN - codes canoniques pour le vert
        canonBLUE - codes canoniques pour le bleu