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 2021/05/06 18:46:53 UTC

svn commit: r1889578 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java

Author: tilman
Date: Thu May  6 18:46:53 2021
New Revision: 1889578

URL: http://svn.apache.org/viewvc?rev=1889578&view=rev
Log:
PDFBOX-4892: optimize by changing sequence

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java?rev=1889578&r1=1889577&r2=1889578&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java Thu May  6 18:46:53 2021
@@ -198,7 +198,6 @@ final class SampledImageReader
         final int width = (int) Math.ceil(clipped.getWidth() / subsampling);
         final int height = (int) Math.ceil(clipped.getHeight() / subsampling);
         final int bitsPerComponent = pdImage.getBitsPerComponent();
-        final float[] decode = getDecodeArray(pdImage);
 
         if (width <= 0 || height <= 0 || pdImage.getWidth() <= 0 || pdImage.getHeight() <= 0)
         {
@@ -220,7 +219,8 @@ final class SampledImageReader
             WritableRaster raster = Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, width, height,
                     numComponents, new Point(0, 0));
             final float[] defaultDecode = pdImage.getColorSpace().getDefaultDecode(8);
-            if (bitsPerComponent == 8 && Arrays.equals(decode, defaultDecode) && colorKey == null)
+            final float[] decode = getDecodeArray(pdImage);
+            if (bitsPerComponent == 8 && colorKey == null && Arrays.equals(decode, defaultDecode))
             {
                 // convert image, faster path for non-decoded, non-colormasked 8-bit images
                 return from8bit(pdImage, raster, clipped, subsampling, width, height);