java.lang.Object
org.sejda.sambox.pdmodel.graphics.image.PDInlineImage
- All Implemented Interfaces:
COSObjectable,PDImage
An inline image object which uses a special syntax to express the data for a small image directly
within the content stream.
- Author:
- Ben Litchfield, John Hewson
-
Constructor Summary
ConstructorsConstructorDescriptionPDInlineImage(COSDictionary parameters, byte[] data, PDResources resources) Creates an inline image from the given parameters and data. -
Method Summary
Modifier and TypeMethodDescriptionReturns an InputStream containing the image data, irrespective of whether this is an inline image or an image XObject.intReturns bits per component of this image, or -1 if one has not been set.Returns the image's color space.byte[]getData()Returns the inline image data.Returns the decode array.Returns a list of filters applied to this stream, or null if there are none.intReturns height of this image, or -1 if one has not been set.getImage()Returns the content of this image as an AWT buffered image with an (A)RGB color space.booleanReturns true if the image should be interpolated when rendered.Try to get the raw image as AWT buffered image with it's original colorspace.Return the image data as WritableRaster.getStencilImage(Paint paint) Returns an ARGB image filled with the given paint and using this image as a mask.intgetWidth()Returns the width of this image, or -1 if one has not been set.booleanisEmpty()Returns true if the image has no data.booleanReturns true if the image is a stencil mask.voidsetBitsPerComponent(int bitsPerComponent) Set the number of bits per component.voidsetColorSpace(PDColorSpace colorSpace) Sets the color space for this image.voidSets the decode array.voidsetFilters(List<String> filters) Sets which filters are applied to this stream.voidsetHeight(int height) Sets the height of the image.voidsetInterpolate(boolean value) Sets the Interpolate flag, true for high-quality image scaling.voidsetStencil(boolean isStencil) Sets whether or not the image is a stencil.voidsetWidth(int width) Sets the width of the image.
-
Constructor Details
-
PDInlineImage
public PDInlineImage(COSDictionary parameters, byte[] data, PDResources resources) throws IOException Creates an inline image from the given parameters and data.- Parameters:
parameters- the image parametersdata- the image dataresources- the current resources- Throws:
IOException- if the stream cannot be decoded
-
-
Method Details
-
getCOSObject
- Specified by:
getCOSObjectin interfaceCOSObjectable- Returns:
- The
COSBasethat matches this Java object.
-
getBitsPerComponent
public int getBitsPerComponent()Description copied from interface:PDImageReturns bits per component of this image, or -1 if one has not been set.- Specified by:
getBitsPerComponentin interfacePDImage
-
setBitsPerComponent
public void setBitsPerComponent(int bitsPerComponent) Description copied from interface:PDImageSet the number of bits per component.- Specified by:
setBitsPerComponentin interfacePDImage- Parameters:
bitsPerComponent- The number of bits per component.
-
getColorSpace
Description copied from interface:PDImageReturns the image's color space.- Specified by:
getColorSpacein interfacePDImage- Throws:
IOException- If there is an error getting the color space.
-
setColorSpace
Description copied from interface:PDImageSets the color space for this image.- Specified by:
setColorSpacein interfacePDImage- Parameters:
colorSpace- The color space for this image.
-
getHeight
public int getHeight()Description copied from interface:PDImageReturns height of this image, or -1 if one has not been set. -
setHeight
public void setHeight(int height) Description copied from interface:PDImageSets the height of the image. -
getWidth
public int getWidth()Description copied from interface:PDImageReturns the width of this image, or -1 if one has not been set. -
setWidth
public void setWidth(int width) Description copied from interface:PDImageSets the width of the image. -
getInterpolate
public boolean getInterpolate()Description copied from interface:PDImageReturns true if the image should be interpolated when rendered.- Specified by:
getInterpolatein interfacePDImage
-
setInterpolate
public void setInterpolate(boolean value) Description copied from interface:PDImageSets the Interpolate flag, true for high-quality image scaling.- Specified by:
setInterpolatein interfacePDImage
-
getFilters
Returns a list of filters applied to this stream, or null if there are none.- Returns:
- a list of filters applied to this stream
-
setFilters
Sets which filters are applied to this stream.- Parameters:
filters- the filters to apply to this stream.
-
setDecode
Description copied from interface:PDImageSets the decode array. -
getDecode
Description copied from interface:PDImageReturns the decode array. -
isStencil
public boolean isStencil()Description copied from interface:PDImageReturns true if the image is a stencil mask. -
setStencil
public void setStencil(boolean isStencil) Description copied from interface:PDImageSets whether or not the image is a stencil. This corresponds to theImageMaskentry in the image stream's dictionary.- Specified by:
setStencilin interfacePDImage- Parameters:
isStencil- True to make the image a stencil.
-
createInputStream
Description copied from interface:PDImageReturns an InputStream containing the image data, irrespective of whether this is an inline image or an image XObject.- Specified by:
createInputStreamin interfacePDImage- Returns:
- Decoded stream
-
asByteBuffer
- Specified by:
asByteBufferin interfacePDImage- Returns:
- image data in the form of a
ByteBuffer
-
isEmpty
public boolean isEmpty()Description copied from interface:PDImageReturns true if the image has no data. -
getData
public byte[] getData()Returns the inline image data. -
getRawRaster
Description copied from interface:PDImageReturn the image data as WritableRaster. You should consult the PDColorSpace returned byPDImage.getColorSpace()to know how to interpret the data in this WritableRaster.Use this if e.g. want access to the raw color information of a
PDDeviceNimage.- Specified by:
getRawRasterin interfacePDImage- Returns:
- the raw writable raster for this image
- Throws:
IOException
-
getRawImage
Description copied from interface:PDImageTry to get the raw image as AWT buffered image with it's original colorspace. No color conversion is performed.You could use the returned BufferedImage for draw operations. But this would be very slow as the color conversion would happen on demand. You rather should use
PDImage.getImage()for that.This method returns null if it is not possible to map the underlying colorspace into a java.awt.ColorSpace.
Use this method if you want to extract the image without loosing any color information, as no color conversion will be performed.
You can alwoys use
PDImage.getRawRaster(), if you want to access the raw data even if no matching java.awt.ColorSpace exists- Specified by:
getRawImagein interfacePDImage- Returns:
- the raw image with a java.awt.ColorSpace or null
- Throws:
IOException
-
getImage
Description copied from interface:PDImageReturns the content of this image as an AWT buffered image with an (A)RGB color space. The size of the returned image is the larger of the size of the image itself or its mask.- Specified by:
getImagein interfacePDImage- Returns:
- content of this image as a buffered image.
- Throws:
IOException
-
getStencilImage
Description copied from interface:PDImageReturns an ARGB image filled with the given paint and using this image as a mask.- Specified by:
getStencilImagein interfacePDImage- Parameters:
paint- the paint to fill the visible portions of the image with- Returns:
- a masked image filled with the given paint
- Throws:
IOException- if the image cannot be read
-