есть ли другой способ конвертировать tiff в jpg без использования JAI или JAIImageIO

Я не могу добавить библиотеки jai в jdk. я уже установил все в правильное положение. Мне нужно прочитать изображение в формате tiff. Но это не работает, поэтому я попытался преобразовать файл tiff в JPEG. но все еще получаю ту же ошибку. набор путей к классам. Все хорошо. Код компилируется нормально. я нашел в стеке потока:

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");   
  }
 }

Во время выполнения я получаю ошибку NoClassDefFound для seekeableStream. Так что теперь я не хочу использовать JAI и JAIImageIO Apis


person user23385    schedule 01.08.2014    source источник
comment
Мне кажется, что у вас есть проблема с путем к классу, если код компилируется, но вы получаете NoClassDefFoundError во время выполнения. Если вы хотите избежать использования JAI, вы всегда можете попробовать использовать мой Подключаемый модуль TIFF для ImageIO.   -  person Harald K    schedule 04.08.2014
comment
NoClassDefFoundError не является рациональной причиной отказа от использования API-интерфейсов JAI или JAIImageIO. Было бы более целесообразно решить текущую проблему, а не переключаться на другую неизвестную технологию и любые неизвестные проблемы, связанные с ней.   -  person user207421    schedule 20.08.2014


Ответы (1)


JAI — это расширение JDK; вы должны установить его. См. http://download.java.net/media/jai/builds/release/1_1_3/INSTALL.html .

Убедитесь, что вы установили его правильно.

person André Wéber    schedule 20.08.2014
comment
моя банка была повреждена, поэтому я не смог ее сделать .. скачал правильно, начал работать Спасибо. - person user23385; 03.11.2014
comment
это не совсем ответ на актуальный вопрос. это решает проблему user23385s, но не решает проблему чтения tiff без JAI :( - person manu; 13.03.2015