Class PDColorSpace

java.lang.Object
org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace
All Implemented Interfaces:
COSObjectable
Direct Known Subclasses:
PDCIEBasedColorSpace, PDDeviceColorSpace, PDJPXColorSpace, PDSpecialColorSpace

public abstract class PDColorSpace extends Object implements COSObjectable
A color space specifies how the colours of graphics objects will be painted on the page.
Author:
John Hewson, Ben Litchfield
  • Field Details

  • Constructor Details

    • PDColorSpace

      public PDColorSpace()
  • Method Details

    • create

      public static PDColorSpace create(COSBase colorSpace) throws IOException
      Creates a color space given a name or array.
      Parameters:
      colorSpace - the color space COS object
      Returns:
      a new color space
      Throws:
      IOException - if the color space is unknown or cannot be created
    • create

      public static PDColorSpace create(COSBase colorSpace, PDResources resources) throws IOException
      Creates a color space given a name or array. Abbreviated device color names are not supported here, please replace them first.
      Parameters:
      colorSpace - the color space COS object
      resources - the current resources.
      Returns:
      a new color space
      Throws:
      MissingResourceException - if the color space is missing in the resources dictionary
      IOException - if the color space is unknown or cannot be created
    • create

      public static PDColorSpace create(COSBase colorSpace, PDResources resources, boolean wasDefault) throws IOException
      Creates a color space given a name or array. Abbreviated device color names are not supported here, please replace them first. This method is for PDFBox internal use only, others should use create(COSBase, PDResources).
      Parameters:
      colorSpace - the color space COS object
      resources - the current resources.
      wasDefault - if current color space was used by a default color space.
      Returns:
      a new color space.
      Throws:
      MissingResourceException - if the color space is missing in the resources dictionary
      IOException - if the color space is unknown or cannot be created.
    • getName

      public abstract String getName()
      Returns the name of the color space.
      Returns:
      the name of the color space
    • getNumberOfComponents

      public abstract int getNumberOfComponents()
      Returns the number of components in this color space
      Returns:
      the number of components in this color space
    • getDefaultDecode

      public abstract float[] getDefaultDecode(int bitsPerComponent)
      Returns the default decode array for this color space.
      Parameters:
      bitsPerComponent - the number of bits per component.
      Returns:
      the default decode array
    • getInitialColor

      public abstract PDColor getInitialColor()
      Returns the initial color value for this color space.
      Returns:
      the initial color value for this color space
    • toRGB

      public abstract float[] toRGB(float[] value) throws IOException
      Returns the RGB equivalent of the given color value.
      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
    • toRGBImage

      public abstract BufferedImage toRGBImage(WritableRaster raster) throws IOException
      Returns the (A)RGB equivalent of the given raster.
      Parameters:
      raster - the source raster
      Returns:
      an (A)RGB buffered image
      Throws:
      IOException - if the color conversion fails
    • toRawImage

      public abstract BufferedImage toRawImage(WritableRaster raster) throws IOException
      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 toRGBImage(WritableRaster) if this returns null.
      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.
      Throws:
      IOException
    • toRawImage

      protected final BufferedImage toRawImage(WritableRaster raster, ColorSpace awtColorSpace)
      Returns the given raster as BufferedImage with the given awtColorSpace using a ComponentColorModel.
      Parameters:
      raster - the source raster
      awtColorSpace - the AWT colorspace
      Returns:
      a BufferedImage in this colorspace
    • toRGBImageAWT

      protected BufferedImage toRGBImageAWT(WritableRaster raster, ColorSpace colorSpace)
      Returns the (A)RGB equivalent of the given raster, using the given AWT color space to perform the conversion.
      Parameters:
      raster - the source raster
      colorSpace - the AWT
      Returns:
      an (A)RGB buffered image
    • getCOSObject

      public COSBase getCOSObject()
      Description copied from interface: COSObjectable
      Convert this standard java object to a COS object.
      Specified by:
      getCOSObject in interface COSObjectable
      Returns:
      The cos object that matches this Java object.