近日公司要求实现图片在线预览,遇到了 tiff类型的图片文件,发现不能预览,之后查阅相关资料,如果要预览tiff类型文件,必须先转成 JPG 文件。 自己亲测可以使用,供参考。
一.环境准备
tiff 图片文件 转 JPG图片所需 jar包:https://download.youkuaiyun.com/download/mufeng633/10743952
二.代码Demo
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.JPEGEncodeParam;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import java.io.*;
/**
* 将 tiff 转换 jpg 格式
* @param filePath
* @return
*/
public static String tiffTuanJPG(String filePath){
String format = filePath.substring(filePath.lastIndexOf(".")+1);
String turnJpgFile = filePath.replace("tiff", "jpg");
if(format.equals("tiff")){
File fileTiff = new File(turnJpgFile);
if(fileTiff.exists()){
System.out.println("该tiff文件已经转换为 JPG 文件:"+turnJpgFile);
return turnJpgFile;
}
RenderedOp rd = JAI.create("fileload", filePath);//读取iff文件
OutputStream ops = null;
try {
ops = new FileOutputStream(turnJpgFile);
//文件存储输出流
JPEGEncodeParam param = new JPEGEncodeParam();
ImageEncoder image = ImageCodec.createImageEncoder("JPEG", ops, param); //指定输出格式
image.encode(rd );
//解析输出流进行输出
ops.close();
System.out.println("tiff转换jpg成功:"+filePath);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return turnJpgFile;
}
亲测可用。
2020.03.09日更新:
鉴于有人说导入jar包不能用等等问题,我重新编辑一下,贴上导入jar的地址。再次强调,代码和jar包没问题,注意你引入的jar包! 注意! 注意! 注意!