将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();
}
将tiff文件转化为jpg文件并保存的更多相关文章
- WPF: 读取XPS文件或将word、txt文件转化为XPS文件
读取XPS格式文件或将doc,txt文件转化为XPS文件,效果图如下: 1.XAML页面代码: <Window x:Class="WpfWord.MainWindow" xm ...
- WFP: 读取XPS文件或将word、txt文件转化为XPS文件
读取XPS格式文件或将doc,txt文件转化为XPS文件,效果图如下: 1.XAML页面代码: <Window x:Class="WpfWord.MainWindow" ...
- 怎样将word文件转化为Latex文件:word-to-latex-2.56具体解释
首先推荐大家读一读这篇博文:http://blog.csdn.net/ibingow/article/details/8613556 --------------------------------- ...
- jupyter命令把.ipynb文件转化为.py文件
jupyter nbconvert --to script *.ipynb 就能把当前文件夹下面的所有的.ipynb文件转化为.py文件
- 使用vivado将bit文件转化为mcs文件
使用vivado将bit文件转化为mcs文件 1.在Tcl Console中运行脚本: write_cfgmem -force -format MCS -size 64 -interface spix ...
- 将caj文件转化为pdf文件进行全文下载脚本(ubuntu下亲测有用)
最近ubuntu下caj阅读器,突然崩掉了,而偏偏要准备开题,在网上搜索原因未果,准备放弃时候,突然在网上看到一个脚本,说是很好用,可以在指定页面将caj文件转化为pdf文件,亲测有用,这里直接给出脚 ...
- Netlib文件转化为mps文件
Netlib文件转化为mps文件 简单方法1 下载并执行: git clone https://github.com/mtanneau/Netlib_experiments.git cd Netlib ...
- plink格式文件转化为vcf文件(VCF versions convert)
plink1.9版本支持转化为VCFv4.2格式 plink2.0版本支持转化为VCFv4.3格式 两个版本用到的命令不一样 对于plink1.9版本,转化为vcf文件的命令行为: plink --b ...
- 如何将freemarker文件转化为html文件
最近在做静态的页面报表服务,将前端生成的ftl文件转化为html格式的文件,供后面合成pdf使用. freemarker基础可以参见:freemarker官方文档 前期准备:需要一个基础的ftl格式的 ...
随机推荐
- hi3516a arm-hisiv300-linux-gcc jrtplib交叉编译
1.进入JThread-1.2.1文件夹 2../configure --prefix=/home/suxuandong/Documents/qth264/hi3516/jrtpjthreadhisi ...
- Spring源码阅读(七)
这一讲主要分析bean注册过程中各种初始化方法回调的执行逻辑(initializeBean) /** * Initialize the given bean instance, applying fa ...
- mybatis源码解析10---StatementHandler解析
StatementHandler解析 接口的作用是statement处理器,位于mybatis包的org.apache.ibatis.executor.statement目录下,源码如下: packa ...
- create-react-app @observer装饰器报错
npm install --save-dev babel-plugin-transform-decorators-legacy 然后在node_modules/babel-preset-react-a ...
- 常用正则表达式爬取网页信息及HTML分析总结
Python爬取网页信息时,经常使用的正则表达式及方法. 1.获取<tr></tr>标签之间内容 2.获取<a href..></a>超链接之间内容 3 ...
- linux--- sort,uniq,cut,wc命令
1.sort [-fbMnrtuk] [file or stdin] -f :忽略大小写的差异,例如 A 与 a 视为编码相同: -b :忽略最前面的空格符部分: -M :以月份的名字来排序,例如 J ...
- MySQL底层索引剖析
1:Mysql索引是什么 mysql索引: 是一种帮助mysql高效的获取数据的数据结构,这些数据结构以某种方式引用数据,这种结构就是索引.可简单理解为排好序的快速查找数据结构.如果要查“mysql” ...
- MyEclipse10.7安装Aptana后重启:An internal error has occurred. No more handles [Could not detect registered XULRunner to use]
问题描述: 当安装Aptana插件后重启MyEclipse10.7,发生错误: An internal error has occurred. No more handles [Could not d ...
- USB基础知识概论(版本:v0.9.2)
源: USB基础知识概论
- C#.Net环境下的缓存技术
转载:https://www.cnblogs.com/lvjy-net/p/8297679.html 一.缓存技术本节将介绍以下技术: 使用Asp.Net缓存: 使用Remoting Singleto ...