[ 
https://issues.apache.org/jira/browse/PDFBOX-1963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13923173#comment-13923173
 ] 

John Hewson edited comment on PDFBOX-1963 at 3/7/14 12:23 PM:
--------------------------------------------------------------

Yes, my refactoring removed the ability to choose the BufferedImage type. 
That's because PDFBox's internal image rendering can only render to 
TYPE_INT_RGB and TYPE_INT_ARGB images. The user is free to convert the 
BufferedImage themselves afterwards, doing so is the same as what was 
previously happening silently: an inefficient conversion from RGB to BINARY 
after-the-fact.

I removed the dpi parameter because most graphics APIs deal with scaling, not 
with DPI (think of Apple's high-dpi mode, it's called "2x" not "144dpi". It has 
been my experience that users often misunderstand DPIs, mostly due to the 
Mac/Windows 72/96 legacy. I agree that for advanced users it's nicer to be able 
to specify a DPI so I've added two {{renderImageWithDPI}} methods in revision 
1575080 to explicitly allow this :)

EDIT: I had to add revision 1575115 too to fix some bugs.


was (Author: jahewson):
{quote}
Your refactoring \[...] took away the possibility to decide on the type of the 
BufferedImage, especially for bitonal images, which is a requirement for TIFF 
CCITT G4 compression.
{quote}

Yep, that's because PDFBox's internal rendering can only render to TYPE_INT_RGB 
and TYPE_INT_ARGB images. The user is free to convert the BufferedImage 
themselves afterwards, doing so is the same as what was previously happening 
silently: an inefficient conversion from RGB to BINARY after-the-fact.

{quote}
You also took away the dpi parameter. This wasn't discussed before, and it is 
very annoying for a user to enter 300 / 72.0 as parameter instead of just 300 
as before.
{quote}

Most graphics APIs deal with scaling, not with DPI (think of Apple's high-dpi 
mode, it's called "2x" not "144dpi". It has been my experience that users often 
misunderstand DPIs, mostly due to the Mac/Windows 72/96 legacy. I agree that 
for advanced users it's nicer to be able to specify a DPI so I've added two 
{{renderImageWithDPI}} methods in revision 1575080 to explicitly allow this :)

EDIT: I had to add revision 1575115 too to fix some bugs.

> PDFImageWriter doesn't make use of PDFStreamEngine
> --------------------------------------------------
>
>                 Key: PDFBOX-1963
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-1963
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: Utilities
>    Affects Versions: 2.0.0
>            Reporter: John Hewson
>            Assignee: John Hewson
>             Fix For: 2.0.0
>
>
> PDFImageWriter is a subclass of PDFStreamEngine, however it never uses any of 
> its functionality, the writeImage methods could be marked as static and 
> behave in the same manner.
> The relationship between PDFImageWriter, RenderUtil, and ImageIOUtil no 
> longer matches its historical origins and needs to be refactored.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to