Class DeviceNColorSpace
- java.lang.Object
-
- java.awt.color.ColorSpace
-
- org.faceless.pdf2.DeviceNColorSpace
-
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
SpotColorSpace
public class DeviceNColorSpace extends ColorSpace
This class represents a "Device N" ColorSpace, which is a ColorSpace with N individual inks - the
SpotColorSpace
class is a special case of this class where there is only one ink. This class has no public constructor, as it is not normally something that would be created by a user of this API. The class itself is public primarily for preflighting: an instance of this ColorSpace may be passed in toOutputProfiler.ColorAction.changeColor(org.faceless.pdf2.OutputProfiler, java.awt.color.ColorSpace, float[], float[], boolean, int)
.Note that unlike "process" ColorSpaces, colors in this space can be converted from this space to RGB or XYZ, but not the other way - these spaces are not constructed in a way that makes it easy to map an RGB value to a Color in this class (nor would it be useful). Consequently the
fromRGB(float[])
andfromCIEXYZ(float[])
methods throw anUnsupportedOperationException
- Since:
- 2.18
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DeviceNColorSpace.Builder
The Builder subclass allows the creation of a custom DeviceN ColorSpace, by specifying first the fallback ColorSpace, then the individual inks.
-
Field Summary
-
Fields inherited from class java.awt.color.ColorSpace
CS_CIEXYZ, CS_GRAY, CS_LINEAR_RGB, CS_PYCC, CS_sRGB, TYPE_2CLR, TYPE_3CLR, TYPE_4CLR, TYPE_5CLR, TYPE_6CLR, TYPE_7CLR, TYPE_8CLR, TYPE_9CLR, TYPE_ACLR, TYPE_BCLR, TYPE_CCLR, TYPE_CMY, TYPE_CMYK, TYPE_DCLR, TYPE_ECLR, TYPE_FCLR, TYPE_GRAY, TYPE_HLS, TYPE_HSV, TYPE_Lab, TYPE_Luv, TYPE_RGB, TYPE_XYZ, TYPE_YCbCr, TYPE_Yxy
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
float[]
fromCIEXYZ(float[] xyz)
Theoretically transforms a color value assumed to be in the XYZ ColorSpace into values in this ColorSpace.float[]
fromRGB(float[] rgb)
Theoretically transforms a color value assumed to be in the sRGB ColorSpace into values in this ColorSpace.Color
getColor(float[] comps, float alpha)
SpotColorSpace
getComponentColorSpace(int comp)
Get the Component ColorSpace for an individual spot color in the ColorSpace, or null if this color is a process colorColorSpace
getFallbackColorSpace()
Get the ColorSpace which defines the "fallback" color, which must be a process ColorSpace (i.e.float
getMaxValue(int i)
float
getMinValue(int i)
String
getName(int comp)
Returns the name of the specified componentint
getNumComponents()
Returns the number of components of this ColorSpace.int
hashCode()
boolean
isAdditive()
Return true if this ColorSpace is additive (like RGB), as opposed to subtractive (like CMYK).DeviceNColorSpace
remap(ColorSpace newfallback)
Attempt to convert this DeviceNColorSpace to an equavalent one, but with a different fallback ColorSpace.float[]
toCIEXYZ(float[] colorvalue)
Transforms a color value assumed to be in this ColorSpace into the CIEXYZ values.float[]
toFallback(float[] input)
Convert the color components in this color to the components in thefallback
ColorSpacefloat[]
toRGB(float[] colorvalue)
Transforms a color value assumed to be in this ColorSpace into a value in the default CS_sRGB color space.String
toString()
-
Methods inherited from class java.awt.color.ColorSpace
getInstance, getType, isCS_sRGB
-
-
-
-
Method Detail
-
getName
public String getName(int comp)
Returns the name of the specified component- Overrides:
getName
in classColorSpace
- Parameters:
comp
- the component index- Returns:
- the name of the component at the specified index
- Since:
- 2.11.26
-
getMinValue
public float getMinValue(int i)
- Overrides:
getMinValue
in classColorSpace
-
getMaxValue
public float getMaxValue(int i)
- Overrides:
getMaxValue
in classColorSpace
-
getNumComponents
public int getNumComponents()
Returns the number of components of this ColorSpace.- Overrides:
getNumComponents
in classColorSpace
- Returns:
- the number of components in this ColorSpace
-
getFallbackColorSpace
public ColorSpace getFallbackColorSpace()
Get the ColorSpace which defines the "fallback" color, which must be a process ColorSpace (i.e. RGB, CMYK etc)
-
getComponentColorSpace
public SpotColorSpace getComponentColorSpace(int comp)
Get the Component ColorSpace for an individual spot color in the ColorSpace, or null if this color is a process color- Parameters:
comp
- the component index- Since:
- 2.24.3
-
isAdditive
public boolean isAdditive()
Return true if this ColorSpace is additive (like RGB), as opposed to subtractive (like CMYK). DeviceN spaces are intended for print so will almost always be subtractive, but its possible to subvert this.
-
getColor
public Color getColor(float[] comps, float alpha)
-
toFallback
public float[] toFallback(float[] input)
Convert the color components in this color to the components in thefallback
ColorSpace- Parameters:
input
- the array of components in this ColorSpace- Returns:
- the array of components in the fallback ColorSpace
-
toRGB
public float[] toRGB(float[] colorvalue)
Transforms a color value assumed to be in this ColorSpace into a value in the default CS_sRGB color space. Calls
toRGB
on the fallback colorspace.- Specified by:
toRGB
in classColorSpace
- Parameters:
colorvalue
- a float array with length of at least the number of components in this ColorSpace- Returns:
- a float array of length 3
-
toCIEXYZ
public float[] toCIEXYZ(float[] colorvalue)
Transforms a color value assumed to be in this ColorSpace into the CIEXYZ values. Calls
toCIEXYZ
on the fallback colorspace.- Specified by:
toCIEXYZ
in classColorSpace
- Parameters:
colorvalue
- a float array with length of at least the number of components in this ColorSpace- Returns:
- a float array of length 3
-
fromRGB
public float[] fromRGB(float[] rgb)
Theoretically transforms a color value assumed to be in the sRGB ColorSpace into values in this ColorSpace. In practice this can't easily be done and isn't useful, so throws an
UnsupportedOperationException
.- Specified by:
fromRGB
in classColorSpace
- Parameters:
rgb
- a float array with length of at least 3
-
fromCIEXYZ
public float[] fromCIEXYZ(float[] xyz)
Theoretically transforms a color value assumed to be in the XYZ ColorSpace into values in this ColorSpace. In practice this can't easily be done and isn't useful, so throws an
UnsupportedOperationException
.- Specified by:
fromCIEXYZ
in classColorSpace
- Parameters:
xyz
- a float array with length of at least 3
-
remap
public DeviceNColorSpace remap(ColorSpace newfallback)
Attempt to convert this DeviceNColorSpace to an equavalent one, but with a different fallback ColorSpace. The equivalent space will be as close as possible to the original, but may not be identical, as colors may be out of gamut. For some DeviceN spaces this process may not be possible - spaces are remapped with a lookup table function requiring mn samples where n is the number of inks- Since:
- 2.17.1
-
-