Author: tilman
Date: Mon May  3 19:00:42 2021
New Revision: 1889460

URL: http://svn.apache.org/viewvc?rev=1889460&view=rev
Log:
PDFBOX-4892: optimize, as suggested by valerybokov

Modified:
    
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java
    
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/RadialShadingContext.java
    
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java?rev=1889460&r1=1889459&r2=1889460&view=diff
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java
 Mon May  3 19:00:42 2021
@@ -176,12 +176,14 @@ public class AxialShadingContext extends
         WritableRaster raster = 
getColorModel().createCompatibleWritableRaster(w, h);
         boolean useBackground;
         int[] data = new int[w * h * 4];
+        float[] values = new float[2];
         for (int j = 0; j < h; j++)
         {
             for (int i = 0; i < w; i++)
             {
                 useBackground = false;
-                float[] values = new float[] { x + i, y + j };
+                values[0] = x + i;
+                values[1] = y + j;
                 rat.transform(values, 0, values, 0, 1);
                 double inputValue = x1x0 * (values[0] - coords[0]) + y1y0 * 
(values[1] - coords[1]);
                 // TODO this happens if start == end, see PDFBOX-1442

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/RadialShadingContext.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/RadialShadingContext.java?rev=1889460&r1=1889459&r2=1889460&view=diff
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/RadialShadingContext.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/RadialShadingContext.java
 Mon May  3 19:00:42 2021
@@ -182,11 +182,13 @@ public class RadialShadingContext extend
         float inputValue = -1;
         boolean useBackground;
         int[] data = new int[w * h * 4];
+        float[] values = new float[2];
         for (int j = 0; j < h; j++)
         {
             for (int i = 0; i < w; i++)
             {
-                float[] values = new float[] { x + i, y + j };
+                values[0] = x + i;
+                values[1] = y + j;
                 rat.transform(values, 0, values, 0, 1);
                 useBackground = false;
                 float[] inputValues = calculateInputValues(values[0], 
values[1]);

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java?rev=1889460&r1=1889459&r2=1889460&view=diff
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java
 Mon May  3 19:00:42 2021
@@ -101,13 +101,15 @@ class Type1ShadingContext extends Shadin
     {
         WritableRaster raster = 
getColorModel().createCompatibleWritableRaster(w, h);
         int[] data = new int[w * h * 4];
+        float[] values = new float[2];
         for (int j = 0; j < h; j++)
         {
             for (int i = 0; i < w; i++)
             {
                 int index = (j * w + i) * 4;
                 boolean useBackground = false;
-                float[] values = new float[] { x + i, y + j };
+                values[0] = x + i;
+                values[1] = y + j;
                 rat.transform(values, 0, values, 0, 1);
                 if (values[0] < domain[0] || values[0] > domain[1] ||
                     values[1] < domain[2] || values[1] > domain[3])


Reply via email to