2026-01-07 19:27:03 +01:00
<!DOCTYPE HTML>
2026-01-08 13:05:29 +01:00
<!-- NewPage -->
< html lang = "en" >
2026-01-07 19:27:03 +01:00
< head >
2026-01-08 13:05:29 +01:00
<!-- Generated by javadoc (11.0.27) on Thu Jan 08 12:43:42 CET 2026 -->
2026-01-07 19:27:03 +01:00
< title > ConverterController< / title >
< meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" >
2026-01-08 13:05:29 +01:00
< meta name = "dc.created" content = "2026-01-08" >
< link rel = "stylesheet" type = "text/css" href = "../../../stylesheet.css" title = "Style" >
< link rel = "stylesheet" type = "text/css" href = "../../../jquery/jquery-ui.min.css" title = "Style" >
< link rel = "stylesheet" type = "text/css" href = "../../../jquery-ui.overrides.css" title = "Style" >
< script type = "text/javascript" src = "../../../script.js" > < / script >
< script type = "text/javascript" src = "../../../jquery/jszip/dist/jszip.min.js" > < / script >
< script type = "text/javascript" src = "../../../jquery/jszip-utils/dist/jszip-utils.min.js" > < / script >
<!-- [if IE]>
<script type="text/javascript" src="../../../jquery/jszip - utils/dist/jszip - utils - ie.min.js"></script>
<![endif] -->
< script type = "text/javascript" src = "../../../jquery/jquery-3.7.1.min.js" > < / script >
< script type = "text/javascript" src = "../../../jquery/jquery-ui.min.js" > < / script >
2026-01-07 19:27:03 +01:00
< / head >
2026-01-08 13:05:29 +01:00
< body >
< script type = "text/javascript" > <!--
try {
if ( location . href . indexOf ( 'is-external=true' ) == - 1 ) {
parent . document . title = "ConverterController" ;
}
}
catch ( err ) {
}
//-->
var data = { "i0" : 10 , "i1" : 10 , "i2" : 10 , "i3" : 10 , "i4" : 10 , "i5" : 10 , "i6" : 10 , "i7" : 10 } ;
var tabs = { 65535 : [ "t0" , "All Methods" ] , 2 : [ "t2" , "Instance Methods" ] , 8 : [ "t4" , "Concrete Methods" ] } ;
var altColor = "altColor" ;
var rowColor = "rowColor" ;
var tableTab = "tableTab" ;
var activeTableTab = "activeTableTab" ;
var pathtoroot = "../../../" ;
var useModuleDirectories = true ;
2026-01-07 19:27:03 +01:00
loadScripts ( document , 'script' ) ; < / script >
< noscript >
< div > JavaScript is disabled on your browser.< / div >
< / noscript >
< header role = "banner" >
< nav role = "navigation" >
2026-01-08 13:05:29 +01:00
< div class = "fixedNav" >
2026-01-07 19:27:03 +01:00
<!-- ========= START OF TOP NAVBAR ======= -->
2026-01-08 13:05:29 +01:00
< div class = "topNav" > < a id = "navbar.top" >
<!-- -->
< / a >
< div class = "skipNav" > < a href = "#skip.navbar.top" title = "Skip navigation links" > Skip navigation links< / a > < / div >
< a id = "navbar.top.firstrow" >
<!-- -->
< / a >
< ul class = "navList" title = "Navigation" >
2026-01-07 19:27:03 +01:00
< li > < a href = "../../../index.html" > Overview< / a > < / li >
2026-01-08 13:05:29 +01:00
< li > < a href = "package-summary.html" > Package< / a > < / li >
< li class = "navBarCell1Rev" > Class< / li >
2026-01-07 19:27:03 +01:00
< li > < a href = "package-tree.html" > Tree< / a > < / li >
2026-01-08 13:05:29 +01:00
< li > < a href = "../../../deprecated-list.html" > Deprecated< / a > < / li >
2026-01-07 19:27:03 +01:00
< li > < a href = "../../../index-all.html" > Index< / a > < / li >
2026-01-08 13:05:29 +01:00
< li > < a href = "../../../help-doc.html" > Help< / a > < / li >
2026-01-07 19:27:03 +01:00
< / ul >
< / div >
2026-01-08 13:05:29 +01:00
< div class = "subNav" >
< ul class = "navList" id = "allclasses_navbar_top" >
< li > < a href = "../../../allclasses.html" > All Classes< / a > < / li >
< / ul >
< ul class = "navListSearch" >
< li > < label for = "search" > SEARCH:< / label >
< input type = "text" id = "search" value = "search" disabled = "disabled" >
< input type = "reset" id = "reset" value = "reset" disabled = "disabled" >
< / li >
< / ul >
< div >
< script type = "text/javascript" > <!--
allClassesLink = document . getElementById ( "allclasses_navbar_top" ) ;
if ( window == top ) {
allClassesLink . style . display = "block" ;
}
else {
allClassesLink . style . display = "none" ;
}
//-->
< / script >
< noscript >
< div > JavaScript is disabled on your browser.< / div >
< / noscript >
2026-01-07 19:27:03 +01:00
< / div >
2026-01-08 13:05:29 +01:00
< div >
< ul class = "subNavList" >
< li > Summary: < / li >
< li > Nested | < / li >
< li > Field | < / li >
< li > < a href = "#constructor.summary" > Constr< / a > | < / li >
< li > < a href = "#method.summary" > Method< / a > < / li >
< / ul >
< ul class = "subNavList" >
< li > Detail: < / li >
< li > Field | < / li >
< li > < a href = "#constructor.detail" > Constr< / a > | < / li >
< li > < a href = "#method.detail" > Method< / a > < / li >
< / ul >
2026-01-07 19:27:03 +01:00
< / div >
2026-01-08 13:05:29 +01:00
< a id = "skip.navbar.top" >
<!-- -->
< / a > < / div >
2026-01-07 19:27:03 +01:00
<!-- ========= END OF TOP NAVBAR ========= -->
< / div >
2026-01-08 13:05:29 +01:00
< div class = "navPadding" > < / div >
< script type = "text/javascript" > <!--
$ ( '.navPadding' ) . css ( 'padding-top' , $ ( '.fixedNav' ) . css ( "height" ) ) ;
//-->
< / script >
2026-01-07 19:27:03 +01:00
< / nav >
2026-01-08 13:05:29 +01:00
< / header >
2026-01-07 19:27:03 +01:00
<!-- ======== START OF CLASS DATA ======== -->
2026-01-08 13:05:29 +01:00
< main role = "main" >
2026-01-07 19:27:03 +01:00
< div class = "header" >
2026-01-08 13:05:29 +01:00
< div class = "subTitle" > < span class = "packageLabelInType" > Package< / span > < a href = "package-summary.html" > fr.iutfbleau.sae< / a > < / div >
< h2 title = "Class ConverterController" class = "title" > Class ConverterController< / h2 >
2026-01-07 19:27:03 +01:00
< / div >
2026-01-08 13:05:29 +01:00
< div class = "contentContainer" >
< ul class = "inheritance" >
< li > java.lang.Object< / li >
< li >
< ul class = "inheritance" >
< li > fr.iutfbleau.sae.ConverterController< / li >
< / ul >
< / li >
< / ul >
< div class = "description" >
< ul class = "blockList" >
< li class = "blockList" >
2026-01-07 19:27:03 +01:00
< hr >
2026-01-08 13:05:29 +01:00
< pre > public class < span class = "typeNameLabel" > ConverterController< / span >
extends java.lang.Object< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > 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.< / div >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
2026-01-07 19:27:03 +01:00
< / div >
2026-01-08 13:05:29 +01:00
< div class = "summary" >
< ul class = "blockList" >
< li class = "blockList" >
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
< section >
< ul class = "blockList" >
< li class = "blockList" > < a id = "constructor.summary" >
<!-- -->
< / a >
< h3 > Constructor Summary< / h3 >
< table class = "memberSummary" >
< caption > < span > Constructors< / span > < span class = "tabEnd" > < / span > < / caption >
< tr >
< th class = "colFirst" scope = "col" > Constructor< / th >
< th class = "colLast" scope = "col" > Description< / th >
< / tr >
< tr class = "altColor" >
< th class = "colConstructorName" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#%3Cinit%3E(fr.iutfbleau.sae.ConverterWindow,java.lang.String,java.lang.String)" > ConverterController< / a > < / span > ​ (< a href = "ConverterWindow.html" title = "class in fr.iutfbleau.sae" > ConverterWindow< / a > fen,
java.lang.String in,
java.lang.String out)< / code > < / th >
< td class = "colLast" >
< div class = "block" > Construit un nouveau controleur de conversion.< / div >
< / td >
< / tr >
< / table >
2026-01-07 19:27:03 +01:00
< / li >
< / ul >
< / section >
2026-01-08 13:05:29 +01:00
<!-- ========== METHOD SUMMARY =========== -->
< section >
< ul class = "blockList" >
< li class = "blockList" > < a id = "method.summary" >
<!-- -->
< / a >
< h3 > Method Summary< / h3 >
< table class = "memberSummary" >
< caption > < span id = "t0" class = "activeTableTab" > < span > All Methods< / span > < span class = "tabEnd" > < / span > < / span > < span id = "t2" class = "tableTab" > < span > < a href = "javascript:show(2);" > Instance Methods< / a > < / span > < span class = "tabEnd" > < / span > < / span > < span id = "t4" class = "tableTab" > < span > < a href = "javascript:show(8);" > Concrete Methods< / a > < / span > < span class = "tabEnd" > < / span > < / span > < / caption >
< tr >
< th class = "colFirst" scope = "col" > Modifier and Type< / th >
< th class = "colSecond" scope = "col" > Method< / th >
< th class = "colLast" scope = "col" > Description< / th >
< / tr >
< tr id = "i0" class = "altColor" >
< td class = "colFirst" > < code > void< / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#computeCanonical()" > computeCanonical< / a > < / span > ()< / code > < / th >
< td class = "colLast" >
< div class = "block" > Genere les codes canoniques a partir des codes de Huffman.< / div >
< / td >
< / tr >
< tr id = "i1" class = "rowColor" >
< td class = "colFirst" > < code > void< / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#computeFrequencies()" > computeFrequencies< / a > < / span > ()< / code > < / th >
< td class = "colLast" >
< div class = "block" > Calcule les frequences d'apparition de chaque valeur RGB dans l'image.< / div >
< / td >
< / tr >
< tr id = "i2" class = "altColor" >
< td class = "colFirst" > < code > void< / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#computeHuffman()" > computeHuffman< / a > < / span > ()< / code > < / th >
< td class = "colLast" >
< div class = "block" > Genere les arbres de Huffman pour chaque composante RGB.< / div >
< / td >
< / tr >
< tr id = "i3" class = "rowColor" >
< td class = "colFirst" > < code > void< / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#conversionProcess()" > conversionProcess< / a > < / span > ()< / code > < / th >
< td class = "colLast" >
< div class = "block" > Lance le processus complet de conversion d'une image au format PIF.< / div >
< / td >
< / tr >
< tr id = "i4" class = "altColor" >
< td class = "colFirst" > < code > < a href = "mpif/RGBImage.html" title = "class in fr.iutfbleau.sae.mpif" > RGBImage< / a > < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#getImage()" > getImage< / a > < / span > ()< / code > < / th >
< td class = "colLast" >
< div class = "block" > Retourne l'image actuellement chargee.< / div >
< / td >
< / tr >
< tr id = "i5" class = "rowColor" >
< td class = "colFirst" > < code > void< / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#loadImage(java.io.File)" > loadImage< / a > < / span > ​ (java.io.File file)< / code > < / th >
< td class = "colLast" >
< div class = "block" > Charge une image depuis un fichier et la convertit en RGBImage.< / div >
< / td >
< / tr >
< tr id = "i6" class = "altColor" >
< td class = "colFirst" > < code > void< / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#saveAsPIF(java.lang.String)" > saveAsPIF< / a > < / span > ​ (java.lang.String pathfile)< / code > < / th >
< td class = "colLast" >
< div class = "block" > Sauvegarde l'image au format PIF.< / div >
< / td >
< / tr >
< tr id = "i7" class = "rowColor" >
< td class = "colFirst" > < code > void< / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#saveViaBtn()" > saveViaBtn< / a > < / span > ()< / code > < / th >
< td class = "colLast" >
< div class = "block" > Gere la sauvegarde via le bouton de l'interface.< / div >
< / td >
< / tr >
< / table >
< ul class = "blockList" >
< li class = "blockList" > < a id = "methods.inherited.from.class.java.lang.Object" >
<!-- -->
< / a >
< h3 > Methods inherited from class java.lang.Object< / h3 >
< code > clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait< / code > < / li >
< / ul >
< / li >
< / ul >
< / section >
< / li >
< / ul >
< / div >
< div class = "details" >
< ul class = "blockList" >
< li class = "blockList" >
2026-01-07 19:27:03 +01:00
<!-- ========= CONSTRUCTOR DETAIL ======== -->
2026-01-08 13:05:29 +01:00
< section >
< ul class = "blockList" >
< li class = "blockList" > < a id = "constructor.detail" >
<!-- -->
< / a >
< h3 > Constructor Detail< / h3 >
< a id = "<init>(fr.iutfbleau.sae.ConverterWindow,java.lang.String,java.lang.String)" >
<!-- -->
< / a >
< ul class = "blockListLast" >
< li class = "blockList" >
< h4 > ConverterController< / h4 >
< pre > public ConverterController​ (< a href = "ConverterWindow.html" title = "class in fr.iutfbleau.sae" > ConverterWindow< / a > fen,
java.lang.String in,
java.lang.String out)< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > Construit un nouveau controleur de conversion.< / div >
2026-01-08 13:05:29 +01:00
< dl >
< dt > < span class = "paramLabel" > Parameters:< / span > < / dt >
2026-01-07 19:27:03 +01:00
< dd > < code > fen< / code > - la fenetre de l'interface graphique< / dd >
< dd > < code > in< / code > - le chemin du fichier d'entree (peut etre null)< / dd >
< dd > < code > out< / code > - le chemin du fichier de sortie (peut etre null)< / dd >
< / dl >
2026-01-08 13:05:29 +01:00
< / li >
< / ul >
2026-01-07 19:27:03 +01:00
< / li >
< / ul >
< / section >
<!-- ============ METHOD DETAIL ========== -->
2026-01-08 13:05:29 +01:00
< section >
< ul class = "blockList" >
< li class = "blockList" > < a id = "method.detail" >
<!-- -->
< / a >
< h3 > Method Detail< / h3 >
< a id = "loadImage(java.io.File)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > loadImage< / h4 >
< pre class = "methodSignature" > public void loadImage​ (java.io.File file)< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > Charge une image depuis un fichier et la convertit en RGBImage.
Extrait les composantes RGB de chaque pixel et met a jour l'interface.< / div >
2026-01-08 13:05:29 +01:00
< dl >
< dt > < span class = "paramLabel" > Parameters:< / span > < / dt >
2026-01-07 19:27:03 +01:00
< dd > < code > file< / code > - le fichier image a charger< / dd >
< / dl >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< a id = "computeFrequencies()" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > computeFrequencies< / h4 >
< pre class = "methodSignature" > public void computeFrequencies()< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > Calcule les frequences d'apparition de chaque valeur RGB dans l'image.
Met a jour l'interface avec les tables de frequences calculees.< / div >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< a id = "computeHuffman()" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > computeHuffman< / h4 >
< pre class = "methodSignature" > public void computeHuffman()< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > 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.< / div >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< a id = "computeCanonical()" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > computeCanonical< / h4 >
< pre class = "methodSignature" > public void computeCanonical()< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > 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.< / div >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< a id = "saveAsPIF(java.lang.String)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > saveAsPIF< / h4 >
< pre class = "methodSignature" > public void saveAsPIF​ (java.lang.String pathfile)< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > Sauvegarde l'image au format PIF.
Verifie que l'image et les codes canoniques sont disponibles avant
d'effectuer la sauvegarde.< / div >
2026-01-08 13:05:29 +01:00
< dl >
< dt > < span class = "paramLabel" > Parameters:< / span > < / dt >
2026-01-07 19:27:03 +01:00
< dd > < code > pathfile< / code > - le chemin du fichier de sortie< / dd >
< / dl >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< a id = "saveViaBtn()" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > saveViaBtn< / h4 >
< pre class = "methodSignature" > public void saveViaBtn()< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > 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.< / div >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< a id = "conversionProcess()" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > conversionProcess< / h4 >
< pre class = "methodSignature" > public void conversionProcess()< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > 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)< / div >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< a id = "getImage()" >
<!-- -->
< / a >
< ul class = "blockListLast" >
< li class = "blockList" >
< h4 > getImage< / h4 >
< pre class = "methodSignature" > public < a href = "mpif/RGBImage.html" title = "class in fr.iutfbleau.sae.mpif" > RGBImage< / a > getImage()< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > Retourne l'image actuellement chargee.< / div >
2026-01-08 13:05:29 +01:00
< dl >
< dt > < span class = "returnLabel" > Returns:< / span > < / dt >
2026-01-07 19:27:03 +01:00
< dd > l'image RGB chargee, ou null si aucune image n'est chargee< / dd >
< / dl >
2026-01-08 13:05:29 +01:00
< / li >
< / ul >
< / li >
< / ul >
< / section >
< / li >
< / ul >
< / div >
2026-01-07 19:27:03 +01:00
< / div >
< / main >
2026-01-08 13:05:29 +01:00
<!-- ========= END OF CLASS DATA ========= -->
< footer role = "contentinfo" >
< nav role = "navigation" >
<!-- ======= START OF BOTTOM NAVBAR ====== -->
< div class = "bottomNav" > < a id = "navbar.bottom" >
<!-- -->
< / a >
< div class = "skipNav" > < a href = "#skip.navbar.bottom" title = "Skip navigation links" > Skip navigation links< / a > < / div >
< a id = "navbar.bottom.firstrow" >
<!-- -->
< / a >
< ul class = "navList" title = "Navigation" >
< li > < a href = "../../../index.html" > Overview< / a > < / li >
< li > < a href = "package-summary.html" > Package< / a > < / li >
< li class = "navBarCell1Rev" > Class< / li >
< li > < a href = "package-tree.html" > Tree< / a > < / li >
< li > < a href = "../../../deprecated-list.html" > Deprecated< / a > < / li >
< li > < a href = "../../../index-all.html" > Index< / a > < / li >
< li > < a href = "../../../help-doc.html" > Help< / a > < / li >
< / ul >
2026-01-07 19:27:03 +01:00
< / div >
2026-01-08 13:05:29 +01:00
< div class = "subNav" >
< ul class = "navList" id = "allclasses_navbar_bottom" >
< li > < a href = "../../../allclasses.html" > All Classes< / a > < / li >
< / ul >
< div >
< script type = "text/javascript" > <!--
allClassesLink = document . getElementById ( "allclasses_navbar_bottom" ) ;
if ( window == top ) {
allClassesLink . style . display = "block" ;
}
else {
allClassesLink . style . display = "none" ;
}
//-->
< / script >
< noscript >
< div > JavaScript is disabled on your browser.< / div >
< / noscript >
< / div >
< div >
< ul class = "subNavList" >
< li > Summary: < / li >
< li > Nested | < / li >
< li > Field | < / li >
< li > < a href = "#constructor.summary" > Constr< / a > | < / li >
< li > < a href = "#method.summary" > Method< / a > < / li >
< / ul >
< ul class = "subNavList" >
< li > Detail: < / li >
< li > Field | < / li >
< li > < a href = "#constructor.detail" > Constr< / a > | < / li >
< li > < a href = "#method.detail" > Method< / a > < / li >
< / ul >
< / div >
< a id = "skip.navbar.bottom" >
<!-- -->
< / a > < / div >
<!-- ======== END OF BOTTOM NAVBAR ======= -->
< / nav >
< / footer >
2026-01-07 19:27:03 +01:00
< / body >
< / html >