资源简介
支持对tiff格式图片进行压缩,也可将图片转换其他格式后进行压缩
代码片段和文件信息
package cn.adtex.common.kwm.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import cn.adtex.common.component.exception.ErrCodes;
import cn.adtex.common.component.exception.TxnException;
import cn.adtex.common.kwm.CommonErrCodes;
import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.TIFFEncodeParam;
/**
*
* @author maojk
*
*/
public class TifUtil {
/**
* @param tzsPath
* @throws TxnException
*/
public static final void processTifFile(String workPath) throws TxnException {
String inWorkPath = workPath;
if(!inWorkPath.endsWith(“/“)) {
inWorkPath = inWorkPath + “/“;
}
File workFile = new File(inWorkPath);
File[] fileList = workFile.listFiles();
ArrayList tifFiles = new ArrayList();
for (File file : fileList) {
if (file.isDirectory()) {
TifUtil.processTifFile(file.getAbsolutePath());
} else {
String fileName = file.getName();
if (fileName.endsWith(“.tif“) || fileName.endsWith(“.tiff“)) {
tifFiles.add(fileName);
}
}
}
if (!tifFiles.isEmpty()) {
Collections.sort(tifFiles new TifUtil.TifFileNameComparator());
PlanarImage firstPage = null;
OutputStream os = null;
ArrayList pages = new ArrayList();
ArrayList streams = new ArrayList();
String tifFile = null;
try {
for (int i = 0; i < tifFiles.size(); i++) {
tifFile = tifFiles.get(i);
FileSeekableStream stream = new FileSeekableStream(
inWorkPath + tifFile);
streams.add(stream);
if (i == 0) {
firstPage = JAI.create(“stream“ stream);
} else {
PlanarImage page = JAI.create(“stream“ stream);
pages.add(page);
}
}
TIFFEncodeParam param = new TIFFEncodeParam();
param.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);//增加压缩属性,防止文件生成过大
os = new FileOutputStream(inWorkPath + “merge.tiff“);
ImageEncoder enc = ImageCodec.createImageEncoder(“tiff“ os
param);
param.setExtraImages(pages.iterator());
enc.encode(firstPage);
} catch (FileN
- 上一篇:jsp+access投票系统
- 下一篇:VisualGDB 5.4p3 破解补丁
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论