Ciao a tutti, ho scritto una piccola applicazione java che presa in input una tiff la comprime con un algoritmo di compressione, uso le api jai image/io la mia classe funziona ma codifica solo la prima pagina del tiff io naturalmente vorrei codificarle tutte, e tutto il giorno che ci sbatto la testa ma non so davvero come risolvere il problema.
Qualcuno sa come aiutarmi? posto il mio codice....Grazie


c static void main(String args[]) {
try {
long t0 = System.nanoTime();

File sourceFile = new File("imgCompressaLZW.tif");
File destFile = new File("imgCompressaLZW-out.tif");
FileImageOutputStream outputStream = new FileImageOutputStream(destFile);

ImageWriter writer = ImageIO.getImageWritersByFormatName("tiff").next() ;
FileImageInputStream inputStream = new FileImageInputStream(sourceFile);

ImageReader reader = ImageIO.getImageReader(writer);
reader.setInput(inputStream);


IIOMetadata metadata = reader.getImageMetadata(0);
ImageReadParam readParam = reader.getDefaultReadParam();
RenderedImage inputImg = reader.readAsRenderedImage(0, readParam);
writer.setOutput(outputStream);
TIFFImageWriteParam writeParam = (TIFFImageWriteParam) writer.getDefaultWriteParam();
writeParam.setCompressionMode(ImageWriteParam.MODE _EXPLICIT);
writeParam.setCompressionType("CCITT T.6");
IIOImage iioImage = new IIOImage(inputImg, null, metadata);
writer.write(null, iioImage,writeParam);
JAI.getDefaultInstance().getTileCache().flush();

System.out.println(writer.canInsertImage(1));
writer.dispose();



outputStream.flush();
outputStream.close();
reader.dispose();
inputStream.flush();
inputStream.close();


System.out.println(" time "+ (System.nanoTime() - t0) / 1000000 / 1000.0 + " sec");

System.out.println("DONE!");
} catch (Throwable e) {
e.printStackTrace();
}
}