首先前置工作室需要的JAI jar包有两个jai_codec.jar和jai_core.jar
maven项目可以添加(注:如果提示找不到的话就手动下载导入吧):
<dependency>
<groupId>javax.media</groupId>
<artifactId>jai_codec</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>javax.media</groupId>
<artifactId>jai_core</artifactId>
<version>1.1.3</version>
</dependency>
直接粘贴一下代码吧,有了下面的小例子再去看JAI就会懂很多,当然JAI图像处理还可以放缩大小,改变像素,截图,压缩,合并等等,有兴趣的可以了解一下。
public void saveTifFile(InputStream inputStream) {
ImageDecodeParam imageDecodeParam = new TIFFDecodeParam();
PNGEncodeParam pngEncodeParam = new PNGEncodeParam.RGB();
ImageDecoder imageDecoder = ImageCodec.createImageDecoder("tiff", inputStream, imageDecodeParam);
int size = 0;
try {
size = imageDecoder.getNumPages();
long date = new Date().getTime();
String filePath = filestoreConfig.getPath() + "/tifFile/" + date;
File file = new File(filePath);
if (!file.exists()) {
file.mkdirs();
}
for (int i = 0; i < size; i++) {
RenderedImage renderedImage = imageDecoder.decodeAsRenderedImage(i);
ParameterBlock args = new ParameterBlock();
String id = UUID.randomUUID().toString();
String path = filePath + "/" + (i + 1);
File file2 = new File(path);
args.addSource(renderedImage);
args.add(file2.toString());
args.add("PNG");
args.add(pngEncodeParam);
RenderedOp r = JAI.create("filestore", args);
r.dispose();
}
} catch (IOException e) {
e.printStackTrace();
}
}
这样就可以实现了