有没有其他方法可以在不使用JAI或JAIImageIO的情况下将tiff转换为jpg

时间:2014-08-01 05:30:59

标签: java jai

我无法在jdk中添加jai库。我已经设定了正确的位置。 我需要阅读tiff图像。但这不起作用所以我试图将tiff文件转换为JPEG。但仍然得到同样的错误。  类路径集。一切都好。代码编译正常。我在stackflow上找到了:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.awt.image.RenderedImage;
import com.sun.media.jai.codecimpl.JPEGCodec;
import com.sun.media.jai.codecimpl.*;
import com.sun.media.jai.codecimpl.JPEGImageEncoder;
import com.sun.media.jai.codec.SeekableStream;
import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.TIFFDecodeParam;
import com.sun.media.jai.codec.ImageDecoder;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.*;

public class TiffUtils {  
public static void TiffToJpg(String tiff, String output)throws IOException{ 
    File tiffFile = new File(tiff);   
    SeekableStream s = new FileSeekableStream(tiffFile);   
    TIFFDecodeParam param = null; 
    ImageDecoder dec = ImageCodec.createImageDecoder("tiff", s, param);   
    RenderedImage op = dec.decodeAsRenderedImage(0);
    FileOutputStream fos = new FileOutputStream(output);

    JPEGEncodeParam jpgparam = new JPEGEncodeParam();
    jpgparam.setQuality(67);
    ImageEncoder en = ImageCodec.createImageEncoder("jpeg", fos, jpgparam);
    en.encode(op);
    fos.flush();
     fos.close();}   
  public static void main(String[] args) throws Exception {    
  TiffUtils.TiffToJpg("C:\\Users\\JavaPrg\\Input\\def.tif","C:\\Users\\JavaPrg\\Input\\test.jpg");   
  }
 }

运行时我遇到了seekeableStream的NoClassDefFound错误。所以现在我不想使用JAI和JAIImageIO Apis

1 个答案:

答案 0 :(得分:-1)

JAI是JDK的扩展;你必须安装它。见http://download.java.net/media/jai/builds/release/1_1_3/INSTALL.html

确保您已正确安装。