资源简介
支持对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源代码保护工具ProGuard的3.6与4.1版
- java 利用Kmeans的jar包进行聚类---代码
- java海量数据读写优化方案
- 神经网络算法与实现 ——基于Java语言
- java编写的简单手机通讯录
- 一款Java版的电子宠物游戏源代码
- JAVA给doc文档加密加水印
- Java程序设计基础 课后答案
- rtx单点登录(JAVA实现)
- java web使用监听器实现定时周期性执行
- java多线程模拟队列实现排队叫号
- 软件工程课程设计,教务考试系统
- Java聊天室
- JAVA实验字符串的滚动
- 在线财务管理系统(含源码)
- Java聊天室程序,socket编程
- JAVA编写的基于文本相似度匹配的文本
- java龟兔赛跑源代码
- Java骑士游历课程设计
- java_十进制数转换为二进制八进制十六
- 用贝叶斯分类器实现垃圾邮件分类器
- javaweb之jsp+servlet实现简单的学生管理
- java联网版五子棋源代码
- sql server 2000 java驱动包
- java 具有图形界面的最短路径问题的求
- java实现哈密顿路径,递归和非递归两
- java仿QQ() 最新版
- mysql-connector-java-5.1.37-bin jar包
- java解析Pcap文件获取五元组可执行
- Java程序设计清华大学出版社-习题参考
评论
共有 条评论