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
      • generatePatch

        protected com.tom_roush.pdfbox.pdmodel.graphics.shading.Patch generatePatch​(PointF[] points,
                                                                                    float[][] color)
      • getBounds

        public RectF getBounds​(AffineTransform xform,
                               Matrix matrix)
                        throws 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:
        IOException
      • readPatch

        protected com.tom_roush.pdfbox.pdmodel.graphics.shading.Patch readPatch​(ImageInputStream input,
                                                                                boolean isFree,
                                                                                PointF[] implicitEdge,
                                                                                float[][] implicitCornerColor,
                                                                                long maxSrcCoord,
                                                                                long maxSrcColor,
                                                                                PDRange rangeX,
                                                                                PDRange rangeY,
                                                                                PDRange[] colRange,
                                                                                Matrix matrix,
                                                                                AffineTransform xform,
                                                                                int controlPoints)
                                                                         throws 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:
        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 IOException
        The number of color components of this shading.
        Returns:
        number of color components of this shading
        Throws:
        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 com.tom_roush.pdfbox.pdmodel.graphics.shading.Vertex readVertex​(ImageInputStream input,
                                                                                  long maxSrcCoord,
                                                                                  long maxSrcColor,
                                                                                  PDRange rangeX,
                                                                                  PDRange rangeY,
                                                                                  PDRange[] colRangeTab,
                                                                                  Matrix matrix,
                                                                                  AffineTransform xform)
                                                                           throws 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:
        IOException - if something went wrong