package de.exware.scan; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriteParam; import javax.imageio.ImageWriter; import javax.imageio.stream.ImageOutputStream; import de.exware.util.rcp.RCPUtilities; public class TiffTool { public static void concatTiffs(File target, List tiffs) throws IOException { concatTiffs(target, tiffs.toArray(new File[tiffs.size()])); } public static void concatTiffs(File target, File ... tiffs) throws IOException { target.delete(); if(tiffs.length == 1) { RCPUtilities.copy(tiffs[0], target, true); } else { Iterator writers = ImageIO.getImageWritersByFormatName("tiff"); ImageWriter writer = writers.next(); ImageOutputStream out = ImageIO.createImageOutputStream(target); writer.setOutput(out); ImageWriteParam param = writer.getDefaultWriteParam(); param.setCompressionMode(param.MODE_EXPLICIT); param.setCompressionType("JPEG"); writer.prepareWriteSequence(null); for(int i=0;i