[ 
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]

Reply via email to