所以,我正在尝试使用JAI来处理TIF。我应该指出,在今天之前,它运作良好。我似乎无法弄清楚我做错了什么,而异常来自的代码部分并不是我改变的部分。
无论如何,异常原因是来自其中一个核心JAI类的ClassCastException。这绝对没有意义,但它正在发生。
这是堆栈跟踪和代码。任何建议都会很棒。我完全迷失在这一个。真的很讨厌JAI,但是Commons Imaging更糟糕,所以我想我已经坚持了。
引起:java.lang.ExceptionInInitializerError at com.pilotfish.eip.modules.other.pdfoverlay.PDFMultiOverlayProcessor.readTiffImageFromSeekableStream(PDFMultiOverlayProcessor.java:486) 在 com.pilotfish.eip.modules.other.pdfoverlay.PDFMultiOverlayProcessor.readTiffImageFromFile(PDFMultiOverlayProcessor.java:425) 在 com.pilotfish.eip.modules.other.pdfoverlay.PDFMultiOverlayProcessor.bufferImageFromFile(PDFMultiOverlayProcessor.java:394) 在 com.pilotfish.eip.modules.other.pdfoverlay.PDFMultiOverlayProcessor.getImageFromFile(PDFMultiOverlayProcessor.java:277) 在 com.pilotfish.eip.modules.other.pdfoverlay.PDFMultiOverlayProcessor.overlayImageItem(PDFMultiOverlayProcessor.java:252) 在 com.pilotfish.eip.modules.other.pdfoverlay.PDFMultiOverlayProcessor.overlayImagesOnPDF(PDFMultiOverlayProcessor.java:115) 在 com.pilotfish.eip.modules.other.pdfoverlay.PDFMultiOverlayProcessor.processData(PDFMultiOverlayProcessor.java:98) 在 com.pilotfish.eip.transact.stages.ProcessorStage.process(ProcessorStage.java:44) 在 com.pilotfish.eip.transact.StageHandler.process(StageHandler.java:99) 在 com.pilotfish.eip.transact.Transaction.runStage(Transaction.java:115) ... 4更多引起:java.lang.ClassCastException: com.sun.media.jai.imageioimpl.ImageReadWriteSpi无法强制转换为 javax.media.jai.OperationRegistrySpi at javax.media.jai.OperationRegistry.registerServices(OperationRegistry.java:2047) 在 javax.media.jai.ThreadSafeOperationRegistry.registerServices(ThreadSafeOperationRegistry.java:612) 在 javax.media.jai.OperationRegistry.initializeRegistry(OperationRegistry.java:365) 在javax.media.jai.JAI。(JAI.java:560)... 14更多
private BufferedImage readTiffImageFromSeekableStream(SeekableStream seekStream){
TIFFDecodeParam decodeParam = new TIFFDecodeParam();
decodeParam.setDecodePaletteAsShorts(true);
ParameterBlock params = new ParameterBlock();
params.add(seekStream);
RenderedOp image1 = JAI.create("tiff", params);
return image1.getAsBufferedImage();
}
抛出异常的行是倒数第二行:RenderedOp image1 = JAI.create(“tiff”,params);
帮助。请。该死的在这里,这个图书馆从第一天起就是一个巨大的头痛,但我不知道有什么更好的选择,我需要这个东西再次工作。我花了最后两个小时试图解决这个问题,并且完全无处可去。