[
https://issues.apache.org/jira/browse/PDFBOX-6060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18018313#comment-18018313
]
Simon Steiner commented on PDFBOX-6060:
---------------------------------------
Added code for new findImageReader
> Allow use of 12 monkeys in DCTFilter
> ------------------------------------
>
> Key: PDFBOX-6060
> URL: https://issues.apache.org/jira/browse/PDFBOX-6060
> Project: PDFBox
> Issue Type: Bug
> Reporter: Simon Steiner
> Priority: Major
>
> DCTFilter calls findRasterReader and returns the first reader, on error it
> should try the 2nd reader as JDK cant read all jpegs
> {code:java}
> protected void findImageReader(String formatName, String errorCause,
> InputStream encoded, ImageReaderRunner runner) throws IOException
> {
> Iterator<ImageReader> readers =
> ImageIO.getImageReadersByFormatName(formatName);
> ImageInputStream iis = ImageIO.createImageInputStream(encoded);
> iis.mark();
> Exception exception = null;
> String error = "Cannot read " + formatName + " image: " + errorCause;
> try {
> while (readers.hasNext()) {
> ImageReader reader = readers.next();
> if (reader.canReadRaster()) {
> try {
> reader.setInput(iis);
> runner.run(reader);
> return;
> } catch (Exception e) {
> exception = e;
> error = e.getMessage();
> iis.reset();
> } finally {
> reader.dispose();
> }
> }
> }
> } finally {
> iis.close();
> }
> throw new RuntimeException(error, exception);
> }
> interface ImageReaderRunner {
> void run(ImageReader reader) throws IOException;
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]