多张图片合成一个tif文件
2018-02-04 21:09
267 查看
最近在项目对接过程中,遇到一个奇葩的需求,对方提出要求我们将每一类材料合成一个tif文件提交到ftp服务器上,感觉很无奈,就找一些工具类来做,并记录一下,以防遗忘。
我使用maven来管理jar包,下面是需要的两个jar包,很无奈的是我使用maven并不能将这两个jar包下载下来,所以自己去找了一下。
maven地址:
如果你可以将这两个jar包下载下来,就不用去找csdn上去找了
CSDN上该jar包的地址
测试代码:
我使用maven来管理jar包,下面是需要的两个jar包,很无奈的是我使用maven并不能将这两个jar包下载下来,所以自己去找了一下。
maven地址:
<!-- https://mvnrepository.com/artifact/com.github.jai-imageio/jai-imageio-core --> <dependency> <groupId>com.github.jai-imageio</groupId> <artifactId>jai-imageio-core</artifactId> <version>1.3.1</version> </dependency> <!-- https://mvnrepository.com/artifact/com.sun.media/jai-codec --> <dependency> <groupId>com.sun.media</groupId> <artifactId>jai-codec</artifactId> <version>1.1.3</version> </dependency>
如果你可以将这两个jar包下载下来,就不用去找csdn上去找了
CSDN上该jar包的地址
public static void imgToTif(List<String> filesPath, String toPath, String distFileName) { if (filesPath != null && filesPath.size() > 0) { File[] files = new File[filesPath.size()]; for (int i = 0; i < filesPath.size(); i++) { files[i] = new File(filesPath.get(i)); } if (files.length > 0) { try { ArrayList<PlanarImage> pages = new ArrayList<PlanarImage>(files.length - 1); FileSeekableStream[] stream = new FileSeekableStream[files.length]; for (int i = 0; i < files.length; i++) { stream[i] = new FileSeekableStream( files[i].getCanonicalPath()); } PlanarImage firstPage = JAI.create("stream", stream[0]); for (int i = 1; i < files.length; i++) { PlanarImage page = JAI.create("stream", stream[i]); pages.add(page); } TIFFEncodeParam param = new TIFFEncodeParam(); File f = new File(toPath); if (!f.exists()) { f.mkdirs(); } OutputStream os = new FileOutputStream(toPath + File.separator + distFileName); ImageEncoder enc = ImageCodec.createImageEncoder("tiff", os, param); param.setExtraImages(pages.iterator()); enc.encode(firstPage); for (int i = 0; i < files.length; i++) { stream[i].close(); } os.close(); } catch (IOException e) { e.printStackTrace(); } } } }
测试代码:
public static void main(String[] args) throws Exception { File file = new File("temp/a.jpg"); List<String> list = new ArrayList<String>(); list.add(file.getAbsolutePath()); list.add(file.getAbsolutePath()); list.add(file.getAbsolutePath()); imgToTif(list, "temp2", "a.tif"); }
相关文章推荐
- iOS多张图片合成一个视频文件
- iOS多张图片合成一个视频文件
- 多张图片合成一个tif
- iOS多张图片合成一个视频文件
- iOS多张图片合成一个视频文件
- jpg转换成PDF 如何将多张图片合成一个PDF文件
- Linux 下将多个 *.png 图片合成一个 *.gif 文件
- 一个TIF文件包含多个文件,如何显示每一张图片
- IOS多张图片合成一个视频
- Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
- linux下把多个图片合成一个pdf文件
- iOS多张图片合成一个视频
- IOS多张图片合成一个视频
- canvas toDataURL转base64实现多张图片合成一个图片
- iOS多张图片合成一个视频
- iOS中将多张图片合成为可导出可播放的视频文件(Swift 3)
- 将多个图片合并到一个TIF文件里(非 GDAL)
- 怎么将多张图片合成一个PDF文件
- iOS多张图片合成一个视频
- IOS多张图片合成一个视频