Package com.sun.pdfview
Class PDFImage
- java.lang.Object
-
- com.sun.pdfview.PDFImage
-
public class PDFImage extends java.lang.ObjectEncapsulates a PDF Image
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classPDFImage.DecodeComponentColorModelA wrapper for ComponentColorSpace which normalizes based on the decode array.
-
Field Summary
Fields Modifier and Type Field Description private intbpcthe number of bits per sample componentprivate int[]colorKeyMaskcolor key mask.private PDFColorSpacecolorSpacethe colorspace to interpret the samples inprivate float[]decodethe decode arrayprivate intheightthe height of this image in pixelsprivate booleanimageMaskwhether this image is a mask or notprivate PDFObjectimageObjthe actual image dataprivate PDFImagesMaskthe SMask image, if anyprivate intwidththe width of this image in pixels
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PDFImagecreateImage(PDFObject obj, java.util.Map resources)Read a PDFImage from an image dictionary and streamstatic voiddump(PDFObject obj)protected intgetBitsPerComponent()Get the number of bits per component sampleprivate java.awt.image.ColorModelgetColorModel()get a Java ColorModel consistent with the current color space, number of bits per component and decode arrayprotected PDFColorSpacegetColorSpace()Get the colorspace associated with this image, or null if there isn't oneprotected float[]getDecode()Get the decode arrayintgetHeight()Get the image's heightjava.awt.image.BufferedImagegetImage()Get the image that this PDFImage generates.PDFImagegetSMask()Return the soft mask associated with this imageintgetWidth()Get the image's widthbooleanisImageMask()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 voidp(java.lang.String string)protected java.awt.image.BufferedImageparseData(byte[] data)Parse the image stream into a buffered image.protected voidsetBitsPerComponent(int bpc)Set the number of bits per component sampleprivate voidsetColorKeyMask(PDFObject maskArrayObject)set the color key mask.protected voidsetColorSpace(PDFColorSpace colorSpace)Set the colorspace associated with this imageprotected voidsetDecode(float[] decode)Set the decode arrayprotected voidsetHeight(int height)Set the image's heightvoidsetImageMask(boolean imageMask)Set whether or not this is an image maskprotected voidsetSMask(PDFImage sMask)Set the soft mask imageprotected voidsetWidth(int width)Set the image's width
-
-
-
Field Detail
-
colorKeyMask
private int[] colorKeyMask
color 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 width
the width of this image in pixels
-
height
private int height
the height of this image in pixels
-
colorSpace
private PDFColorSpace colorSpace
the colorspace to interpret the samples in
-
bpc
private int bpc
the number of bits per sample component
-
imageMask
private boolean imageMask
whether this image is a mask or not
-
sMask
private PDFImage sMask
the SMask image, if any
-
decode
private float[] decode
the decode array
-
imageObj
private PDFObject imageObj
the actual image data
-
-
Constructor Detail
-
PDFImage
protected PDFImage(PDFObject imageObj)
Create an instance of a PDFImage
-
-
Method Detail
-
dump
public static void dump(PDFObject obj) throws java.io.IOException
- Throws:
java.io.IOException
-
p
public static void p(java.lang.String string)
-
createImage
public static PDFImage createImage(PDFObject obj, java.util.Map resources) throws java.io.IOException
Read a PDFImage from an image dictionary and stream- Parameters:
obj- the PDFObject containing the image's dictionary and streamresources- the current resources- Throws:
java.io.IOException
-
getImage
public java.awt.image.BufferedImage getImage()
Get the image that this PDFImage generates.- Returns:
- a buffered image containing the decoded image data
-
parseData
protected java.awt.image.BufferedImage parseData(byte[] data)
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.
-
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
private void setColorKeyMask(PDFObject maskArrayObject) throws java.io.IOException
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:
java.io.IOException
-
getColorSpace
protected PDFColorSpace getColorSpace()
Get the colorspace associated with this image, or null if there isn't one
-
setColorSpace
protected void setColorSpace(PDFColorSpace colorSpace)
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
public PDFImage getSMask()
Return the soft mask associated with this image
-
setSMask
protected void setSMask(PDFImage sMask)
Set the soft mask image
-
getDecode
protected float[] getDecode()
Get the decode array
-
setDecode
protected void setDecode(float[] decode)
Set the decode array
-
getColorModel
private java.awt.image.ColorModel 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
-
-
-