操作PDF、tiff

public static  void tif_2_jpg(String path)throws Exception{
        FileSeekableStream ss = new FileSeekableStream(path);
        TIFFDecodeParam param0 = null;
        TIFFEncodeParam param = new TIFFEncodeParam();
        JPEGEncodeParam param1 = new JPEGEncodeParam();
        ImageDecoder dec = ImageCodec.createImageDecoder("tiff",ss,param0);
        int count = dec.getNumPages();
        param.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);
        param.setLittleEndian(false);
        System.out.println("这个文件有"+ count+"个图片");
        File file = null;
    for (int i = 0; i < count; i++) {
        RenderedImage page = dec.decodeAsRenderedImage(i);
        file = new File(path.replace(path.substring(path.lastIndexOf("."),path.length()),i+"_tiff_.jpg"));
        System.out.println("SAVEING "+file.getAbsoluteFile());
        ParameterBlock pb = new ParameterBlock();
        pb.addSource(page);
        pb.add(file.toString());
        pb.add("JPEG");
        pb.add(param1);
        JAI.create("filestore",pb);
    }
}


操作老版本的tiff



public static void tiffToJPEGByImageIO(String tiff) {
    ImageInputStream input;
    try {
        input = ImageIO.createImageInputStream(new File(tiff));//以图片输入流形式读取到tif
        // Get the reader

while (ImageIO.getImageReaders(input).hasNext()){
            ImageReader reader = ImageIO.getImageReaders(input).next();//获得image阅读器,阅读对象为tif文件转换的流
String path,tiffName;
            path = tiff.substring(0, tiff.lastIndexOf("."));
            tiffName = tiff.substring(tiff.lastIndexOf("\\"),tiff.lastIndexOf("."));
            try {
                reader.setInput(input);
                // Read page 2 of the TIFF file
int count = reader.getNumImages(true);//tif文件页数
                //System.out.println(count);
for(int i = 0; i < count; i++){
                    BufferedImage image = reader.read(i, null);//取得第i页
File f = new File(path+"_"+i+".jpg");
                    ImageIO.write(image, "JPEG", f);//保存图片
}
            }catch (IOException e){
                e.printStackTrace();
            }
            finally {
                System.out.println(tiff+"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                reader.dispose();
                input.close();
            }
        }


    }catch (IOException e) {
        e.printStackTrace();
    }
}


操作pdf
public static void PDF2ImagPDFbox(String filePath)throws Exception {
    PDDocument pdf = null;
        pdf = PDDocument.load(new File(filePath));
        PDFRenderer pdfRenderer = new PDFRenderer(pdf);
        PDPageTree pageTree = pdf.getPages();
        int pageCounter = 0;
        for (int i = 0; i < pageTree.getCount(); i++) {
            float width = pageTree.get(i).getCropBox().getWidth();
            float scale = 1.0f;
            if (width > 720) {
                scale = 720 / width;
            }
            BufferedImage bim = pdfRenderer.renderImage(i, scale, ImageType.RGB);
            ImageIOUtil.writeImage(bim, filePath.replace(filePath.substring(filePath.lastIndexOf("."), filePath.length()), i + ".jpg"), 300);
            System.out.println("!!!!!!!!!!!!!!!!");
        }
}
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值