Class PDDeviceN

All Implemented Interfaces:
COSObjectable

public class PDDeviceN extends PDSpecialColorSpace
DeviceN colour spaces may contain an arbitrary number of colour components. DeviceN represents a colour space containing multiple components that correspond to colorants of some target device. As with Separation colour spaces, readers are able to approximate the colorants if they are not available on the current output device, such as a display
  • Field Details

    • COLORANT_NAMES

      private static final int COLORANT_NAMES
      See Also:
    • ALTERNATE_CS

      private static final int ALTERNATE_CS
      See Also:
    • TINT_TRANSFORM

      private static final int TINT_TRANSFORM
      See Also:
    • DEVICEN_ATTRIBUTES

      private static final int DEVICEN_ATTRIBUTES
      See Also:
    • alternateColorSpace

      private PDColorSpace alternateColorSpace
    • tintTransform

      private PDFunction tintTransform
    • attributes

      private PDDeviceNAttributes attributes
    • initialColor

      private PDColor initialColor
    • numColorants

      private int numColorants
    • colorantToComponent

      private int[] colorantToComponent
    • processColorSpace

      private PDColorSpace processColorSpace
    • spotColorSpaces

      private PDSeparation[] spotColorSpaces
  • Constructor Details

    • PDDeviceN

      public PDDeviceN()
      Creates a new DeviceN color space.
    • PDDeviceN

      public PDDeviceN(COSArray deviceN) throws IOException
      Creates a new DeviceN color space from the given COS array.
      Parameters:
      deviceN - an array containing the color space information
      Throws:
      IOException
  • Method Details

    • initColorConversionCache

      private void initColorConversionCache(List<String> colorantNames) throws IOException
      Throws:
      IOException
    • toRGBImage

      public BufferedImage toRGBImage(WritableRaster raster) throws IOException
      Description copied from class: PDColorSpace
      Returns the (A)RGB equivalent of the given raster.
      Specified by:
      toRGBImage in class PDColorSpace
      Parameters:
      raster - the source raster
      Returns:
      an (A)RGB buffered image
      Throws:
      IOException - if the color conversion fails
    • toRGBWithAttributes

      private BufferedImage toRGBWithAttributes(WritableRaster raster) throws IOException
      Throws:
      IOException
    • toRGBWithTintTransform

      private BufferedImage toRGBWithTintTransform(WritableRaster raster) throws IOException
      Throws:
      IOException
    • toRGB

      public float[] toRGB(float[] value) throws IOException
      Description copied from class: PDColorSpace
      Returns the RGB equivalent of the given color value.
      Specified by:
      toRGB in class PDColorSpace
      Parameters:
      value - a color value with component values between 0 and 1
      Returns:
      an array of R,G,B value between 0 and 255
      Throws:
      IOException - if the color conversion fails
    • toRGBWithAttributes

      private float[] toRGBWithAttributes(float[] value) throws IOException
      Throws:
      IOException
    • toRGBWithTintTransform

      private float[] toRGBWithTintTransform(float[] value) throws IOException
      Throws:
      IOException
    • toRawImage

      public BufferedImage toRawImage(WritableRaster raster)
      Description copied from class: PDColorSpace
      Returns the image in this colorspace or null. No conversion is performed. For special colorspaces like PDSeparation the image is returned in the gray colorspace. For undefined colorspaces like DeviceCMYK/DeviceRGB and DeviceGray null is returned. You can always fallback to PDColorSpace.toRGBImage(WritableRaster) if this returns null.
      Specified by:
      toRawImage in class PDColorSpace
      Parameters:
      raster - the source raster
      Returns:
      an buffered image in this colorspace. Or null if it is not possible to extract that image with the original colorspace without conversion.
    • isNChannel

      public boolean isNChannel()
      Returns true if this color space has the NChannel subtype.
      Returns:
      true if subtype is NChannel
    • getName

      public String getName()
      Description copied from class: PDColorSpace
      Returns the name of the color space.
      Specified by:
      getName in class PDColorSpace
      Returns:
      the name of the color space
    • getNumberOfComponents

      public final int getNumberOfComponents()
      Description copied from class: PDColorSpace
      Returns the number of components in this color space
      Specified by:
      getNumberOfComponents in class PDColorSpace
      Returns:
      the number of components in this color space
    • getDefaultDecode

      public float[] getDefaultDecode(int bitsPerComponent)
      Description copied from class: PDColorSpace
      Returns the default decode array for this color space.
      Specified by:
      getDefaultDecode in class PDColorSpace
      Parameters:
      bitsPerComponent - the number of bits per component.
      Returns:
      the default decode array
    • getInitialColor

      public PDColor getInitialColor()
      Description copied from class: PDColorSpace
      Returns the initial color value for this color space.
      Specified by:
      getInitialColor in class PDColorSpace
      Returns:
      the initial color value for this color space
    • getColorantNames

      public final List<String> getColorantNames()
      Returns the list of colorants.
      Returns:
      the list of colorants
    • getAttributes

      public PDDeviceNAttributes getAttributes()
      Returns the attributes associated with the DeviceN color space.
      Returns:
      the DeviceN attributes
    • setColorantNames

      public void setColorantNames(List<String> names)
      Sets the list of colorants
      Parameters:
      names - the list of colorants
    • setAttributes

      public void setAttributes(PDDeviceNAttributes attributes)
      Sets the color space attributes. If null is passed in then all attribute will be removed.
      Parameters:
      attributes - the color space attributes, or null
    • getAlternateColorSpace

      public PDColorSpace getAlternateColorSpace() throws IOException
      This will get the alternate color space for this separation.
      Returns:
      The alternate color space.
      Throws:
      IOException - If there is an error getting the alternate color space.
    • setAlternateColorSpace

      public void setAlternateColorSpace(PDColorSpace cs)
      This will set the alternate color space.
      Parameters:
      cs - The alternate color space.
    • getTintTransform

      public PDFunction getTintTransform() throws IOException
      This will get the tint transform function.
      Returns:
      The tint transform function.
      Throws:
      IOException - if there is an error creating the function.
    • setTintTransform

      public void setTintTransform(PDFunction tint)
      This will set the tint transform function.
      Parameters:
      tint - The tint transform function.
    • toString

      public String toString()
      Overrides:
      toString in class Object