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/08/06 21:52:34 UTC
svn commit: r1616329 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/
Author: tilman
Date: Wed Aug 6 19:52:34 2014
New Revision: 1616329
URL: http://svn.apache.org/r1616329
Log:
PDFBOX-1915: use PaintContext deviceBounds and BBox for types 1,4,5,6,7, as done by Shaola Ren in GSoC2014
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/GouraudShadingContext.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PatchMeshesShadingContext.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type4ShadingContext.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type4ShadingPaint.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type5ShadingContext.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type5ShadingPaint.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type6ShadingContext.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type6ShadingPaint.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type7ShadingContext.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type7ShadingPaint.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/GouraudShadingContext.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/GouraudShadingContext.java?rev=1616329&r1=1616328&r2=1616329&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/GouraudShadingContext.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/GouraudShadingContext.java Wed Aug 6 19:52:34 2014
@@ -19,6 +19,7 @@ package org.apache.pdfbox.pdmodel.graphi
import java.awt.PaintContext;
import java.awt.Point;
+import java.awt.Rectangle;
import java.awt.Transparency;
import java.awt.color.ColorSpace;
import java.awt.geom.AffineTransform;
@@ -34,6 +35,7 @@ import javax.imageio.stream.ImageInputSt
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.pdfbox.pdmodel.common.PDRange;
+import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
import org.apache.pdfbox.util.Matrix;
@@ -41,6 +43,7 @@ import org.apache.pdfbox.util.Matrix;
* Shades Gouraud triangles for Type4ShadingContext and Type5ShadingContext.
* @author Andreas Lehmkühler
* @author Tilman Hausherr
+ * @author Shaola Ren
*/
abstract class GouraudShadingContext implements PaintContext
{
@@ -48,6 +51,7 @@ abstract class GouraudShadingContext imp
private ColorModel outputColorModel;
private PDColorSpace shadingColorSpace;
+ private final Rectangle deviceBounds;
/** number of color components. */
protected int numberOfColorComponents;
@@ -66,6 +70,8 @@ abstract class GouraudShadingContext imp
private final boolean hasFunction;
private final PDShading gouraudShadingType;
+ private PDRectangle bboxRect;
+ private float[] bboxTab = new float[4];
/**
* Constructor creates an instance to be used for fill operations.
@@ -77,9 +83,10 @@ abstract class GouraudShadingContext imp
* @throws IOException if something went wrong
*/
protected GouraudShadingContext(PDShading shading, ColorModel colorModel, AffineTransform xform,
- Matrix ctm, int pageHeight) throws IOException
+ Matrix ctm, int pageHeight, Rectangle dBounds) throws IOException
{
gouraudShadingType = shading;
+ deviceBounds = dBounds;
triangleList = new ArrayList<GouraudTriangle>();
hasFunction = shading.getFunction() != null;
LOG.debug("hasFunction: " + hasFunction);
@@ -88,6 +95,30 @@ abstract class GouraudShadingContext imp
LOG.debug("colorSpace: " + shadingColorSpace);
numberOfColorComponents = hasFunction ? 1 : shadingColorSpace.getNumberOfComponents();
+
+ bboxRect = shading.getBBox();
+ if (bboxRect != null)
+ {
+ bboxTab[0] = bboxRect.getLowerLeftX();
+ bboxTab[1] = bboxRect.getLowerLeftY();
+ bboxTab[2] = bboxRect.getUpperRightX();
+ bboxTab[3] = bboxRect.getUpperRightY();
+ if (ctm != null)
+ {
+ // transform the coords using the given matrix
+ ctm.createAffineTransform().transform(bboxTab, 0, bboxTab, 0, 2);
+ }
+ xform.transform(bboxTab, 0, bboxTab, 0, 2);
+ }
+ reOrder(bboxTab, 0, 2);
+ reOrder(bboxTab, 1, 3);
+ LOG.debug("BBox: " + shading.getBBox());
+ LOG.debug("Background: " + shading.getBackground());
+ if (bboxTab[0] >= bboxTab[2] || bboxTab[1] >= bboxTab[3])
+ {
+ bboxRect = null;
+ }
+
LOG.debug("numberOfColorComponents: " + numberOfColorComponents);
LOG.debug("BBox: " + shading.getBBox());
@@ -129,6 +160,20 @@ abstract class GouraudShadingContext imp
}
return new Vertex(flag, new Point2D.Double(dstX, dstY), colorComponentTab);
}
+
+ // this method is used to arrange the array to denote the left upper corner and right lower corner of the BBox
+ private void reOrder(float[] array, int i, int j)
+ {
+ if (i < j && array[i] <= array[j])
+ {
+ }
+ else
+ {
+ float tmp = array[i];
+ array[i] = array[j];
+ array[j] = tmp;
+ }
+ }
/**
* Transforms vertices from shading to user space (if applicable) and from user to device space.
@@ -191,8 +236,24 @@ abstract class GouraudShadingContext imp
{
for (int row = 0; row < h; row++)
{
+ int currentY = y + row;
+ if (bboxRect != null)
+ {
+ if (currentY < bboxTab[1] || currentY > bboxTab[3])
+ {
+ continue;
+ }
+ }
for (int col = 0; col < w; col++)
{
+ int currentX = x + col;
+ if (bboxRect != null)
+ {
+ if (currentX < bboxTab[0] || currentX > bboxTab[2])
+ {
+ continue;
+ }
+ }
Point2D p = new Point(x + col, y + row);
GouraudTriangle triangle = null;
for (GouraudTriangle tryTriangle : triangleList)
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PatchMeshesShadingContext.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PatchMeshesShadingContext.java?rev=1616329&r1=1616328&r2=1616329&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PatchMeshesShadingContext.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PatchMeshesShadingContext.java Wed Aug 6 19:52:34 2014
@@ -18,6 +18,7 @@ package org.apache.pdfbox.pdmodel.graphi
import java.awt.PaintContext;
import java.awt.Point;
+import java.awt.Rectangle;
import java.awt.Transparency;
import java.awt.color.ColorSpace;
import java.awt.geom.AffineTransform;
@@ -55,13 +56,14 @@ abstract class PatchMeshesShadingContext
protected ColorModel outputColorModel;
protected PDColorSpace shadingColorSpace;
+ private final Rectangle deviceBounds;
protected final int numberOfColorComponents; // number of color components
protected float[] background; // background values.
protected int rgbBackground;
protected final boolean hasFunction;
protected final PDShading patchMeshesShadingType;
- private PDRectangle rectBBox;
- float minBBoxX, minBBoxY, maxBBoxX, maxBBoxY;
+ private PDRectangle bboxRect;
+ private float[] bboxTab = new float[4];
// the following fields are not intialized in this abstract class
protected ArrayList<Patch> patchList; // patch list
@@ -80,38 +82,35 @@ abstract class PatchMeshesShadingContext
* @throws IOException if something went wrong
*/
protected PatchMeshesShadingContext(PDShading shading, ColorModel colorModel, AffineTransform xform,
- Matrix ctm, int pageHeight) throws IOException
+ Matrix ctm, int pageHeight, Rectangle dBounds) throws IOException
{
patchMeshesShadingType = shading;
- patchList = new ArrayList<Patch>();
- hasFunction = shading.getFunction() != null;
- shadingColorSpace = shading.getColorSpace();
-
- rectBBox = shading.getBBox();
- if (rectBBox != null)
- {
- float[] bboxTab = new float[4];
- bboxTab[0] = rectBBox.getLowerLeftX();
- bboxTab[1] = rectBBox.getLowerLeftY();
- bboxTab[2] = rectBBox.getUpperRightX();
- bboxTab[3] = rectBBox.getUpperRightY();
+ deviceBounds = dBounds;
+ bboxRect = shading.getBBox();
+ if (bboxRect != null)
+ {
+ bboxTab[0] = bboxRect.getLowerLeftX();
+ bboxTab[1] = bboxRect.getLowerLeftY();
+ bboxTab[2] = bboxRect.getUpperRightX();
+ bboxTab[3] = bboxRect.getUpperRightY();
if (ctm != null)
{
// transform the coords using the given matrix
ctm.createAffineTransform().transform(bboxTab, 0, bboxTab, 0, 2);
}
xform.transform(bboxTab, 0, bboxTab, 0, 2);
- minBBoxX = Math.min(bboxTab[0],bboxTab[2]);
- minBBoxY = Math.min(bboxTab[1],bboxTab[3]);
- maxBBoxX = Math.max(bboxTab[0],bboxTab[2]);
- maxBBoxY = Math.max(bboxTab[1],bboxTab[3]);
- if (minBBoxX == maxBBoxX || minBBoxY == maxBBoxY)
- {
- LOG.warn("empty BBox is ignored");
- rectBBox = null;
- }
}
-
+ reOrder(bboxTab, 0, 2);
+ reOrder(bboxTab, 1, 3);
+ if (bboxTab[0] >= bboxTab[2] || bboxTab[1] >= bboxTab[3])
+ {
+ bboxRect = null;
+ }
+
+ patchList = new ArrayList<Patch>();
+ hasFunction = shading.getFunction() != null;
+ shadingColorSpace = shading.getColorSpace();
+
numberOfColorComponents = hasFunction ? 1 : shadingColorSpace.getNumberOfComponents();
// create the output color model using RGB+alpha as color space
@@ -127,6 +126,20 @@ abstract class PatchMeshesShadingContext
}
}
+ // this method is used to arrange the array to denote the left upper corner and right lower corner of the BBox
+ private void reOrder(float[] array, int i, int j)
+ {
+ if (i < j && array[i] <= array[j])
+ {
+ }
+ else
+ {
+ float tmp = array[i];
+ array[i] = array[j];
+ array[j] = tmp;
+ }
+ }
+
// transform a point from source space to device space
private void transformPoint(Point2D p, Matrix ctm, AffineTransform xform)
{
@@ -331,6 +344,10 @@ abstract class PatchMeshesShadingContext
else
{
int[] boundary = tri.getBoundary();
+ boundary[0] = Math.max(boundary[0], deviceBounds.x);
+ boundary[1] = Math.min(boundary[1], deviceBounds.x + deviceBounds.width);
+ boundary[2] = Math.max(boundary[2], deviceBounds.y);
+ boundary[3] = Math.min(boundary[3], deviceBounds.y + deviceBounds.height);
for (int x = boundary[0]; x <= boundary[1]; x++)
{
for (int y = boundary[2]; y <= boundary[3]; y++)
@@ -349,7 +366,7 @@ abstract class PatchMeshesShadingContext
return map;
}
- // convert values to RGB color, using function when needed
+ // convert color to RGB color values
private int convertToRGB(float[] values)
{
float[] nValues = null;
@@ -411,21 +428,20 @@ abstract class PatchMeshesShadingContext
{
for (int row = 0; row < h; row++)
{
- double currentY = y + row;
- if (rectBBox != null)
+ int currentY = y + row;
+ if (bboxRect != null)
{
- if (currentY < minBBoxY || currentY > maxBBoxY)
+ if (currentY < bboxTab[1] || currentY > bboxTab[3])
{
continue;
}
}
-
for (int col = 0; col < w; col++)
{
- double currentX = x + col;
- if (rectBBox != null)
+ int currentX = x + col;
+ if (bboxRect != null)
{
- if (currentX < minBBoxX || currentX > maxBBoxX)
+ if (currentX < bboxTab[0] || currentX > bboxTab[2])
{
continue;
}
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=1616329&r1=1616328&r2=1616329&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 Wed Aug 6 19:52:34 2014
@@ -49,8 +49,8 @@ class Type1ShadingContext implements Pai
private float[] domain;
private Matrix matrix;
private float[] background;
- private PDRectangle rectBBox;
- float minBBoxX, minBBoxY, maxBBoxX, maxBBoxY;
+ private PDRectangle bboxRect;
+ private float[] bboxTab = new float[4];
/**
* Constructor creates an instance to be used for fill operations.
@@ -60,35 +60,30 @@ class Type1ShadingContext implements Pai
* @param ctm current transformation matrix
* @param pageHeight height of the current page
*/
- Type1ShadingContext(PDShadingType1 shading, ColorModel cm, AffineTransform xform,
+ public Type1ShadingContext(PDShadingType1 shading, ColorModel cm, AffineTransform xform,
Matrix ctm, int pageHeight) throws IOException
{
this.shading = shading;
-
- rectBBox = shading.getBBox();
- if (rectBBox != null)
+ bboxRect = shading.getBBox();
+ if (bboxRect != null)
{
- float[] bboxTab = new float[4];
- bboxTab[0] = rectBBox.getLowerLeftX();
- bboxTab[1] = rectBBox.getLowerLeftY();
- bboxTab[2] = rectBBox.getUpperRightX();
- bboxTab[3] = rectBBox.getUpperRightY();
+ bboxTab[0] = bboxRect.getLowerLeftX();
+ bboxTab[1] = bboxRect.getLowerLeftY();
+ bboxTab[2] = bboxRect.getUpperRightX();
+ bboxTab[3] = bboxRect.getUpperRightY();
if (ctm != null)
{
// transform the coords using the given matrix
ctm.createAffineTransform().transform(bboxTab, 0, bboxTab, 0, 2);
}
xform.transform(bboxTab, 0, bboxTab, 0, 2);
- minBBoxX = Math.min(bboxTab[0],bboxTab[2]);
- minBBoxY = Math.min(bboxTab[1],bboxTab[3]);
- maxBBoxX = Math.max(bboxTab[0],bboxTab[2]);
- maxBBoxY = Math.max(bboxTab[1],bboxTab[3]);
- if (minBBoxX == maxBBoxX || minBBoxY == maxBBoxY)
- {
- LOG.warn("empty BBox is ignored");
- rectBBox = null;
- }
- }
+ }
+ reOrder(bboxTab, 0, 2);
+ reOrder(bboxTab, 1, 3);
+ if (bboxTab[0] >= bboxTab[2] || bboxTab[1] >= bboxTab[3])
+ {
+ bboxRect = null;
+ }
// color space
shadingColorSpace = this.shading.getColorSpace();
@@ -140,6 +135,20 @@ class Type1ShadingContext implements Pai
background = bg.toFloatArray();
}
}
+
+ // this method is used to arrange the array to denote the left upper corner and right lower corner of the BBox
+ private void reOrder(float[] array, int i, int j)
+ {
+ if (i < j && array[i] <= array[j])
+ {
+ }
+ else
+ {
+ float tmp = array[i];
+ array[i] = array[j];
+ array[j] = tmp;
+ }
+ }
@Override
public void dispose()
@@ -162,20 +171,20 @@ class Type1ShadingContext implements Pai
int[] data = new int[w * h * 4];
for (int j = 0; j < h; j++)
{
- double currentY = y + j;
- if (rectBBox != null)
+ int currentY = y + j;
+ if (bboxRect != null)
{
- if (currentY < minBBoxY || currentY > maxBBoxY)
+ if (currentY < bboxTab[1] || currentY > bboxTab[3])
{
continue;
}
}
for (int i = 0; i < w; i++)
{
- double currentX = x + i;
- if (rectBBox != null)
+ int currentX = x + i;
+ if (bboxRect != null)
{
- if (currentX < minBBoxX || currentX > maxBBoxX)
+ if (currentX < bboxTab[0] || currentX > bboxTab[2])
{
continue;
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type4ShadingContext.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type4ShadingContext.java?rev=1616329&r1=1616328&r2=1616329&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type4ShadingContext.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type4ShadingContext.java Wed Aug 6 19:52:34 2014
@@ -16,6 +16,7 @@
*/
package org.apache.pdfbox.pdmodel.graphics.shading;
+import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.image.ColorModel;
@@ -52,9 +53,9 @@ class Type4ShadingContext extends Gourau
* @param pageHeight height of the current page
*/
Type4ShadingContext(PDShadingType4 shading, ColorModel cm, AffineTransform xform,
- Matrix ctm, int pageHeight) throws IOException
+ Matrix ctm, int pageHeight, Rectangle dBounds) throws IOException
{
- super(shading, cm, xform, ctm, pageHeight);
+ super(shading, cm, xform, ctm, pageHeight, dBounds);
ArrayList<Vertex> vertexList = new ArrayList<Vertex>();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type4ShadingPaint.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type4ShadingPaint.java?rev=1616329&r1=1616328&r2=1616329&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type4ShadingPaint.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type4ShadingPaint.java Wed Aug 6 19:52:34 2014
@@ -65,7 +65,7 @@ class Type4ShadingPaint implements Paint
{
try
{
- return new Type4ShadingContext(shading, cm, xform, ctm, pageHeight);
+ return new Type4ShadingContext(shading, cm, xform, ctm, pageHeight, deviceBounds);
}
catch (IOException ex)
{
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type5ShadingContext.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type5ShadingContext.java?rev=1616329&r1=1616328&r2=1616329&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type5ShadingContext.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type5ShadingContext.java Wed Aug 6 19:52:34 2014
@@ -16,6 +16,7 @@
*/
package org.apache.pdfbox.pdmodel.graphics.shading;
+import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.image.ColorModel;
import java.io.EOFException;
@@ -50,9 +51,9 @@ class Type5ShadingContext extends Gourau
* @throws IOException if something went wrong
*/
Type5ShadingContext(PDShadingType5 shading, ColorModel cm, AffineTransform xform,
- Matrix ctm, int pageHeight) throws IOException
+ Matrix ctm, int pageHeight, Rectangle dBounds) throws IOException
{
- super(shading, cm, xform, ctm, pageHeight);
+ super(shading, cm, xform, ctm, pageHeight, dBounds);
LOG.debug("Type5ShadingContext");
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type5ShadingPaint.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type5ShadingPaint.java?rev=1616329&r1=1616328&r2=1616329&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type5ShadingPaint.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type5ShadingPaint.java Wed Aug 6 19:52:34 2014
@@ -65,7 +65,7 @@ class Type5ShadingPaint implements Paint
{
try
{
- return new Type5ShadingContext(shading, cm, xform, ctm, pageHeight);
+ return new Type5ShadingContext(shading, cm, xform, ctm, pageHeight, deviceBounds);
}
catch (IOException ex)
{
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type6ShadingContext.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type6ShadingContext.java?rev=1616329&r1=1616328&r2=1616329&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type6ShadingContext.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type6ShadingContext.java Wed Aug 6 19:52:34 2014
@@ -16,6 +16,7 @@
package org.apache.pdfbox.pdmodel.graphics.shading;
+import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.image.ColorModel;
@@ -46,9 +47,9 @@ class Type6ShadingContext extends PatchM
* @throws IOException if something went wrong
*/
public Type6ShadingContext(PDShadingType6 shading, ColorModel colorModel, AffineTransform xform,
- Matrix ctm, int pageHeight) throws IOException
+ Matrix ctm, int pageHeight, Rectangle dBounds) throws IOException
{
- super(shading, colorModel, xform, ctm, pageHeight);
+ super(shading, colorModel, xform, ctm, pageHeight, dBounds);
bitsPerColorComponent = shading.getBitsPerComponent();
bitsPerCoordinate = shading.getBitsPerCoordinate();
bitsPerFlag = shading.getBitsPerFlag();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type6ShadingPaint.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type6ShadingPaint.java?rev=1616329&r1=1616328&r2=1616329&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type6ShadingPaint.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type6ShadingPaint.java Wed Aug 6 19:52:34 2014
@@ -66,7 +66,7 @@ class Type6ShadingPaint implements Paint
{
try
{
- return new Type6ShadingContext(shading, cm, xform, ctm, pageHeight);
+ return new Type6ShadingContext(shading, cm, xform, ctm, pageHeight, deviceBounds);
}
catch (IOException ex)
{
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type7ShadingContext.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type7ShadingContext.java?rev=1616329&r1=1616328&r2=1616329&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type7ShadingContext.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type7ShadingContext.java Wed Aug 6 19:52:34 2014
@@ -16,6 +16,7 @@
package org.apache.pdfbox.pdmodel.graphics.shading;
+import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.image.ColorModel;
@@ -46,9 +47,9 @@ class Type7ShadingContext extends PatchM
* @throws IOException if something went wrong
*/
public Type7ShadingContext(PDShadingType7 shading, ColorModel colorModel, AffineTransform xform,
- Matrix ctm, int pageHeight) throws IOException
+ Matrix ctm, int pageHeight, Rectangle dBounds) throws IOException
{
- super(shading, colorModel, xform, ctm, pageHeight);
+ super(shading, colorModel, xform, ctm, pageHeight, dBounds);
bitsPerColorComponent = shading.getBitsPerComponent();
bitsPerCoordinate = shading.getBitsPerCoordinate();
bitsPerFlag = shading.getBitsPerFlag();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type7ShadingPaint.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type7ShadingPaint.java?rev=1616329&r1=1616328&r2=1616329&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type7ShadingPaint.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type7ShadingPaint.java Wed Aug 6 19:52:34 2014
@@ -66,7 +66,7 @@ class Type7ShadingPaint implements Paint
{
try
{
- return new Type7ShadingContext(shading, cm, xform, ctm, pageHeight);
+ return new Type7ShadingContext(shading, cm, xform, ctm, pageHeight, deviceBounds);
}
catch (IOException ex)
{