Author: tilman Date: Tue Jun 9 18:16:41 2020 New Revision: 1878672 URL: http://svn.apache.org/viewvc?rev=1878672&view=rev Log: PDFBOX-4850: , by Jani Pehkonen
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1878672&r1=1878671&r2=1878672&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Tue Jun 9 18:16:41 2020 @@ -1121,18 +1121,23 @@ public class PageDrawer extends PDFGraph graphics.setComposite(getGraphicsState().getNonStrokingJavaComposite()); setClip(); AffineTransform imageTransform = new AffineTransform(at); + int width = image.getWidth(); + int height = image.getHeight(); + imageTransform.scale(1.0 / width, -1.0 / height); + imageTransform.translate(0, -height); + PDSoftMask softMask = getGraphicsState().getSoftMask(); if( softMask != null ) { - imageTransform.scale(1, -1); - imageTransform.translate(0, -1); - Paint awtPaint = new TexturePaint(image, - new Rectangle2D.Double(imageTransform.getTranslateX(), imageTransform.getTranslateY(), - imageTransform.getScaleX(), imageTransform.getScaleY())); + Rectangle2D rectangle = new Rectangle2D.Float(0, 0, width, height); + Paint awtPaint = new TexturePaint(image, rectangle); awtPaint = applySoftMaskToPaint(awtPaint, softMask); graphics.setPaint(awtPaint); - Rectangle2D unitRect = new Rectangle2D.Float(0, 0, 1, 1); - graphics.fill(at.createTransformedShape(unitRect)); + + AffineTransform originalTransform = graphics.getTransform(); + graphics.transform(imageTransform); + graphics.fill(rectangle); + graphics.setTransform(originalTransform); } else { @@ -1142,11 +1147,6 @@ public class PageDrawer extends PDFGraph image = applyTransferFunction(image, transfer); } - int width = image.getWidth(); - int height = image.getHeight(); - imageTransform.scale(1.0 / width, -1.0 / height); - imageTransform.translate(0, -height); - // PDFBOX-4516, PDFBOX-4527, PDFBOX-4815: // graphics.drawImage() has terrible quality when scaling down, even when // RenderingHints.VALUE_INTERPOLATION_BICUBIC, VALUE_ALPHA_INTERPOLATION_QUALITY,