[
https://issues.apache.org/jira/browse/PDFBOX-4831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17295557#comment-17295557
]
Gábor Stefanik commented on PDFBOX-4831:
----------------------------------------
Looking into outside-in.pdf in PDFXplorer, Adobe Reader and the proposed patch
are doing the right thing, as far as accurately rendering the PDF goes. The
embedded images are both marked as not to be interpolated when scaling. The
result may be less visually pleasing to a typical viewer, but it is indeed what
the author intended, or at least what the document actually necodes.
While a good argument can be made for ignoring the author's intent for better
visual results in this case, such a decision needs to be restricted to
grayscale and true-color images, with indexed-color and binary images excluded,
so as to avoid introducing unintended colors and transitions into an image (see
mori-cvpr01.pdf for a rather extreme example). Either way, it doesn't make
sense to base that decision on whether the image's resolution is higher than
72DPI, and such a decision should be made separately and explicitly in the
code, and not as a side effect of another check intended to stop
nearest-neighbor downscaling (and thus information loss) in CCITT images.
> Rounding errors when rendering non-interleaved binary CCITT image at 1:1
> scale cause gray pixels in output
> ----------------------------------------------------------------------------------------------------------
>
> Key: PDFBOX-4831
> URL: https://issues.apache.org/jira/browse/PDFBOX-4831
> Project: PDFBox
> Issue Type: Bug
> Components: Rendering
> Affects Versions: 2.0.19
> Reporter: Gábor Stefanik
> Priority: Major
> Attachments: 13._Korona_szallo_vegzes_13.09.26.eredeti-1.png,
> 13._Korona_szallo_vegzes_13.09.26.eredeti.pdf, outside-in.pdf
>
>
> I have a 300dpi scanned PDF file with a single CCITT-encoded black-and-white
> image in each page, spanning the whole page. The images all have a resolution
> of 2480x3504.
>
> When I try to render a page from this PDF into a PNG at 300DPI, the resulting
> PNG has some pixels with colors #010101 and #fefefe. The PNG has the same
> 2480x3504 dimensions as the embedded CCITT images, but stepping through the
> PDFBox code reveals it's trying to downscale the image by a tiny fraction of
> a pixel (e.g. to 2479.999964573x3503.9999537378) using bicubic interpolation,
> introducing these "near-black" and "near-white" pixels due to rounding
> errors. Additionally, the actual image conversion code goes to a slow path
> intended for "proper" interpolated scaling, rather than hitting the fast path
> for copying 1:1-scale images.
>
> For now, we worked around this by treating images containing only #000000,
> #010101, #fefefe and #ffffff as binary, but the performance hit from the slow
> path is still there.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]