javadoc pif writer
This commit is contained in:
@@ -6,8 +6,26 @@ import java.io.FileOutputStream;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Map;
|
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 {
|
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,
|
public void writeTOFile(String filepath, RGBImage image,
|
||||||
Map<Integer,String> canonR,
|
Map<Integer,String> canonR,
|
||||||
Map<Integer,String> canonG,
|
Map<Integer,String> canonG,
|
||||||
@@ -32,6 +50,14 @@ public class PIFWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ecriture de l'en-tête du fichier PIF (largeur et hauteur)
|
// 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) {
|
public void writeHeader(BitOutputStream out, int width, int height) {
|
||||||
try {
|
try {
|
||||||
out.writeBits(width, 16);
|
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,
|
public void writeTables(BitOutputStream out, Map<Integer, String> canonR,
|
||||||
Map<Integer, String> canonG, Map<Integer, String> canonB) {
|
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
|
// 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,
|
public void encodePixels(BitOutputStream out, RGBImage image,
|
||||||
Map<Integer, String> canonRED,
|
Map<Integer, String> canonRED,
|
||||||
Map<Integer, String> canonGREEN,
|
Map<Integer, String> canonGREEN,
|
||||||
|
|||||||
Reference in New Issue
Block a user