javadoc pif writer

This commit is contained in:
youness
2026-01-07 10:59:26 +01:00
parent c8556d469a
commit a317f549ca
+45
View File
@@ -6,8 +6,26 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;
/**
* Cette classe permet d'ecrire une image RGB dans un fichier .pif.
* Elle réalise l'encodage de l'image en utilisant des codes canonique pour les composante rouge vert et bleu.
* Elle écrit succesivement l'entête du fichier, les tables des longueures des codes cannonique, puis les pixels encodée bit à bit.
* Elle est utilisée lors de la compression d'une image vers le format .pif.
* @author Algasimou Ayoub Youness
*/
public class PIFWriter {
/**
* Cette methode sert de pooint d'entre pour l'encodage d'une image en .pif.
* Elle crée des flux de sortie, écrit l'en tête, les tables cannonique puis encode tous les pixels de l'image
*
* @param filepath chemin du fichier .pif a creer
* @param image image rgb a encoder
* @param canonR table des des codes cannonique rouge
* @param canonG table des codes cannonique vert
* @param canonB table des codes cannonique bleu
* @throws Exception si il ya une erreur lors de l'ecriture de fichier avec les rgb
*/
public void writeTOFile(String filepath, RGBImage image,
Map<Integer,String> canonR,
Map<Integer,String> canonG,
@@ -32,6 +50,14 @@ public class PIFWriter {
}
// Ecriture de l'en-tête du fichier PIF (largeur et hauteur)
/**
* Ecrit l'en tête du fichier .pif.
* L'en tête contient la hauteur et la largeure de l'image chacune codée sur 16bits.
* @param out flux binaire de sortie
* @param width largeur de l'image
* @param height hauteur de l'image
*/
public void writeHeader(BitOutputStream out, int width, int height) {
try {
out.writeBits(width, 16);
@@ -41,6 +67,15 @@ public class PIFWriter {
}
}
/**
* Ecrit les tables des longueurs des codes cannoniques.
* pour chaque composante RGB, on assosie 256 valeurs correspondante au bits que contiennent les RGB
* EX: le blanc est associe a 0xFFFFFF : 255.255.255 : 1111 1111.1111 1111.1111 1111.
* @param out flux binaire de sortie
* @param canonR table des codes cannonique rouge
* @param canonG table des codes cannonique vert
* @param canonB table des codes cannonique bleu
*/
public void writeTables(BitOutputStream out, Map<Integer, String> canonR,
Map<Integer, String> canonG, Map<Integer, String> canonB) {
@@ -81,6 +116,16 @@ public class PIFWriter {
}
// Méthode pour encoder les pixels de l'image en utilisant les codes canoniques
/**
* Encode les pixels de l'image et les ecrit dans un fichier .pif.
* l'image est parourue ligne per ligne et pour chaque pixel nous pouvons retrouver les composante RGB ecrite a l'aide de leurs codes cannonique.
* @param out flux binaire de sortie
* @param image image de base a encoder pour recuperer la taill la largeur...
* @param canonRED table des codes cannonique rouge
* @param canonGREEN table des codes cannonique vert
* @param canonBLUE table des codes cannonique bleu
*/
public void encodePixels(BitOutputStream out, RGBImage image,
Map<Integer, String> canonRED,
Map<Integer, String> canonGREEN,