方法一:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.TIFFEncodeParam;
public class MergeTif
{
public static void main(String[] args) throws IOException
{
try
{
File[] files = new File[2];
//需要进行合并的tif图片.(均为单页)
files[0] = new File("d:\\aa.tif");
files[1] = new File("d:\\bb.tif");
ArrayList pages = new ArrayList(files.length - 1);
RenderedOp firstPage =
JAI.create("fileload", files[0].getCanonicalPath());
for (int i = 1; i < files.length; i++)
{
RenderedOp page =
JAI.create("fileload", files[i].getCanonicalPath());
pages.add(page);
}
TIFFEncodeParam param = new TIFFEncodeParam();
//合并后生成的图片
OutputStream out = new FileOutputStream("d:\\cc.tif");
ImageEncoder encoder =
ImageCodec.createImageEncoder("TIFF", out, param);
param.setExtraImages(pages.iterator());
encoder.encode(firstPage);
firstPage.dispose();
for (int i = 0; i < pages.size(); i++)
{
((RenderedOp)pages.get(i)).dispose();
}
out.close();
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
}
方法二:
import java.awt.p_w_picpath.renderable.ParameterBlock;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.TIFFEncodeParam;
public class MergeTif
{
public static void main(String[] args) throws IOException
{
File[] files = new File[2];
//需要进行合并的tif图片.(均为单页)
files[0] = new File("d:\\aa.tif");
files[1] = new File("d:\\bb.tif");
ArrayList pages = new ArrayList(files.length - 1);
FileSeekableStream []stream ={ new FileSeekableStream(files[0].getCanonicalPath()),
new FileSeekableStream(files[1].getCanonicalPath())};
ParameterBlock pb = (new ParameterBlock());
PlanarImage firstPage=JAI.create("stream", stream[0]);
for (int i = 1; i < files.length; i++)
{
PlanarImage page=JAI.create("stream", stream[i]);
pages.add(page);
}
TIFFEncodeParam param = new TIFFEncodeParam();
//合并后生成的图片
OutputStream os = new FileOutputStream("d:\\cc.tif");
ImageEncoder enc = ImageCodec.createImageEncoder("tiff", os, param);
param.setExtraImages(pages.iterator());
enc.encode(firstPage);
for(int i=0; i<files.length;i++)
{
stream[i].close();
}
os.close();
}
}