ayuda Como crear multi tiff?
Hola a todos, les agradesco de antemano su ayuda.
Se me a solicitado crear una aplicacion que guarde imagenes escaneadas en un archivo de varias paginas en este caso un multi tiff, eh buscado en la web por los mejores ejemplos que me lleven a el resultado deseado pero sin nada por el momento.
Lo mas cercano que eh encontrado en este codigo que uno 2 archivos tiff a 1 multi tiff, pero me genera un error de que no se encuentra algun lector de tiff alguna idea de que es lo que me falte para que funciones el codigo.
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageInputStream;
import javax.imageio.stream.ImageOutputStream;
class JAIprueba {
public static void concateTiff(String[] inputTiffs, String outputTiff) {
List<IIOImage> imageList = new ArrayList<IIOImage>();
ImageInputStream tiffStream = null;
IIOImage tiffImage = null;
try {
// locate a TIFF reader
Iterator<ImageReader> tiffReaders = ImageIO.getImageReadersByFormatName("tiff");
if (!tiffReaders.hasNext())
throw new IllegalStateException("No TIFF reader found");
ImageReader tiffReader = tiffReaders.next();
for (int i = 0; i < inputTiffs.length; i++) {
System.out.println("image-" + i);
// point it to our image file
tiffStream = ImageIO.createImageInputStream(new File(inputTiffs[i]));
tiffReader.setInput(tiffStream);
// read pages until end of image from the TIFF file
try {
for (int index = 0;; index++) {
tiffImage = tiffReader.readAll(index, tiffReader.getDefaultReadParam());
imageList.add(tiffImage);
}
} catch (IndexOutOfBoundsException ex) {
System.out.println("page limit crossed!");
}
}
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("tiff");
ImageWriter writer = writers.next();
ImageOutputStream ios = ImageIO.createImageOutputStream(new File(outputTiff));
writer.setOutput(ios);
IIOImage firstIioImage = imageList.remove(0);
writer.write(firstIioImage);
int i = 1;
for (IIOImage iioImage : imageList) {
writer.writeInsert(i++, iioImage, null);
}
ios.close();
tiffStream.close();
} catch (IOException e) {
System.out.println("error merging tiff. Msg=" + e.getMessage());
}
}
public static void main(String Args[]){
String rutas[]={
"imagen1.tiff",
"imagen2.tiff"
};
concateTiff(rutas, "d:/resultado.tiff");
}
}
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 1 semana 3 días
hace 1 semana 3 días
hace 1 semana 3 días
hace 25 semanas 6 días
hace 27 semanas 1 día
hace 33 semanas 6 días
hace 1 año 26 semanas
hace 2 años 38 semanas
hace 2 años 42 semanas
hace 2 años 49 semanas