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 2020/04/26 15:06:59 UTC

svn commit: r1877028 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java

Author: tilman
Date: Sun Apr 26 15:06:59 2020
New Revision: 1877028

URL: http://svn.apache.org/viewvc?rev=1877028&view=rev
Log:
PDFBOX-4071: revert segment committed prematurely (belongs to 4516)

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1877028&r1=1877027&r2=1877028&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Sun Apr 26 15:06:59 2020
@@ -22,7 +22,6 @@ import java.awt.Graphics;
 import java.awt.Graphics2D;
 import java.awt.GraphicsConfiguration;
 import java.awt.GraphicsDevice;
-import java.awt.Image;
 import java.awt.Paint;
 import java.awt.Point;
 import java.awt.Rectangle;
@@ -1207,42 +1206,7 @@ public class PageDrawer extends PDFGraph
             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,
-            // VALUE_COLOR_RENDER_QUALITY and VALUE_RENDER_QUALITY are all set.
-            // A workaround is to get a pre-scaled image with Image.getScaledInstance()
-            // and then draw that one. To reduce differences in testing
-            // (partly because the method needs integer parameters), only smaller scalings
-            // will trigger the workaround. Because of the slowness we only do it if the user
-            // expects quality rendering and interpolation.
-            Matrix m = new Matrix(imageTransform);
-            float scaleX = Math.abs(m.getScalingFactorX());
-            float scaleY = Math.abs(m.getScalingFactorY());
-            Image imageToDraw = image;
-
-            if ((scaleX < 0.25f || scaleY < 0.25f) &&
-                RenderingHints.VALUE_RENDER_QUALITY.equals(graphics.getRenderingHint(RenderingHints.KEY_RENDERING)) &&
-                RenderingHints.VALUE_INTERPOLATION_BICUBIC.equals(graphics.getRenderingHint(RenderingHints.KEY_INTERPOLATION)))
-            {
-                System.out.println(graphics.getRenderingHints());
-                int w = Math.round(image.getWidth() * scaleX);
-                int h = Math.round(image.getHeight() * scaleY);
-                if (w < 1)
-                {
-                    w = 1;
-                }
-                if (h < 1)
-                {
-                    h = 1;
-                }
-                imageToDraw = image.getScaledInstance(
-                        w,
-                        h,
-                        Image.SCALE_SMOOTH);
-                imageTransform.scale(1 / scaleX, 1 / scaleY); // remove the scale
-            }
-            graphics.drawImage(imageToDraw, imageTransform, null);
+            graphics.drawImage(image, imageTransform, null);
         }
     }