개발/java,spring
[java] split multi_tif single page(멀티 tif 파일 쪼개기)
Mr.mandu.
2020. 1. 20. 10:08
안녕하세요.
포스팅의 내용은 제목 그래도 multi tif 파일을 쪼개는 것 입니다.
예전에 했음에도 불구하고 다시 할려니 이리저리 쫌 해메어서 기록해 두려고 합니다.
제가 사용한 소스만을 첨부할 것이므로
궁긍한 사항은 댓글로 문의 주세요.
사실 자바로 작성전에 파이썬으로 multi tif 쪼개는 코드를 작성하였는데
품질이 안좋아서 다시 자바로 작성하였습니다.
혹시나 파이썬으로 작업하시는분들은 이점 참고바랍니다.
static void splitFile_ToJpeg(File file) throws IOException { String dir = file.getParent(); String file_name = file.getName().toLowerCase(); file_name = file_name.substring(0, file_name.indexOf(".")); ImageInputStream isb = ImageIO.createImageInputStream(file); Iterator<ImageReader> iterator = ImageIO.getImageReaders(isb); try { if (iterator == null || !iterator.hasNext()) { // 빈파일 체크 기록 //throw new IOException("Image file format not supported by ImageIO: "); writeLog(root_dir, dir + "/" +file_name+"빈파일" ); } } catch (Exception e) { // 예외 기록 System.out.println("@@@" + e); writeLog(root_dir, dir + "/" +file_name+"생성오류" ); } ImageReader reader = (ImageReader) iterator.next(); iterator = null; reader.setInput(isb); int nbPages = reader.getNumImages(true); for (int p = 0; p < nbPages; p++) { BufferedImage bufferedImage = reader.read(p); File fileOutputStream = new File(dir + "/" +file_name+"-"+(p+1) + ".jpeg"); ImageIO.write(bufferedImage, "jpeg", fileOutputStream); } }
저는 multi_tif 파일을 jpeg 형태로 바꾸었습니다.
그리고 위의 소스를 사용하기위해서는 라이브러리가 필요합니다.
필요 라이브러리
jai_codec-1.1.3
jai_core-1.1.2_01
jai_imageio-1.1
해당 라이브러리를 추가하여 사용했습니다.
고생하세요.