2011-07-29 4 views
0

무손실 JPEG 작업 (예 : jpegtran에서 자르기)을 사용하여 큰 JPEG 이미지에서 JPEG로 압축 된 타일로 타일 된 피라미드 TIFF 파일을 만들어야합니다. 이러한 작업을 수행 할 수있는 도구 또는 Java 코드가 있습니까? 도JPEG 이미지에서 무손실 방식으로 피라미드 타일 된 TIFF를 만드는 방법

public static void writeTiff(RenderedOp src, File dstFile, float jpegQuality, int tileSize, int pyramid, String interpolation) throws IOException { 
    dstFile.getParentFile().mkdirs(); 
    TIFFImageWriterSpi imageWriterSpi = new TIFFImageWriterSpi(); 
    TIFFImageWriter imageWriter = (TIFFImageWriter)imageWriterSpi.createWriterInstance(); 
    ImageOutputStream out = new FileImageOutputStream(dstFile); 
    try { 
     imageWriter.setOutput(out); 
     imageWriter.prepareWriteSequence(null); 
     BufferedImage img = null; 
     for(int i=0; i<pyramid; i++) { 
      img = img==null ? src.getAsBufferedImage() : JAIUtils.scale(img, 0.5F, interpolation).getAsBufferedImage(); 
      TIFFImageWriteParam imageWriteParam = (TIFFImageWriteParam)imageWriter.getDefaultWriteParam(); 
      if (tileSize>0 && (img.getWidth()>tileSize || img.getHeight()>tileSize)) { 
       imageWriteParam.setTilingMode(ImageWriteParam.MODE_EXPLICIT); 
       imageWriteParam.setTiling(tileSize, tileSize, 0, 0); 
      } 
      if (jpegQuality > 0) { 
       imageWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); 
       imageWriteParam.setCompressionType("JPEG"); 
       imageWriteParam.setCompressionQuality(jpegQuality); 
      } 
      imageWriter.writeToSequence(new IIOImage(img, null, null), imageWriteParam); 
     } 
     imageWriter.endWriteSequence(); 
    } finally { 
     out.close(); 
    } 
} 
명령 줄에서 잘

답변

0

Ossim 작동하지만 나는 그것이 JNI binding을 가지고 참조 : 현재

나는 타일 피라미드 TIFF를 만들 내 자바 코드를 사용하지만,있어이 손실 방법으로 그 일을 .

+0

팁 주셔서 감사합니다. – wikisky