javadoc pif writer
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user