用JAI实现对TIF(TIFF)格式图片的合并
用JAI實現對TIF(TIFF)格式圖片的合并
?
方法一:
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();
?? }
}
轉載于:https://blog.51cto.com/liangjp/415330
總結
以上是生活随笔為你收集整理的用JAI实现对TIF(TIFF)格式图片的合并的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP realpath() 函数
- 下一篇: Linux命令中正则表达式的运用