Class PDShadingType6

  • All Implemented Interfaces:
    COSObjectable

    public class PDShadingType6
    extends PDShadingType4
    Resources for a shading type 6 (Coons Patch Mesh).
    • Constructor Detail

      • PDShadingType6

        public PDShadingType6​(COSDictionary shadingDictionary)
        Constructor using the given shading dictionary.
        Parameters:
        shadingDictionary - the dictionary for this shading
    • Method Detail

      • getShadingType

        public int getShadingType()
        Description copied from class: PDShading
        This will return the shading type.
        Overrides:
        getShadingType in class PDShadingType4
        Returns:
        the shading typ
      • toPaint

        public java.awt.Paint toPaint​(Matrix matrix)
        Description copied from class: PDShading
        Returns an AWT paint which corresponds to this shading
        Overrides:
        toPaint in class PDShadingType4
        Parameters:
        matrix - the pattern matrix concatenated with that of the parent content stream, this matrix which maps the pattern's internal coordinate system to user space
        Returns:
        an AWT Paint instance
      • generatePatch

        protected org.apache.pdfbox.pdmodel.graphics.shading.Patch generatePatch​(java.awt.geom.Point2D[] points,
                                                                                 float[][] color)
      • getBounds

        public 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.
        Returns:
        Bounding rectangle or null, if not supported by this shading type.
        Throws:
        java.io.IOException
      • readPatch

        protected org.apache.pdfbox.pdmodel.graphics.shading.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 stream
        isFree - whether this is a free patch
        implicitEdge - implicit edge when a patch is not free, otherwise it's not used
        implicitCornerColor - implicit colors when a patch is not free, otherwise it's not used
        maxSrcCoord - the maximum coordinate value calculated from source data
        maxSrcColor - the maximum color value calculated from source data
        rangeX - range for coordinate x
        rangeY - range for coordinate y
        colRange - range for color
        matrix - the pattern matrix concatenated with that of the parent content stream
        xform - transformation for user to device space
        controlPoints - 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
      • 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
      • 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 value
        srcMax - max src value (2^bits-1)
        dstMin - min dst value
        dstMax - max dst value
        Returns:
        interpolated value
      • readVertex

        protected org.apache.pdfbox.pdmodel.graphics.shading.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 stream
        maxSrcCoord - max value for source coordinate (2^bits-1)
        maxSrcColor - max value for source color (2^bits-1)
        rangeX - dest range for X
        rangeY - dest range for Y
        colRangeTab - dest range array for colors
        matrix - 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