org.apache.pdfbox.pdmodel.graphics.color

## Class PDDeviceN

- java.lang.Object
- - org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace
  - - org.apache.pdfbox.pdmodel.graphics.color.PDSpecialColorSpace
    - - org.apache.pdfbox.pdmodel.graphics.color.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

Author:
  John Hewson, Ben Litchfield

### Field Summary

### Fields inherited from class org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace

`array`

### Constructor Summary

Constructors
Constructor and Description
`PDDeviceN()` Creates a new DeviceN color space.
`PDDeviceN(COSArray deviceN)` Deprecated. use `PDDeviceN(COSArray, PDResources)`
`PDDeviceN(COSArray deviceN, PDResources resources)` Creates a new DeviceN color space from the given COS array.

### Method Summary

All Methods Instance Methods Concrete Methods
`PDColorSpace` `getAlternateColorSpace()` This will get the alternate color space for this separation.
`PDDeviceNAttributes` `getAttributes()` Returns the attributes associated with the DeviceN color space.
`List<String>` `getColorantNames()` Returns the list of colorants.
`float[]` `getDefaultDecode(int bitsPerComponent)` Returns the default decode array for this color space.
`PDColor` `getInitialColor()` Returns the initial color value for this color space.
`String` `getName()` Returns the name of the color space.
`int` `getNumberOfComponents()` Returns the number of components in this color space
`PDFunction` `getTintTransform()` This will get the tint transform function.
`boolean` `isNChannel()` Returns true if this color space has the NChannel subtype.
`void` `setAlternateColorSpace(PDColorSpace cs)` This will set the alternate color space.
`void` `setAttributes(PDDeviceNAttributes attributes)` Sets the color space attributes.
`void` `setColorantNames(List<String> names)` Sets the list of colorants
`void` `setTintTransform(PDFunction tint)` This will set the tint transform function.
`BufferedImage` `toRawImage(WritableRaster raster)` Returns the image in this colorspace or null.
`float[]` `toRGB(float[] value)` Returns the RGB equivalent of the given color value.
`BufferedImage` `toRGBImage(WritableRaster raster)` Returns the (A)RGB equivalent of the given raster.
`String` `toString()`

### Methods inherited from class org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace

`create, create, create, getCOSObject, toRawImage, toRGBImageAWT`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### PDDeviceN

    public PDDeviceN()

Creates a new DeviceN color space.

#### PDDeviceN

    public PDDeviceN(COSArray deviceN,
                     PDResources resources)
              throws IOException

Creates a new DeviceN color space from the given COS array.

Parameters:
  `deviceN` - an array containing the color space information
  `resources` - resources, can be null.
Throws:
  `IOException` - if the colorspace could not be created

#### PDDeviceN

    @Deprecated
    public PDDeviceN(COSArray deviceN)
                          throws IOException

Deprecated. use `PDDeviceN(COSArray, PDResources)`
Creates a new DeviceN color space from the given COS array.

Parameters:
  `deviceN` - an array containing the color space information
Throws:
  `IOException` - if the colorspace could not be created

### Method Detail

#### 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

#### 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

#### 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 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`