Class PDLab
- java.lang.Object
-
- org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace
-
- org.apache.pdfbox.pdmodel.graphics.color.PDCIEBasedColorSpace
-
- org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace
-
- org.apache.pdfbox.pdmodel.graphics.color.PDLab
-
- All Implemented Interfaces:
COSObjectable
public final class PDLab extends PDCIEDictionaryBasedColorSpace
A Lab colour space is a CIE-based ABC colour space with two transformation stages.
-
-
Field Summary
Fields Modifier and Type Field Description private PDColor
initialColor
-
Fields inherited from class org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace
dictionary, wpX, wpY, wpZ
-
Fields inherited from class org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace
array
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PDRange
getARange()
This will get the valid range for the "a" component.PDRange
getBRange()
This will get the valid range for the "b" component.float[]
getDefaultDecode(int bitsPerComponent)
Returns the default decode array for this color space.private COSArray
getDefaultRangeArray()
creates a range array with default values (-100..100 -100..100).PDColor
getInitialColor()
Returns the initial color value for this color space.java.lang.String
getName()
Returns the name of the color space.int
getNumberOfComponents()
Returns the number of components in this color spaceprivate float
inverse(float x)
void
setARange(PDRange range)
This will set the a range for the "a" component.void
setBRange(PDRange range)
This will set the "b" range for this color space.private void
setComponentRangeArray(PDRange range, int index)
java.awt.image.BufferedImage
toRawImage(java.awt.image.WritableRaster raster)
Returns the image in this colorspace or null.float[]
toRGB(float[] value)
Returns the RGB equivalent of the given color value.java.awt.image.BufferedImage
toRGBImage(java.awt.image.WritableRaster raster)
Returns the (A)RGB equivalent of the given raster.-
Methods inherited from class org.apache.pdfbox.pdmodel.graphics.color.PDCIEDictionaryBasedColorSpace
convXYZtoRGB, getBlackPoint, getWhitepoint, setBlackPoint, setWhitePoint
-
Methods inherited from class org.apache.pdfbox.pdmodel.graphics.color.PDCIEBasedColorSpace
toString
-
Methods inherited from class org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace
create, create, create, getCOSObject, toRawImage, toRGBImageAWT
-
-
-
-
Field Detail
-
initialColor
private PDColor initialColor
-
-
Constructor Detail
-
PDLab
public PDLab()
Creates a new Lab color space.
-
PDLab
public PDLab(COSArray lab)
Creates a new Lab color space from a PDF array.- Parameters:
lab
- the color space array
-
-
Method Detail
-
getName
public java.lang.String getName()
Description copied from class:PDColorSpace
Returns the name of the color space.- Specified by:
getName
in classPDColorSpace
- Returns:
- the name of the color space
-
toRGBImage
public java.awt.image.BufferedImage toRGBImage(java.awt.image.WritableRaster raster) throws java.io.IOException
Description copied from class:PDColorSpace
Returns the (A)RGB equivalent of the given raster.- Overrides:
toRGBImage
in classPDCIEBasedColorSpace
- Parameters:
raster
- the source raster- Returns:
- an (A)RGB buffered image
- Throws:
java.io.IOException
- if the color conversion fails
-
toRawImage
public java.awt.image.BufferedImage toRawImage(java.awt.image.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 toPDColorSpace.toRGBImage(WritableRaster)
if this returns null.- Overrides:
toRawImage
in classPDCIEBasedColorSpace
- 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.
-
toRGB
public float[] toRGB(float[] value)
Description copied from class:PDColorSpace
Returns the RGB equivalent of the given color value.- Specified by:
toRGB
in classPDColorSpace
- Parameters:
value
- a color value with component values between 0 and 1- Returns:
- an array of R,G,B value between 0 and 255
-
inverse
private float inverse(float x)
-
getNumberOfComponents
public int getNumberOfComponents()
Description copied from class:PDColorSpace
Returns the number of components in this color space- Specified by:
getNumberOfComponents
in classPDColorSpace
- 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 classPDColorSpace
- 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 classPDColorSpace
- Returns:
- the initial color value for this color space
-
getDefaultRangeArray
private COSArray getDefaultRangeArray()
creates a range array with default values (-100..100 -100..100).- Returns:
- the new range array.
-
getARange
public PDRange getARange()
This will get the valid range for the "a" component. If none is found then the default will be returned, which is -100..100.- Returns:
- the "a" range.
-
getBRange
public PDRange getBRange()
This will get the valid range for the "b" component. If none is found then the default will be returned, which is -100..100.- Returns:
- the "b" range.
-
setARange
public void setARange(PDRange range)
This will set the a range for the "a" component.- Parameters:
range
- the new range for the "a" component, or null if defaults (-100..100) are to be set.
-
setBRange
public void setBRange(PDRange range)
This will set the "b" range for this color space.- Parameters:
range
- the new range for the "b" component, or null if defaults (-100..100) are to be set.
-
setComponentRangeArray
private void setComponentRangeArray(PDRange range, int index)
-
-