Я не могу добавить библиотеки 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
NoClassDefFoundError
во время выполнения. Если вы хотите избежать использования JAI, вы всегда можете попробовать использовать мой Подключаемый модуль TIFF для ImageIO. - person Harald K   schedule 04.08.2014NoClassDefFoundError
не является рациональной причиной отказа от использования API-интерфейсов JAI или JAIImageIO. Было бы более целесообразно решить текущую проблему, а не переключаться на другую неизвестную технологию и любые неизвестные проблемы, связанные с ней. - person user207421   schedule 20.08.2014