將tiff文件轉化爲jpg文件並保存

jar包準備 jai-codec和jai-core數據庫

 

主要過程app

private boolean parseTifFile(FileItem item) {
  logger.info("-------parseTifFile---start----");
  try {
      InputStream ins = item.getInputStream();
      ImageDecodeParam imageDecodeParam = new TIFFDecodeParam();
      JPEGEncodeParam param1 = new JPEGEncodeParam();
      ImageDecoder imageDecoder = ImageCodec.createImageDecoder("tiff", ins, imageDecodeParam);
      int size = imageDecoder.getNumPages();//tif頁數
      String ApplicationPath = SysVar.getVar("ApplicationPath");//ui所在目錄/data/app/Claim-YS2/ui/
      String des = SysVar.getVar("TiffAndJPG");//scanningCopy/folder/
      String name = item.getName();//投保意向書-李帥.tif
      name = name.substring(0,name.lastIndexOf(".tif"));//投保意向書-李帥
      // deleteAllFiles(file);//刪除image目錄以刪除原來可能存在的圖片
      for(int i = 0; i < size; i++){
        RenderedImage renderedImage = imageDecoder.decodeAsRenderedImage(i);//單個圖片
        ParameterBlock arg = new ParameterBlock();
        String despath = ApplicationPath + des + "jpg/" + this.mBatchNo + "/" + i + ".jpg";
        File file = new File(despath);
        if (!file.exists()) {
          file.getParentFile().mkdirs();
          file.createNewFile();//若是不存在,新建空圖片
        }
        arg.addSource(renderedImage);
        arg.add(file.toString());
        arg.add("JPEG");
        arg.add(param1);
        RenderedOp r = JAI.create("filestore", arg);
        r.dispose();

        //保存於數據庫中,這裏屬於lis框架的內容
        T_SAVE_FILESchema tSaveFile = new T_SAVE_FILESchema();
        tSaveFile.setBatchNo(this.mBatchNo);
        tSaveFile.setName(name + "_" + i + ".jpg");//xxx_0.jpg
        tSaveFile.setUrl(despath);
        tSaveFile.setFileType("JPEG");
        tSaveFile.setMakeDate(PubFun.getCurrentDate());
        tSaveFile.setMakeTime(PubFun.getCurrentTime());
        this.tMap.put(tSaveFile, "DELETE&INSERT");
      }
    } catch (Exception ex) {
      ex.printStackTrace();
      this.tCErrors.addOneError(ex.getMessage());
      return false;
  }
  logger.info("-------parseTifFile----end----");
  return true;
}框架

 

循環刪除某個文件夾下的全部文件ui

public static void deleteAllFiles(File file){
  if(file == null || !file.exists())
  return ;
  if(file.isDirectory()){
    File[] files = file.listFiles();
    if(files != null){
      for(File f : files)
      deleteAllFiles(f);
    }
  }
  file.delete();
}this

相關文章
相關標籤/搜索