六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 39|回复: 0

多页tiff转jpg

[复制链接]

升级  20%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
10
 楼主| 发表于 2013-2-3 14:13:53 | 显示全部楼层 |阅读模式
最近好几个站友求这段代码,就放这里,免得每次发邮件了。
import java.awt.image.RenderedImage;import java.io.*;import com.sun.media.jai.codec.*;/*** @version 1.0 2008-1-14 12:09:10*/public class TiffUtil{   public static final String TIFF = "TIFF";   public static final String JPEG = "JPEG";   public static int getTotalPageNumber(File file)           throws IOException   {       SeekableStream seekableStream = new FileSeekableStream(file);       TIFFDecodeParam param = new TIFFDecodeParam();       ImageDecoder dec = ImageCodec.createImageDecoder(TIFF, seekableStream, param);       return dec.getNumPages();   }   /**    * 获取tiff文件中的某页的图像,页号从0开始    *    * @param tiffInputStream tiff输入流    * @param pageNum tiff文件中的某页号,从0开始    * @return tiff中的某页图象    * @throws IOException;    */   public static RenderedImage getSinglePageRenderImage(InputStream tiffInputStream, int pageNum)           throws IOException   {       int page = pageNum - 1;       TIFFDecodeParam param = new TIFFDecodeParam();       ImageDecoder dec = ImageCodec.createImageDecoder(TIFF, tiffInputStream, param);       int numPages = dec.getNumPages();       if (page < 0 || page >= numPages) {           throw new IndexOutOfBoundsException();       }       return dec.decodeAsRenderedImage(page);   }   /**    * 获取tiff文件中的某页的图像,页号从0开始    *    * @param file tiff文件    * @param pageNum tiff文件中的某页号,从0开始    * @return tiff中的某页图象    * @throws IOException;    */   public static RenderedImage getSinglePageRenderImage(File file, int pageNum)           throws IOException   {       int page = pageNum - 1;       TIFFDecodeParam param = new TIFFDecodeParam();       ImageDecoder dec = ImageCodec.createImageDecoder(TIFF, file, param);       int numPages = dec.getNumPages();       if (page < 0 || page >= numPages) {           throw new IndexOutOfBoundsException();       }       return dec.decodeAsRenderedImage(page);   }   public static void main(String[] args)           throws IOException   {       File file = new File("n:/tmp/a.tiff");       RenderedImage image = TiffUtil.getSinglePageRenderImage(file, 1);       JPEGEncodeParam param = new JPEGEncodeParam();       param.setQuality(0.075f);       try {           OutputStream os = new FileOutputStream("n:/tmp/a.jpg");           ImageEncoder imageEncoder = ImageCodec.createImageEncoder(JPEG, os, param);           imageEncoder.encode(image);           os.close();       }       catch (Exception e) {           e.printStackTrace();       }   }}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表