Class PDFImageColorModel
- java.lang.Object
-
- java.awt.image.ColorModel
-
- com.inductiveautomation.rm.pdf.reader.PDFImageColorModel
-
- All Implemented Interfaces:
java.awt.Transparency
public class PDFImageColorModel extends java.awt.image.ColorModel
The PDFImageColorModel is a subclass of PackedColorModel which can be used to display a pdf image. It maintains the image's colorspace, and will do color conversions from the image colorspace to sRGB.Alpha may be taken from a SoftMask image.
This goes through colorspace conversion for every single pixel, and so is blindingly slow. A subclass which handles images in device colorspaces without conversion would probably be a good idea.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
PDFImageColorModel.SoftMask
A representation of the alpha channel.
-
Constructor Summary
Constructors Constructor Description PDFImageColorModel(java.awt.color.ColorSpace space, int bits, int[] significantBits, boolean hasalpha, int transferType)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.awt.image.ColorModel
coerceData(java.awt.image.WritableRaster r, boolean premultipliedAlpha)
CoerceData.static PDFImageColorModel
createPDFModel(java.awt.color.ColorSpace space, int bps, float[] decodemins, float[] decodemaxs, boolean hasalpha)
static java.awt.image.WritableRaster
createPDFRaster(byte[] packedbytes, PDFImageColorModel.SoftMask mask, java.awt.color.ColorSpace space, int bps, int w, int h)
static java.awt.image.WritableRaster
createPDFRaster(byte[] packedbytes, java.awt.color.ColorSpace space, int bps, int w, int h)
int
getAlpha(int pixel)
int
getBlue(int pixel)
int
getGreen(int pixel)
int
getNumSourceComponents()
Returns the number of color components present in the input pixelsint
getRed(int pixel)
int
getRGB(int pixel)
Implemented under duress.int
getRGB(java.lang.Object inData)
Convert an array of elements, whose size is defined by the transfertype, into sRGB+alpha.void
init(int bps, float[] decodemins, float[] decodemaxs)
boolean
isCompatibleRaster(java.awt.image.Raster r)
Not sure.void
setSoftMask(PDFImageColorModel.SoftMask m)
Specify softmask (alpha) information for this image-
Methods inherited from class java.awt.image.ColorModel
createCompatibleSampleModel, createCompatibleWritableRaster, equals, finalize, getAlpha, getAlphaRaster, getBlue, getColorSpace, getComponents, getComponents, getComponentSize, getComponentSize, getDataElement, getDataElement, getDataElements, getDataElements, getDataElements, getGreen, getNormalizedComponents, getNormalizedComponents, getNumColorComponents, getNumComponents, getPixelSize, getRed, getRGBdefault, getTransferType, getTransparency, getUnnormalizedComponents, hasAlpha, hashCode, isAlphaPremultiplied, isCompatibleSampleModel, toString
-
-
-
-
Method Detail
-
createPDFModel
public static PDFImageColorModel createPDFModel(java.awt.color.ColorSpace space, int bps, float[] decodemins, float[] decodemaxs, boolean hasalpha)
-
createPDFRaster
public static java.awt.image.WritableRaster createPDFRaster(byte[] packedbytes, java.awt.color.ColorSpace space, int bps, int w, int h)
-
createPDFRaster
public static java.awt.image.WritableRaster createPDFRaster(byte[] packedbytes, PDFImageColorModel.SoftMask mask, java.awt.color.ColorSpace space, int bps, int w, int h)
-
init
public void init(int bps, float[] decodemins, float[] decodemaxs)
-
setSoftMask
public void setSoftMask(PDFImageColorModel.SoftMask m)
Specify softmask (alpha) information for this image
-
getNumSourceComponents
public int getNumSourceComponents()
Returns the number of color components present in the input pixels
-
coerceData
public java.awt.image.ColorModel coerceData(java.awt.image.WritableRaster r, boolean premultipliedAlpha)
CoerceData.- Overrides:
coerceData
in classjava.awt.image.ColorModel
-
isCompatibleRaster
public boolean isCompatibleRaster(java.awt.image.Raster r)
Not sure.- Overrides:
isCompatibleRaster
in classjava.awt.image.ColorModel
-
getRGB
public int getRGB(int pixel)
Implemented under duress. The class defines these as abstract, so we have to provide implementations of them even though they'll never get called.- Overrides:
getRGB
in classjava.awt.image.ColorModel
-
getRed
public int getRed(int pixel)
- Specified by:
getRed
in classjava.awt.image.ColorModel
-
getGreen
public int getGreen(int pixel)
- Specified by:
getGreen
in classjava.awt.image.ColorModel
-
getBlue
public int getBlue(int pixel)
- Specified by:
getBlue
in classjava.awt.image.ColorModel
-
getAlpha
public int getAlpha(int pixel)
- Specified by:
getAlpha
in classjava.awt.image.ColorModel
-
getRGB
public int getRGB(java.lang.Object inData)
Convert an array of elements, whose size is defined by the transfertype, into sRGB+alpha. First we normalize the components and then let the saved pdf colorspace convert into sRGB. We then merge in the alpha to get a pixel.- Overrides:
getRGB
in classjava.awt.image.ColorModel
-
-