/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package omr.jai;
import omr.util.StopWatch;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageInputStream;
import javax.imageio.stream.ImageOutputStream;
/**
* Class {@code TiffSplit}
*
* @author Hervé Bitteur
*/
public class TiffSplit
{
//~ Methods ----------------------------------------------------------------
public static void main (String... args)
throws Exception
{
String ext = "tif";
StopWatch watch = new StopWatch(
"Reading tif / Writing " + ext);
// Input file
String fileName = "D0394228.tif";
File inputFile = new File(fileName);
ImageInputStream iis = ImageIO.createImageInputStream(inputFile);
// Reader
Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
ImageReader reader = readers.next();
reader.setInput(iis);
// Number of images
int number = reader.getNumImages(true);
// Writer
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(
ext);
ImageWriter writer = writers.next();
ImageOutputStream ios = null;
BufferedImage img = null;
File outputFile = null;
for (int i = 0; i < number; i++) {
watch.start("Reading " + i);
img = reader.read(i);
watch.stop();
outputFile = new File("myimage" + i + "." + ext);
ios = ImageIO.createImageOutputStream(outputFile);
writer.setOutput(ios);
watch.start("Writing " + i);
writer.write(img);
watch.stop();
ios.flush();
img.flush();
}
watch.print();
}
private TiffSplit ()
{
}
}