Class PDTriangleBasedShadingType
- java.lang.Object
-
- org.apache.pdfbox.pdmodel.graphics.shading.PDShading
-
- org.apache.pdfbox.pdmodel.graphics.shading.PDTriangleBasedShadingType
-
- All Implemented Interfaces:
COSObjectable
- Direct Known Subclasses:
PDShadingType4
,PDShadingType5
abstract class PDTriangleBasedShadingType extends PDShading
Common resources for shading types 4,5,6 and 7
-
-
Field Summary
Fields Modifier and Type Field Description private int
bitsPerColorComponent
private int
bitsPerCoordinate
private COSArray
decode
private static org.apache.commons.logging.Log
LOG
private int
numberOfColorComponents
-
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 PDTriangleBasedShadingType(COSDictionary shadingDictionary)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description (package private) abstract java.util.List<ShadedTriangle>
collectTriangles(java.awt.geom.AffineTransform xform, Matrix matrix)
int
getBitsPerComponent()
The bits per component of this shading.int
getBitsPerCoordinate()
The bits per coordinate of this shading.java.awt.geom.Rectangle2D
getBounds(java.awt.geom.AffineTransform xform, Matrix matrix)
Calculate a bounding rectangle around the areas of this shading context.PDRange
getDecodeForParameter(int paramNum)
Get the decode for the input parameter.private COSArray
getDecodeValues()
Returns all decode values as COSArray.int
getNumberOfColorComponents()
The number of color components of this shading.protected float
interpolate(float src, long srcMax, float dstMin, float dstMax)
Calculate the interpolation, see p.345 pdf spec 1.7.protected Vertex
readVertex(javax.imageio.stream.ImageInputStream input, long maxSrcCoord, long maxSrcColor, PDRange rangeX, PDRange rangeY, PDRange[] colRangeTab, Matrix matrix, java.awt.geom.AffineTransform xform)
Read a vertex from the bit input stream performs interpolations.void
setBitsPerComponent(int bitsPerComponent)
Set the number of bits per component.void
setBitsPerCoordinate(int bitsPerCoordinate)
Set the number of bits per coordinate.void
setDecodeValues(COSArray decodeValues)
This will set the decode values.-
Methods inherited from class org.apache.pdfbox.pdmodel.graphics.shading.PDShading
create, evalFunction, evalFunction, getAntiAlias, getBackground, getBBox, getColorSpace, getCOSObject, getFunction, getShadingType, getType, setAntiAlias, setBackground, setBBox, setColorSpace, setFunction, setFunction, setShadingType, toPaint
-
-
-
-
Field Detail
-
decode
private COSArray decode
-
LOG
private static final org.apache.commons.logging.Log LOG
-
bitsPerCoordinate
private int bitsPerCoordinate
-
bitsPerColorComponent
private int bitsPerColorComponent
-
numberOfColorComponents
private int numberOfColorComponents
-
-
Constructor Detail
-
PDTriangleBasedShadingType
PDTriangleBasedShadingType(COSDictionary shadingDictionary)
-
-
Method Detail
-
getBitsPerComponent
public int getBitsPerComponent()
The bits per component of this shading. This will return -1 if one has not been set.- Returns:
- the number of bits per component
-
setBitsPerComponent
public void setBitsPerComponent(int bitsPerComponent)
Set the number of bits per component.- Parameters:
bitsPerComponent
- the number of bits per component
-
getBitsPerCoordinate
public int getBitsPerCoordinate()
The bits per coordinate of this shading. This will return -1 if one has not been set.- Returns:
- the number of bits per coordinate
-
setBitsPerCoordinate
public void setBitsPerCoordinate(int bitsPerCoordinate)
Set the number of bits per coordinate.- Parameters:
bitsPerCoordinate
- the number of bits per coordinate
-
getNumberOfColorComponents
public int getNumberOfColorComponents() throws java.io.IOException
The number of color components of this shading.- Returns:
- number of color components of this shading
- Throws:
java.io.IOException
-
getDecodeValues
private COSArray getDecodeValues()
Returns all decode values as COSArray.- Returns:
- the decode array
-
setDecodeValues
public void setDecodeValues(COSArray decodeValues)
This will set the decode values.- Parameters:
decodeValues
- the new decode values
-
getDecodeForParameter
public PDRange getDecodeForParameter(int paramNum)
Get the decode for the input parameter.- Parameters:
paramNum
- the function parameter number- Returns:
- the decode parameter range or null if none is set
-
interpolate
protected float interpolate(float src, long srcMax, float dstMin, float dstMax)
Calculate the interpolation, see p.345 pdf spec 1.7.- Parameters:
src
- src valuesrcMax
- max src value (2^bits-1)dstMin
- min dst valuedstMax
- max dst value- Returns:
- interpolated value
-
readVertex
protected Vertex readVertex(javax.imageio.stream.ImageInputStream input, long maxSrcCoord, long maxSrcColor, PDRange rangeX, PDRange rangeY, PDRange[] colRangeTab, Matrix matrix, java.awt.geom.AffineTransform xform) throws java.io.IOException
Read a vertex from the bit input stream performs interpolations.- Parameters:
input
- bit input streammaxSrcCoord
- max value for source coordinate (2^bits-1)maxSrcColor
- max value for source color (2^bits-1)rangeX
- dest range for XrangeY
- dest range for YcolRangeTab
- dest range array for colorsmatrix
- the pattern matrix concatenated with that of the parent content stream- Returns:
- a new vertex with the flag and the interpolated values
- Throws:
java.io.IOException
- if something went wrong
-
collectTriangles
abstract java.util.List<ShadedTriangle> collectTriangles(java.awt.geom.AffineTransform xform, Matrix matrix) throws java.io.IOException
- Throws:
java.io.IOException
-
-