You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2014/12/11 08:41:04 UTC
svn commit: r1644572 -
/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java
Author: tilman
Date: Thu Dec 11 07:41:04 2014
New Revision: 1644572
URL: http://svn.apache.org/r1644572
Log:
PDFBOX-2552: normalize the rotation angle for all values
Modified:
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java
Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java?rev=1644572&r1=1644571&r2=1644572&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java Thu Dec 11 07:41:04 2014
@@ -78,7 +78,16 @@ public class BeginInlineImage extends Op
double pageHeight = drawer.getPageSize().getHeight();
Matrix ctm = drawer.getGraphicsState().getCurrentTransformationMatrix();
- int pageRotation = page.findRotation();
+ int rotationAngle = page.findRotation();
+ // normalize the rotation angle
+ while (rotationAngle < 0)
+ {
+ rotationAngle += 360;
+ }
+ while (rotationAngle >= 360)
+ {
+ rotationAngle -= 360;
+ }
AffineTransform ctmAT = ctm.createAffineTransform();
ctmAT.scale(1f/imageWidth, 1f/imageHeight);
@@ -90,11 +99,11 @@ public class BeginInlineImage extends Op
// tan = sin/cos
double angle = Math.atan(ctmAT.getShearX()/ctmAT.getScaleX());
Matrix translationMatrix = null;
- if (pageRotation == 0 || pageRotation == 180)
+ if (rotationAngle == 0 || rotationAngle == 180)
{
translationMatrix = Matrix.getTranslatingInstance((float)(Math.sin(angle)*ctm.getXScale()), (float)(pageHeight-2*ctm.getYPosition()-Math.cos(angle)*ctm.getYScale()));
}
- else if (pageRotation == 90 || pageRotation == 270)
+ else if (rotationAngle == 90 || rotationAngle == 270)
{
translationMatrix = Matrix.getTranslatingInstance((float)(Math.sin(angle)*ctm.getYScale()), (float)(pageHeight-2*ctm.getYPosition()));
}