• 大小: 5KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: Java
  • 标签: java  tiff  图片压缩  

资源简介

支持对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

评论

共有 条评论