Class ConverterController


  • public class ConverterController
    extends java.lang.Object
    Controleur pour la conversion d'images au format PIF. Gere le chargement des images, le calcul des frequences, la generation des codes de Huffman et la sauvegarde au format PIF.
    • Constructor Summary

      Constructors 
      Constructor Description
      ConverterController​(ConverterWindow fen, java.lang.String in, java.lang.String out)
      Construit un nouveau controleur de conversion.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void computeCanonical()
      Genere les codes canoniques a partir des codes de Huffman.
      void computeFrequencies()
      Calcule les frequences d'apparition de chaque valeur RGB dans l'image.
      void computeHuffman()
      Genere les arbres de Huffman pour chaque composante RGB.
      void conversionProcess()
      Lance le processus complet de conversion d'une image au format PIF.
      RGBImage getImage()
      Retourne l'image actuellement chargee.
      void loadImage​(java.io.File file)
      Charge une image depuis un fichier et la convertit en RGBImage.
      void saveAsPIF​(java.lang.String pathfile)
      Sauvegarde l'image au format PIF.
      void saveViaBtn()
      Gere la sauvegarde via le bouton de l'interface.
      • Methods inherited from class java.lang.Object

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

      • ConverterController

        public ConverterController​(ConverterWindow fen,
                                   java.lang.String in,
                                   java.lang.String out)
        Construit un nouveau controleur de conversion.
        Parameters:
        fen - la fenetre de l'interface graphique
        in - le chemin du fichier d'entree (peut etre null)
        out - le chemin du fichier de sortie (peut etre null)
    • Method Detail

      • loadImage

        public void loadImage​(java.io.File file)
        Charge une image depuis un fichier et la convertit en RGBImage. Extrait les composantes RGB de chaque pixel et met a jour l'interface.
        Parameters:
        file - le fichier image a charger
      • computeFrequencies

        public void computeFrequencies()
        Calcule les frequences d'apparition de chaque valeur RGB dans l'image. Met a jour l'interface avec les tables de frequences calculees.
      • computeHuffman

        public void computeHuffman()
        Genere les arbres de Huffman pour chaque composante RGB. Cree les codes binaires optimaux bases sur les frequences calculees. Met a jour l'interface avec les codes de Huffman generes.
      • computeCanonical

        public void computeCanonical()
        Genere les codes canoniques a partir des codes de Huffman. Les codes canoniques sont une forme normalisee des codes de Huffman qui facilite le stockage et le decodage. Met a jour l'interface avec les codes canoniques generes.
      • saveAsPIF

        public void saveAsPIF​(java.lang.String pathfile)
        Sauvegarde l'image au format PIF. Verifie que l'image et les codes canoniques sont disponibles avant d'effectuer la sauvegarde.
        Parameters:
        pathfile - le chemin du fichier de sortie
      • saveViaBtn

        public void saveViaBtn()
        Gere la sauvegarde via le bouton de l'interface. Si un chemin de sortie est defini, sauvegarde directement. Sinon, ouvre un selecteur de fichier pour que l'utilisateur choisisse l'emplacement de sauvegarde. La sauvegarde est effectuee dans un thread separe pour ne pas bloquer l'interface graphique.
      • conversionProcess

        public void conversionProcess()
        Lance le processus complet de conversion d'une image au format PIF. Etapes : 1. Chargement de l'image (depuis un fichier ou via selecteur) 2. Calcul des frequences 3. Generation des codes de Huffman 4. Generation des codes canoniques 5. Sauvegarde (automatique ou via bouton selon les parametres)
      • getImage

        public RGBImage getImage()
        Retourne l'image actuellement chargee.
        Returns:
        l'image RGB chargee, ou null si aucune image n'est chargee