package fr.unistra.pelican.demos;
import java.io.File;
import fr.unistra.pelican.ByteImage;
import fr.unistra.pelican.Image;
import fr.unistra.pelican.PelicanException;
import fr.unistra.pelican.algorithms.conversion.AngleToPseudoColors;
import fr.unistra.pelican.algorithms.conversion.GrayToPseudoColors;
import fr.unistra.pelican.algorithms.conversion.RGBToHSI;
import fr.unistra.pelican.algorithms.conversion.RGBToHSV;
import fr.unistra.pelican.algorithms.conversion.RGBToHSY;
import fr.unistra.pelican.algorithms.conversion.RGBToHSY2;
import fr.unistra.pelican.algorithms.io.ImageLoader;
import fr.unistra.pelican.algorithms.io.ImageSave;
import fr.unistra.pelican.algorithms.io.PelicanImageLoad;
import fr.unistra.pelican.algorithms.io.PelicanImageSave;
import fr.unistra.pelican.algorithms.visualisation.Viewer2D;
public class PelicanIODemo
{
public static void main(String[] args)
{
String path="samples/lenna.png";
path="samples/coffee.jpg";
//String path="samples/AstronomicalImagesFITS/img1-10.fits";
Image input = (Image)ImageLoader.exec(path);
input.setColor(true);
Viewer2D.exec(input,"input");
System.out.println("Sauvegarde en mode compressé (par défaut)");
new PelicanImageSave().process(input,"samples/zip.pelican");
Image output = (Image) new PelicanImageLoad().process("samples/zip.pelican");
output.setColor(true);
Viewer2D.exec(output,"after IO operation");
File f = new File("samples/zip.pelican");
if (f.exists()) System.out.println("le fichier existe");
System.out.println("taille du fichier : "+f.length()+" octets");
if (f.delete()) System.out.println("le fichier n'existe plus");
System.out.println("Sauvegarde en mode non compressé");
new PelicanImageSave().process(input,"samples/tmp.pelican",false);
output = (Image) new PelicanImageLoad().process("samples/tmp.pelican",false);
output.setColor(true);
Viewer2D.exec(output,"after IO operation");
f = new File("samples/tmp.pelican");
if (f.exists()) System.out.println("le fichier existe");
System.out.println("taille du fichier : "+f.length()+" octets");
if (f.delete()) System.out.println("le fichier n'existe plus");
/*
Image hsl=RGBToHSV.exec(output);
Viewer2D.exec(hsl.getImage4D(0, Image.B),"hue nb");
ImageSave.exec(hsl.getImage4D(0, Image.B), "couleur-exemple-h.jpg");
Viewer2D.exec(hsl.getImage4D(1, Image.B),"saturation nb");
ImageSave.exec(hsl.getImage4D(1, Image.B), "couleur-exemple-s.jpg");
Viewer2D.exec(hsl.getImage4D(2, Image.B),"brightness nb");
ImageSave.exec(hsl.getImage4D(2, Image.B), "couleur-exemple-i.jpg");
Viewer2D.exec(AngleToPseudoColors.exec(hsl.getImage4D(0, Image.B)),"hue");
ImageSave.exec(AngleToPseudoColors.exec(hsl.getImage4D(0, Image.B)), "couleur-exemple-h2.jpg");
Viewer2D.exec(GrayToPseudoColors.exec(hsl.getImage4D(1, Image.B)),"saturation");
ImageSave.exec(AngleToPseudoColors.exec(hsl.getImage4D(1, Image.B)), "couleur-exemple-s2.jpg");
Viewer2D.exec(GrayToPseudoColors.exec(hsl.getImage4D(2, Image.B)),"brightness");
ImageSave.exec(AngleToPseudoColors.exec(hsl.getImage4D(2, Image.B)), "couleur-exemple-i2.jpg");
*/
/*
output=ImageLoader.exec("/home/miv/lefevre/enseignements/fc/figures/couleur-exemple-h.jpg");
ImageSave.exec(AngleToPseudoColors.exec(output), "couleur-exemple-h2.jpg");
output=ImageLoader.exec("/home/miv/lefevre/enseignements/fc/figures/couleur-exemple-s.jpg");
ImageSave.exec(GrayToPseudoColors.exec(output), "couleur-exemple-s2.jpg");
output=ImageLoader.exec("/home/miv/lefevre/enseignements/fc/figures/couleur-exemple-i.jpg");
ImageSave.exec(GrayToPseudoColors.exec(output), "couleur-exemple-i2.jpg");
*/
output=new ByteImage(256,512,1,1,1);
for (int x=0;x<output.getXDim();x++)
for (int y=0;y<output.getYDim();y++)
output.setPixelXYByte(x,y,y/2);
Viewer2D.exec(output);
ImageSave.exec(AngleToPseudoColors.exec(output), "lut-angle.jpg");
ImageSave.exec(GrayToPseudoColors.exec(output), "lut-gray.jpg");
}
}