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 > PIFWriter< / 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 = "PIFWriter" ;
}
}
catch ( err ) {
}
//-->
var data = { "i0" : 10 , "i1" : 10 , "i2" : 10 , "i3" : 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.mpif< / a > < / div >
< h2 title = "Class PIFWriter" class = "title" > Class PIFWriter< / 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.mpif.PIFWriter< / 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" > PIFWriter< / span >
extends java.lang.Object< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > 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< / div >
2026-01-08 13:05:29 +01:00
< / li >
< / 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" >
2026-01-07 19:27:03 +01:00
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
2026-01-08 13:05:29 +01:00
< 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()" > PIFWriter< / a > < / span > ()< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< / table >
2026-01-07 19:27:03 +01:00
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< / section >
2026-01-07 19:27:03 +01:00
<!-- ========== METHOD SUMMARY =========== -->
2026-01-08 13:05:29 +01:00
< 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 = "#encodePixels(fr.iutfbleau.sae.mpif.BitOutputStream,fr.iutfbleau.sae.mpif.RGBImage,java.util.Map,java.util.Map,java.util.Map)" > encodePixels< / a > < / span > ​ (< a href = "BitOutputStream.html" title = "class in fr.iutfbleau.sae.mpif" > BitOutputStream< / a > out,
< a href = "RGBImage.html" title = "class in fr.iutfbleau.sae.mpif" > RGBImage< / a > 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)< / code > < / th >
< td class = "colLast" >
2026-01-07 19:27:03 +01:00
< div class = "block" > Encode chaque pixel de l'image en utilisant les codes canoniques.< / div >
2026-01-08 13:05:29 +01:00
< / 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 = "#writeHeader(fr.iutfbleau.sae.mpif.BitOutputStream,int,int)" > writeHeader< / a > < / span > ​ (< a href = "BitOutputStream.html" title = "class in fr.iutfbleau.sae.mpif" > BitOutputStream< / a > out,
int width,
int height)< / code > < / th >
< td class = "colLast" >
2026-01-07 19:27:03 +01:00
< div class = "block" > Écrit l'en-tête du fichier PIF.< / div >
2026-01-08 13:05:29 +01:00
< / 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 = "#writeTables(fr.iutfbleau.sae.mpif.BitOutputStream,java.util.Map,java.util.Map,java.util.Map)" > writeTables< / a > < / span > ​ (< a href = "BitOutputStream.html" title = "class in fr.iutfbleau.sae.mpif" > BitOutputStream< / a > 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)< / code > < / th >
< td class = "colLast" >
2026-01-07 19:27:03 +01:00
< div class = "block" > Écrit dans le fichier les longueurs des codes canoniques.< / div >
2026-01-08 13:05:29 +01:00
< / 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 = "#writeTOFile(java.lang.String,fr.iutfbleau.sae.mpif.RGBImage,java.util.Map,java.util.Map,java.util.Map)" > writeTOFile< / a > < / span > ​ (java.lang.String filepath,
< a href = "RGBImage.html" title = "class in fr.iutfbleau.sae.mpif" > RGBImage< / a > 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)< / code > < / th >
< td class = "colLast" >
2026-01-07 19:27:03 +01:00
< div class = "block" > Sauvegarde une image au format PIF dans un fichier.< / div >
2026-01-08 13:05:29 +01:00
< / 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 >
2026-01-07 19:27:03 +01:00
< / li >
< / ul >
< / section >
2026-01-08 13:05:29 +01:00
< / 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>()" >
<!-- -->
< / a >
< ul class = "blockListLast" >
< li class = "blockList" >
< h4 > PIFWriter< / h4 >
< pre > public PIFWriter()< / pre >
< / 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 = "writeTOFile(java.lang.String,fr.iutfbleau.sae.mpif.RGBImage,java.util.Map,java.util.Map,java.util.Map)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > writeTOFile< / h4 >
< pre class = "methodSignature" > public void writeTOFile​ (java.lang.String filepath,
< a href = "RGBImage.html" title = "class in fr.iutfbleau.sae.mpif" > RGBImage< / a > 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< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > Sauvegarde une image au format PIF dans un fichier.
Le fichier est créé ou écrasé si il existe déjà.< / 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 > filepath< / code > - chemin du fichier à écrire< / dd >
< dd > < code > image< / code > - l'image RGB à encoder< / dd >
< dd > < code > canonR< / code > - codes canoniques de la composante rouge< / dd >
< dd > < code > canonG< / code > - codes canoniques de la composante verte< / dd >
< dd > < code > canonB< / code > - codes canoniques de la composante bleue< / dd >
2026-01-08 13:05:29 +01:00
< dt > < span class = "throwsLabel" > Throws:< / span > < / dt >
< dd > < code > java.lang.Exception< / code > - si une erreur survient dans l'écriture< / dd >
2026-01-07 19:27:03 +01:00
< / dl >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< a id = "writeHeader(fr.iutfbleau.sae.mpif.BitOutputStream,int,int)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > writeHeader< / h4 >
< pre class = "methodSignature" > public void writeHeader​ (< a href = "BitOutputStream.html" title = "class in fr.iutfbleau.sae.mpif" > BitOutputStream< / a > out,
int width,
int height)< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > É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.< / 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 > out< / code > - flux de sortie binaire< / dd >
< dd > < code > width< / code > - largeur de l'image< / dd >
< dd > < code > height< / code > - hauteur de l'image< / dd >
< / dl >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< a id = "writeTables(fr.iutfbleau.sae.mpif.BitOutputStream,java.util.Map,java.util.Map,java.util.Map)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > writeTables< / h4 >
< pre class = "methodSignature" > public void writeTables​ (< a href = "BitOutputStream.html" title = "class in fr.iutfbleau.sae.mpif" > BitOutputStream< / a > 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)< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > É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.< / 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 > out< / code > - flux binaire vers le fichier< / dd >
< dd > < code > canonR< / code > - longueurs pour la composante rouge< / dd >
< dd > < code > canonG< / code > - longueurs pour la composante verte< / dd >
< dd > < code > canonB< / code > - longueurs pour la composante bleue< / dd >
< / dl >
< / li >
2026-01-08 13:05:29 +01:00
< / ul >
< a id = "encodePixels(fr.iutfbleau.sae.mpif.BitOutputStream,fr.iutfbleau.sae.mpif.RGBImage,java.util.Map,java.util.Map,java.util.Map)" >
<!-- -->
< / a >
< ul class = "blockListLast" >
< li class = "blockList" >
< h4 > encodePixels< / h4 >
< pre class = "methodSignature" > public void encodePixels​ (< a href = "BitOutputStream.html" title = "class in fr.iutfbleau.sae.mpif" > BitOutputStream< / a > out,
< a href = "RGBImage.html" title = "class in fr.iutfbleau.sae.mpif" > RGBImage< / a > 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)< / pre >
2026-01-07 19:27:03 +01:00
< div class = "block" > 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().< / 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 > out< / code > - flux d'écriture binaire< / dd >
< dd > < code > image< / code > - l'image source< / dd >
< dd > < code > canonRED< / code > - codes canoniques pour le rouge< / dd >
< dd > < code > canonGREEN< / code > - codes canoniques pour le vert< / dd >
< dd > < code > canonBLUE< / code > - codes canoniques pour le bleu< / 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 >