Package com.sun.pdfview
Class PDFImage
java.lang.Object
com.sun.pdfview.PDFImage
Encapsulates a PDF Image
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class
A wrapper for ComponentColorSpace which normalizes based on the decode array. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int
the number of bits per sample componentprivate int[]
color key mask.private PDFColorSpace
the colorspace to interpret the samples inprivate float[]
the decode arrayprivate int
the height of this image in pixelsprivate boolean
whether this image is a mask or notprivate PDFObject
the actual image dataprivate PDFImage
the SMask image, if anyprivate int
the width of this image in pixels -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic PDFImage
createImage
(PDFObject obj, Map resources) Read a PDFImage from an image dictionary and streamstatic void
protected int
Get the number of bits per component sampleprivate ColorModel
get a Java ColorModel consistent with the current color space, number of bits per component and decode arrayprotected PDFColorSpace
Get the colorspace associated with this image, or null if there isn't oneprotected float[]
Get the decode arrayint
Get the image's heightgetImage()
Get the image that this PDFImage generates.getSMask()
Return the soft mask associated with this imageint
getWidth()
Get the image's widthboolean
Return whether or not this is an image maskprivate float[]
normalize
(byte[] pixels, float[] normComponents, int normOffset) Normalize an array of values to match the decode arraystatic void
protected BufferedImage
parseData
(byte[] data) Parse the image stream into a buffered image.protected void
setBitsPerComponent
(int bpc) Set the number of bits per component sampleprivate void
setColorKeyMask
(PDFObject maskArrayObject) set the color key mask.protected void
setColorSpace
(PDFColorSpace colorSpace) Set the colorspace associated with this imageprotected void
setDecode
(float[] decode) Set the decode arrayprotected void
setHeight
(int height) Set the image's heightvoid
setImageMask
(boolean imageMask) Set whether or not this is an image maskprotected void
Set the soft mask imageprotected void
setWidth
(int width) Set the image's width
-
Field Details
-
colorKeyMask
private int[] colorKeyMaskcolor key mask. Array of start/end pairs of ranges of color components to mask out. If a component falls within any of the ranges it is clear. -
width
private int widththe width of this image in pixels -
height
private int heightthe height of this image in pixels -
colorSpace
the colorspace to interpret the samples in -
bpc
private int bpcthe number of bits per sample component -
imageMask
private boolean imageMaskwhether this image is a mask or not -
sMask
the SMask image, if any -
decode
private float[] decodethe decode array -
imageObj
the actual image data
-
-
Constructor Details
-
PDFImage
Create an instance of a PDFImage
-
-
Method Details
-
dump
- Throws:
IOException
-
p
-
createImage
Read a PDFImage from an image dictionary and stream- Parameters:
obj
- the PDFObject containing the image's dictionary and streamresources
- the current resources- Throws:
IOException
-
getImage
Get the image that this PDFImage generates.- Returns:
- a buffered image containing the decoded image data
-
parseData
Parse the image stream into a buffered image. Note that this is guaranteed to be called after all the other setXXX methods have been called.
NOTE: the color convolving is extremely slow on large images. It would be good to see if it could be moved out into the rendering phases, where we might be able to scale the image down first.invalid input: '<'/p
-
getWidth
public int getWidth()Get the image's width -
setWidth
protected void setWidth(int width) Set the image's width -
getHeight
public int getHeight()Get the image's height -
setHeight
protected void setHeight(int height) Set the image's height -
setColorKeyMask
set the color key mask. It is an array of start/end entries to indicate ranges of color indicies that should be masked out.- Parameters:
maskArrayObject
-- Throws:
IOException
-
getColorSpace
Get the colorspace associated with this image, or null if there isn't one -
setColorSpace
Set the colorspace associated with this image -
getBitsPerComponent
protected int getBitsPerComponent()Get the number of bits per component sample -
setBitsPerComponent
protected void setBitsPerComponent(int bpc) Set the number of bits per component sample -
isImageMask
public boolean isImageMask()Return whether or not this is an image mask -
setImageMask
public void setImageMask(boolean imageMask) Set whether or not this is an image mask -
getSMask
Return the soft mask associated with this image -
setSMask
Set the soft mask image -
getDecode
protected float[] getDecode()Get the decode array -
setDecode
protected void setDecode(float[] decode) Set the decode array -
getColorModel
get a Java ColorModel consistent with the current color space, number of bits per component and decode array- Parameters:
bpc
- the number of bits per component
-
normalize
private float[] normalize(byte[] pixels, float[] normComponents, int normOffset) Normalize an array of values to match the decode array
-