将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格式的 ...
随机推荐
- Redis入门——Java接口
1. maven配置 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis&l ...
- 通过Hive将数据写入到ElasticSearch
我在<使用Hive读取ElasticSearch中的数据>文章中介绍了如何使用Hive读取ElasticSearch中的数据,本文将接着上文继续介绍如何使用Hive将数据写入到Elasti ...
- scrapy instantiation
start from scrapy.cmdline import execute execute(['scrapy', 'crawl', 'jokespider']) items.py import ...
- django创建app、在视图函数及url中使用参数、url命名、通过redirect实现网页路径跳转
app用来实现一个独立的功能,视图一般都写在app的view.py中,并且视图的第一个参数永远是request,视图的返回值必须是HttpResponseBase对象或子类的对象. 创建一个app:f ...
- Python生成目录树代码
用Python实现类似Windows下的tree命令,获取目录树结构. import os import os.path BRANCH = '├─' LAST_BRANCH = '└─' TAB = ...
- opencv学习之路(10)、ROI与mask掩码
一.ROI #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat img=imread("E://0 ...
- 使用liner、feather、multiband对已经拼接的数据进行融合(下)
理解mulitband.所谓的mulitband,其实就是一种多尺度的样条融合,其实现的主要方法就是laplace金字塔. 高斯金字塔是向下采样,而laplace金字塔式向上采样(也就是恢复),采用的 ...
- 《学习OpenCV3》第6章课后习题
//Exercises at end of Chapter 5,<learning OpenCV3> #include "stdafx.h" #include < ...
- 20145308 《网络对抗》 MAL_免杀原理及实践 学习总结
20145308 <网络对抗> MAL_免杀原理及实践 学习总结 实践内容 (1)理解免杀技术原理 (2)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免 ...
- 尚硅谷面试第一季-11MyBatis中当实体类中的属性名和表中的字段名不一样怎么办
问题: MyBatis中当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 解决方案: 1.写sql语句时起别名 <!-- id属性:必须是接口中方法的方法名 resultType属性:必须是 ...