zoukankan      html  css  js  c++  java
  • 将tiff文件转化为jpg文件并保存

    jar包准备 jai-codec和jai-core

    主要过程

    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;
    }

    循环删除某个文件夹下的所有文件

    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();
    }

  • 相关阅读:
    动态svg图片简单制作
    5418.二叉树中的伪回文路径
    5417.定长子串中元音的最大数目
    76.最小覆盖子串
    1371.每个元音包含偶数次的最长子字符串
    680.验证回文字符串II
    152.乘积最大子数组
    5397.最简分数
    5398.统计二叉树中好节点的数目
    5413.重新排列句子中的单词
  • 原文地址:https://www.cnblogs.com/goujh/p/8434573.html
Copyright © 2011-2022 走看看