[ 
https://issues.apache.org/jira/browse/PDFBOX-2881?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tilman Hausherr updated PDFBOX-2881:
------------------------------------
    Labels: shading  (was: )

> Radial and Axial shading steps are calculated incorrectly
> ---------------------------------------------------------
>
>                 Key: PDFBOX-2881
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2881
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Rendering
>    Affects Versions: 2.0.0
>            Reporter: John Hewson
>            Assignee: John Hewson
>              Labels: shading
>             Fix For: 2.0.0
>
>
> I found a shading bug while writing some code to dump all shadings in a PDF. 
> I don't know if this affects PDF rendering within PageDrawer or not.
> RadialShadingContext and AxialShadingContext use the following code in their 
> constructors to calculate the number of steps (pixels) in the shading and 
> build a lookup table for each step:
> {code}
> // transform the distance to actual pixel space
> // use transform, because xform.getScaleX() does not return correct scaling 
> on 90° rotated matrix
> Point2D point = new Point2D.Double(longestDistance, longestDistance);
> matrix.transform(point);
> xform.transform(point, point);
> factor = (int) Math.max(Math.abs(point.getX()), Math.abs(point.getY()));
> colorTable = calcColorTable();
> {code}
> The variable "factor" is the number of steps and "matrix" is the parent 
> stream's matrix + the pattern matrix, so this code is taking the current 
> scale and assuming that that is equal to the number of pixels. This works 
> when a pattern is painted onto a 0...1 scaled surface, but otherwise it 
> produces incorrect results.
> There's no way to calculate the number of pixels in the device from its 
> scale, or its matrix. Paint#createContext() provides the device bounds 
> Rectangle, which is what we should be using. Indeed, this is handled 
> correctly in the other shading contexts.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to