You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/12/30 23:52:51 UTC
svn commit: r1648626 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TilingPaint.java
Author: jahewson
Date: Tue Dec 30 22:52:50 2014
New Revision: 1648626
URL: http://svn.apache.org/r1648626
Log:
PDFBOX-1094: Take into account shear/rotation when calculating pattern scale
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TilingPaint.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TilingPaint.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TilingPaint.java?rev=1648626&r1=1648625&r2=1648626&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TilingPaint.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/TilingPaint.java Tue Dec 30 22:52:50 2014
@@ -97,8 +97,10 @@ class TilingPaint implements Paint
AffineTransform xformPattern = (AffineTransform)xform.clone();
// applies the pattern matrix with scaling removed
- AffineTransform patternNoScale = pattern.getMatrix().createAffineTransform();
- patternNoScale.scale(1 / patternNoScale.getScaleX(), 1 / patternNoScale.getScaleY());
+ Matrix patternMatrix = pattern.getMatrix();
+ AffineTransform patternNoScale = patternMatrix.createAffineTransform();
+ patternNoScale.scale(1 / patternMatrix.getScalingFactorX(),
+ 1 / patternMatrix.getScalingFactorY());
xformPattern.concatenate(patternNoScale);
return paint.createContext(cm, deviceBounds, userBounds, xformPattern, hints);
@@ -152,8 +154,8 @@ class TilingPaint implements Paint
// apply only the scaling from the pattern transform, doing scaling here improves the
// image quality and prevents large scale-down factors from creating huge tiling cells.
Matrix patternMatrix = Matrix.getScaleInstance(
- Math.abs(pattern.getMatrix().getScaleX()),
- Math.abs(pattern.getMatrix().getScaleY()));
+ Math.abs(pattern.getMatrix().getScalingFactorX()),
+ Math.abs(pattern.getMatrix().getScalingFactorY()));
// move origin to (0,0)
patternMatrix.concatenate(
@@ -201,13 +203,13 @@ class TilingPaint implements Paint
yStep = pattern.getBBox().getHeight();
}
- float xScale = pattern.getMatrix().getScaleX();
- float yScale = pattern.getMatrix().getScaleY();
+ float xScale = pattern.getMatrix().getScalingFactorX();
+ float yScale = pattern.getMatrix().getScalingFactorY();
// returns the anchor rect with scaling applied
PDRectangle anchor = pattern.getBBox();
return new Rectangle2D.Float(anchor.getLowerLeftX() * xScale,
- anchor.getLowerLeftY() * yScale,
- xStep * xScale, yStep * yScale);
+ anchor.getLowerLeftY() * yScale,
+ xStep * xScale, yStep * yScale);
}
}