Class PDMeshBasedShadingType
- java.lang.Object
-
- org.apache.pdfbox.pdmodel.graphics.shading.PDShading
-
- org.apache.pdfbox.pdmodel.graphics.shading.PDTriangleBasedShadingType
-
- org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType4
-
- org.apache.pdfbox.pdmodel.graphics.shading.PDMeshBasedShadingType
-
- All Implemented Interfaces:
COSObjectable
- Direct Known Subclasses:
PDShadingType6
,PDShadingType7
abstract class PDMeshBasedShadingType extends PDShadingType4
Common resources for shading types 6 and 7
-
-
Field Summary
Fields Modifier and Type Field Description private static org.apache.commons.logging.Log
LOG
-
Fields inherited from class org.apache.pdfbox.pdmodel.graphics.shading.PDShading
SHADING_TYPE1, SHADING_TYPE2, SHADING_TYPE3, SHADING_TYPE4, SHADING_TYPE5, SHADING_TYPE6, SHADING_TYPE7
-
-
Constructor Summary
Constructors Constructor Description PDMeshBasedShadingType(COSDictionary shadingDictionary)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description (package private) java.util.List<Patch>
collectPatches(java.awt.geom.AffineTransform xform, Matrix matrix, int controlPoints)
Create a patch list from a data stream, the returned list contains all the patches contained in the data stream.(package private) abstract Patch
generatePatch(java.awt.geom.Point2D[] points, float[][] color)
Create a patch using control points and 4 corner color values, in Type6ShadingContext, a CoonsPatch is returned; in Type6ShadingContext, a TensorPatch is returned.abstract java.awt.geom.Rectangle2D
getBounds(java.awt.geom.AffineTransform xform, Matrix matrix)
Calculate a bounding rectangle around the areas of this shading context.(package private) java.awt.geom.Rectangle2D
getBounds(java.awt.geom.AffineTransform xform, Matrix matrix, int controlPoints)
protected Patch
readPatch(javax.imageio.stream.ImageInputStream input, boolean isFree, java.awt.geom.Point2D[] implicitEdge, float[][] implicitCornerColor, long maxSrcCoord, long maxSrcColor, PDRange rangeX, PDRange rangeY, PDRange[] colRange, Matrix matrix, java.awt.geom.AffineTransform xform, int controlPoints)
Read a single patch from a data stream, a patch contains information of its coordinates and color parameters.-
Methods inherited from class org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType4
collectTriangles, getBitsPerFlag, getShadingType, setBitsPerFlag, toPaint
-
Methods inherited from class org.apache.pdfbox.pdmodel.graphics.shading.PDTriangleBasedShadingType
getBitsPerComponent, getBitsPerCoordinate, getDecodeForParameter, getNumberOfColorComponents, interpolate, readVertex, setBitsPerComponent, setBitsPerCoordinate, setDecodeValues
-
Methods inherited from class org.apache.pdfbox.pdmodel.graphics.shading.PDShading
create, evalFunction, evalFunction, getAntiAlias, getBackground, getBBox, getColorSpace, getCOSObject, getFunction, getType, setAntiAlias, setBackground, setBBox, setColorSpace, setFunction, setFunction, setShadingType
-
-
-
-
Constructor Detail
-
PDMeshBasedShadingType
PDMeshBasedShadingType(COSDictionary shadingDictionary)
-
-
Method Detail
-
collectPatches
final java.util.List<Patch> collectPatches(java.awt.geom.AffineTransform xform, Matrix matrix, int controlPoints) throws java.io.IOException
Create a patch list from a data stream, the returned list contains all the patches contained in the data stream.- Parameters:
xform
- transformation for user to device spacematrix
- the pattern matrix concatenated with that of the parent content streamcontrolPoints
- number of control points, 12 for type 6 shading and 16 for type 7 shading- Returns:
- the obtained patch list
- Throws:
java.io.IOException
- when something went wrong
-
readPatch
protected Patch readPatch(javax.imageio.stream.ImageInputStream input, boolean isFree, java.awt.geom.Point2D[] implicitEdge, float[][] implicitCornerColor, long maxSrcCoord, long maxSrcColor, PDRange rangeX, PDRange rangeY, PDRange[] colRange, Matrix matrix, java.awt.geom.AffineTransform xform, int controlPoints) throws java.io.IOException
Read a single patch from a data stream, a patch contains information of its coordinates and color parameters.- Parameters:
input
- the image source data streamisFree
- whether this is a free patchimplicitEdge
- implicit edge when a patch is not free, otherwise it's not usedimplicitCornerColor
- implicit colors when a patch is not free, otherwise it's not usedmaxSrcCoord
- the maximum coordinate value calculated from source datamaxSrcColor
- the maximum color value calculated from source datarangeX
- range for coordinate xrangeY
- range for coordinate ycolRange
- range for colormatrix
- the pattern matrix concatenated with that of the parent content streamxform
- transformation for user to device spacecontrolPoints
- number of control points, 12 for type 6 shading and 16 for type 7 shading- Returns:
- a single patch
- Throws:
java.io.IOException
- when something went wrong
-
generatePatch
abstract Patch generatePatch(java.awt.geom.Point2D[] points, float[][] color)
Create a patch using control points and 4 corner color values, in Type6ShadingContext, a CoonsPatch is returned; in Type6ShadingContext, a TensorPatch is returned.- Parameters:
points
- 12 or 16 control pointscolor
- 4 corner colors- Returns:
- a patch instance
-
getBounds
public abstract java.awt.geom.Rectangle2D getBounds(java.awt.geom.AffineTransform xform, Matrix matrix) throws java.io.IOException
Description copied from class:PDShading
Calculate a bounding rectangle around the areas of this shading context.- Overrides:
getBounds
in classPDTriangleBasedShadingType
- Returns:
- Bounding rectangle or null, if not supported by this shading type.
- Throws:
java.io.IOException
-
getBounds
java.awt.geom.Rectangle2D getBounds(java.awt.geom.AffineTransform xform, Matrix matrix, int controlPoints) throws java.io.IOException
- Throws:
java.io.IOException
-
-