com.lowagie.text

## Class Image

- java.lang.Object
- - com.lowagie.text.Rectangle
  - - com.lowagie.text.Image

All Implemented Interfaces:
  Element

Direct Known Subclasses:
  ImgCCITT, ImgJBIG2, ImgRaw, ImgTemplate, ImgWMF, Jpeg, Jpeg2000

    public abstract class Image
    extends Rectangle

An `Image` is the representation of a graphic element (JPEG, PNG or GIF) that has to be inserted into the document

See Also:
  `Element`, `Rectangle`

### Field Summary

Fields
`protected float` `absoluteX` This is the absolute X-position of the image.
`protected float` `absoluteY` This is the absolute Y-position of the image.
`private PdfDictionary` `additional` a dictionary with additional information
`protected int` `alignment` The alignment of the Image.
`protected java.lang.String` `alt` Text that can be shown instead of the image.
`protected Annotation` `annotation` if the annotation is not null the image will be clickable.
`static int` `AX` This represents a coordinate in the transformation matrix.
`static int` `AY` This represents a coordinate in the transformation matrix.
`protected int` `bpc` The bits per component of the raw image.
`static int` `BX` This represents a coordinate in the transformation matrix.
`static int` `BY` This represents a coordinate in the transformation matrix.
`protected int` `colorspace` this is the colorspace of a jpeg-image.
`protected int` `compressionLevel` The compression level of the content streams.
`static int` `CX` This represents a coordinate in the transformation matrix.
`static int` `CY` This represents a coordinate in the transformation matrix.
`static int` `DEFAULT` this is a kind of image alignment.
`protected boolean` `deflated` Holds value of property deflated.
`private PdfIndirectReference` `directReference` Holds value of property directReference.
`protected int` `dpiX` Holds value of property dpiX.
`protected int` `dpiY` Holds value of property dpiY.
`static int` `DX` This represents a coordinate in the transformation matrix.
`static int` `DY` This represents a coordinate in the transformation matrix.
`protected Image` `imageMask` The image that serves as a mask for this image.
`protected float` `indentationLeft` the indentation to the left.
`protected float` `indentationRight` the indentation to the right.
`private float` `initialRotation` Holds value of property initialRotation.
`protected boolean` `interpolation` Holds value of property interpolation.
`protected boolean` `invert` Image color inversion
`protected PdfOCG` `layer` Optional Content layer to which we want this Image to belong.
`static int` `LEFT` this is a kind of image alignment.
`protected boolean` `mask` Is this image a mask?
`static int` `MIDDLE` this is a kind of image alignment.
`protected java.lang.Long` `mySerialId` an iText attributed unique id for this image.
`static int` `ORIGINAL_BMP` type of image
`static int` `ORIGINAL_GIF` type of image
`static int` `ORIGINAL_JBIG2` type of image
`static int` `ORIGINAL_JPEG` type of image
`static int` `ORIGINAL_JPEG2000` type of image
`static int` `ORIGINAL_NONE` type of image
`static int` `ORIGINAL_PNG` type of image
`static int` `ORIGINAL_PS` type of image
`static int` `ORIGINAL_TIFF` type of image
`static int` `ORIGINAL_WMF` type of image
`protected byte[]` `originalData` Holds value of property originalData.
`protected int` `originalType` Holds value of property originalType.
`protected float` `plainHeight` This is the width of the image without rotation.
`protected float` `plainWidth` This is the width of the image without rotation.
`protected java.awt.color.ICC_Profile` `profile` ICC Profile attached
`protected byte[]` `rawData` The raw data of the image.
`static int` `RIGHT` this is a kind of image alignment.
`protected float` `rotationRadians` This is the rotation of the image in radians.
`protected float` `scaledHeight` This is the original height of the image taking rotation into account.
`protected float` `scaledWidth` This is the scaled width of the image taking rotation into account.
`(package private) static long` `serialId` a static that is used for attributing a unique id to each image.
`private boolean` `smask` Holds value of property smask.
`protected float` `spacingAfter` The spacing after the image.
`protected float` `spacingBefore` The spacing before the image.
`protected PdfTemplate[]` `template` The template to be treated as an image.
`static int` `TEXTWRAP` this is a kind of image alignment.
`protected int[]` `transparency` this is the transparency information of the raw image
`protected int` `type` The image type.
`static int` `UNDERLYING` this is a kind of image alignment.
`protected java.net.URL` `url` The URL of the image.
`private float` `widthPercentage` Holds value of property widthPercentage.
`private float` `XYRatio` Holds value of property XYRatio.

### Fields inherited from class com.lowagie.text.Rectangle

`backgroundColor, border, borderColor, borderColorBottom, borderColorLeft, borderColorRight, borderColorTop, borderWidth, borderWidthBottom, borderWidthLeft, borderWidthRight, borderWidthTop, BOTTOM, BOX, llx, lly, NO_BORDER, rotation, TOP, UNDEFINED, urx, ury, useVariableBorders`

### Fields inherited from interface com.lowagie.text.Element

`ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_JUSTIFIED, ALIGN_JUSTIFIED_ALL, ALIGN_LEFT, ALIGN_MIDDLE, ALIGN_RIGHT, ALIGN_TOP, ALIGN_UNDEFINED, ANCHOR, ANNOTATION, AUTHOR, CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFBLOCK, CCITT_ENDOFLINE, CCITTG3_1D, CCITTG3_2D, CCITTG4, CELL, CHAPTER, CHUNK, CREATIONDATE, CREATOR, HEADER, IMGRAW, IMGTEMPLATE, JBIG2, JPEG, JPEG2000, KEYWORDS, LIST, LISTITEM, MARKED, MULTI_COLUMN_TEXT, PARAGRAPH, PHRASE, PRODUCER, PTABLE, RECTANGLE, ROW, SECTION, SUBJECT, TABLE, TITLE, YMARK`

### Constructor Summary

Constructors
`protected` `Image(Image image)` Constructs an `Image` -object, using an url .
`` `Image(java.net.URL url)` Constructs an `Image` -object, using an url .

### Method Summary

Methods
`float` `getAbsoluteX()` Returns the absolute X position.
`float` `getAbsoluteY()` Returns the absolute Y position.
`PdfDictionary` `getAdditional()` Getter for the dictionary with additional information.
`int` `getAlignment()` Gets the alignment for the image.
`java.lang.String` `getAlt()` Gets the alternative text for the image.
`Annotation` `getAnnotation()` Gets the annotation.
`int` `getBpc()` Gets the bpc for the image.
`int` `getColorspace()` Gets the colorspace for the image.
`int` `getCompressionLevel()` Returns the compression level used for images written as a compressed stream.
`PdfIndirectReference` `getDirectReference()` Getter for property directReference.
`int` `getDpiX()` Gets the dots-per-inch in the X direction.
`int` `getDpiY()` Gets the dots-per-inch in the Y direction.
`java.awt.color.ICC_Profile` `getICCProfile()` Gets the images ICC profile.
`Image` `getImageMask()` Gets the explicit masking.
`float` `getImageRotation()` Gets the current image rotation in radians.
`float` `getIndentationLeft()` Gets the left indentation.
`float` `getIndentationRight()` Gets the right indentation.
`float` `getInitialRotation()` Getter for property initialRotation.
`static Image` `getInstance(byte[] imgb)` gets an instance of an Image
`static Image` `getInstance(Image image)` gets an instance of an Image
`static Image` `getInstance(java.awt.Image image, java.awt.Color color)` Gets an instance of an Image from a java.awt.Image.
`static Image` `getInstance(java.awt.Image image, java.awt.Color color, boolean forceBW)` Gets an instance of an Image from a java.awt.Image.
`static Image` `getInstance(int width, int height, boolean reverseBits, int typeCCITT, int parameters, byte[] data)` Creates an Image with CCITT G3 or G4 compression.
`static Image` `getInstance(int width, int height, boolean reverseBits, int typeCCITT, int parameters, byte[] data, int[] transparency)` Creates an Image with CCITT G3 or G4 compression.
`static Image` `getInstance(int width, int height, byte[] data, byte[] globals)` Creates a JBIG2 Image.
`static Image` `getInstance(int width, int height, int components, int bpc, byte[] data)` Gets an instance of an Image in raw mode.
`static Image` `getInstance(int width, int height, int components, int bpc, byte[] data, int[] transparency)` Gets an instance of an Image in raw mode.
`static Image` `getInstance(PdfContentByte cb, java.awt.Image awtImage, float quality)` Gets an instance of a Image from a java.awt.Image.
`static Image` `getInstance(PdfTemplate template)` gets an instance of an Image
`static Image` `getInstance(PdfWriter writer, java.awt.Image awtImage, float quality)` Gets an instance of a Image from a java.awt.Image.
`static Image` `getInstance(PRIndirectReference ref)` Reuses an existing image.
`static Image` `getInstance(java.lang.String filename)` Gets an instance of an Image.
`static Image` `getInstance(java.net.URL url)` Gets an instance of an Image.
`PdfOCG` `getLayer()` Gets the layer this image belongs to.
`java.lang.Long` `getMySerialId()` Returns a serial id for the Image (reuse the same image more than once)
`byte[]` `getOriginalData()` Getter for property originalData.
`int` `getOriginalType()` Getter for property originalType.
`float` `getPlainHeight()` Gets the plain height of the image.
`float` `getPlainWidth()` Gets the plain width of the image.
`byte[]` `getRawData()` Gets the raw data for the image.
`float` `getScaledHeight()` Gets the scaled height of the image.
`float` `getScaledWidth()` Gets the scaled width of the image.
`protected static java.lang.Long` `getSerialId()` Creates a new serial id.
`float` `getSpacingAfter()` Gets the spacing before this image.
`float` `getSpacingBefore()` Gets the spacing before this image.
`PdfTemplate` `getTemplateData()` Gets the template to be used as an image.
`int[]` `getTransparency()` Returns the transparency.
`java.net.URL` `getUrl()` Gets the `String` -representation of the reference to the image.
`float` `getWidthPercentage()` Getter for property widthPercentage.
`float` `getXYRatio()` Gets the X/Y pixel dimensionless aspect ratio.
`boolean` `hasAbsoluteX()` Checks if the `Images` has to be added at an absolute X position.
`boolean` `hasAbsoluteY()` Checks if the `Images` has to be added at an absolute position.
`boolean` `hasICCProfile()` Checks is the image has an ICC profile.
`boolean` `isDeflated()` Getter for property deflated.
`boolean` `isImgRaw()` Returns `true` if the image is a `ImgRaw` -object.
`boolean` `isImgTemplate()` Returns `true` if the image is an `ImgTemplate` -object.
`boolean` `isInterpolation()` Getter for property interpolation.
`boolean` `isInverted()` Getter for the inverted value
`boolean` `isJpeg()` Returns `true` if the image is a `Jpeg` -object.
`boolean` `isMask()` Returns `true` if this `Image` is a mask.
`boolean` `isMaskCandidate()` Returns `true` if this `Image` has the requisites to be a mask.
`boolean` `isNestable()` Checks if this element is nestable.
`boolean` `isSmask()` Getter for property smask.
`void` `makeMask()` Make this `Image` a mask.
`float[]` `matrix()` Returns the transformation matrix of the image.
`void` `scaleAbsolute(float newWidth, float newHeight)` Scale the image to an absolute width and an absolute height.
`void` `scaleAbsoluteHeight(float newHeight)` Scale the image to an absolute height.
`void` `scaleAbsoluteWidth(float newWidth)` Scale the image to an absolute width.
`void` `scalePercent(float percent)` Scale the image to a certain percentage.
`void` `scalePercent(float percentX, float percentY)` Scale the width and height of an image to a certain percentage.
`void` `scaleToFit(float fitWidth, float fitHeight)` Scales the image so that it fits a certain width and height.
`void` `setAbsolutePosition(float absoluteX, float absoluteY)` Sets the absolute position of the `Image`.
`void` `setAdditional(PdfDictionary additional)` Sets the /Colorspace key.
`void` `setAlignment(int alignment)` Sets the alignment for the image.
`void` `setAlt(java.lang.String alt)` Sets the alternative information for the image.
`void` `setAnnotation(Annotation annotation)` Sets the annotation of this Image.
`void` `setCompressionLevel(int compressionLevel)` Sets the compression level to be used if the image is written as a compressed stream.
`void` `setDeflated(boolean deflated)` Setter for property deflated.
`void` `setDirectReference(PdfIndirectReference directReference)` Setter for property directReference.
`void` `setDpi(int dpiX, int dpiY)` Sets the dots per inch value
`void` `setImageMask(Image mask)` Sets the explicit masking.
`void` `setIndentationLeft(float f)` Sets the left indentation.
`void` `setIndentationRight(float f)` Sets the right indentation.
`void` `setInitialRotation(float initialRotation)` Some image formats, like TIFF may present the images rotated that have to be compensated.
`void` `setInterpolation(boolean interpolation)` Sets the image interpolation.
`void` `setInverted(boolean invert)` Sets inverted true or false
`void` `setLayer(PdfOCG layer)` Sets the layer this image belongs to.
`void` `setOriginalData(byte[] originalData)` Setter for property originalData.
`void` `setOriginalType(int originalType)` Setter for property originalType.
`void` `setRotation(float r)` Sets the rotation of the image in radians.
`void` `setRotationDegrees(float deg)` Sets the rotation of the image in degrees.
`void` `setSmask(boolean smask)` Setter for property smask.
`void` `setSpacingAfter(float spacing)` Sets the spacing after this image.
`void` `setSpacingBefore(float spacing)` Sets the spacing before this image.
`void` `setTemplateData(PdfTemplate template)` Sets data from a PdfTemplate
`void` `setTransparency(int[] transparency)` Sets the transparency values
`void` `setUrl(java.net.URL url)` Sets the url of the image
`void` `setWidthPercentage(float widthPercentage)` Setter for property widthPercentage.
`void` `setXYRatio(float XYRatio)` Sets the X/Y pixel dimensionless aspect ratio.
`void` `simplifyColorspace()` Replaces CalRGB and CalGray colorspaces with DeviceRGB and DeviceGray.
`private PdfObject` `simplifyColorspace(PdfArray obj)` Gets a PDF Name from an array or returns the object that was passed.
`void` `tagICC(java.awt.color.ICC_Profile profile)` Tags this image with an ICC profile.
`int` `type()` Returns the type.

### Methods inherited from class com.lowagie.text.Rectangle

`cloneNonPositionParameters, disableBorderSide, enableBorderSide, getBackgroundColor, getBorder, getBorderColor, getBorderColorBottom, getBorderColorLeft, getBorderColorRight, getBorderColorTop, getBorderWidth, getBorderWidthBottom, getBorderWidthLeft, getBorderWidthRight, getBorderWidthTop, getBottom, getBottom, getChunks, getGrayFill, getHeight, getLeft, getLeft, getRight, getRight, getRotation, getTop, getTop, getWidth, hasBorder, hasBorders, isContent, isUseVariableBorders, normalize, process, rectangle, rotate, setBackgroundColor, setBorder, setBorderColor, setBorderColorBottom, setBorderColorLeft, setBorderColorRight, setBorderColorTop, setBorderWidth, setBorderWidthBottom, setBorderWidthLeft, setBorderWidthRight, setBorderWidthTop, setBottom, setGrayFill, setLeft, setRight, setTop, setUseVariableBorders, softCloneNonPositionParameters, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### DEFAULT

    public static final int DEFAULT

this is a kind of image alignment.

See Also:
  Constant Field Values

#### RIGHT

    public static final int RIGHT

this is a kind of image alignment.

See Also:
  Constant Field Values

#### LEFT

    public static final int LEFT

this is a kind of image alignment.

See Also:
  Constant Field Values

#### MIDDLE

    public static final int MIDDLE

this is a kind of image alignment.

See Also:
  Constant Field Values

#### TEXTWRAP

    public static final int TEXTWRAP

this is a kind of image alignment.

See Also:
  Constant Field Values

#### UNDERLYING

    public static final int UNDERLYING

this is a kind of image alignment.

See Also:
  Constant Field Values

#### AX

    public static final int AX

This represents a coordinate in the transformation matrix.

See Also:
  Constant Field Values

#### AY

    public static final int AY

This represents a coordinate in the transformation matrix.

See Also:
  Constant Field Values

#### BX

    public static final int BX

This represents a coordinate in the transformation matrix.

See Also:
  Constant Field Values

#### BY

    public static final int BY

This represents a coordinate in the transformation matrix.

See Also:
  Constant Field Values

#### CX

    public static final int CX

This represents a coordinate in the transformation matrix.

See Also:
  Constant Field Values

#### CY

    public static final int CY

This represents a coordinate in the transformation matrix.

See Also:
  Constant Field Values

#### DX

    public static final int DX

This represents a coordinate in the transformation matrix.

See Also:
  Constant Field Values

#### DY

    public static final int DY

This represents a coordinate in the transformation matrix.

See Also:
  Constant Field Values

#### ORIGINAL_NONE

    public static final int ORIGINAL_NONE

type of image

See Also:
  Constant Field Values

#### ORIGINAL_JPEG

    public static final int ORIGINAL_JPEG

type of image

See Also:
  Constant Field Values

#### ORIGINAL_PNG

    public static final int ORIGINAL_PNG

type of image

See Also:
  Constant Field Values

#### ORIGINAL_GIF

    public static final int ORIGINAL_GIF

type of image

See Also:
  Constant Field Values

#### ORIGINAL_BMP

    public static final int ORIGINAL_BMP

type of image

See Also:
  Constant Field Values

#### ORIGINAL_TIFF

    public static final int ORIGINAL_TIFF

type of image

See Also:
  Constant Field Values

#### ORIGINAL_WMF

    public static final int ORIGINAL_WMF

type of image

See Also:
  Constant Field Values

#### ORIGINAL_PS

    public static final int ORIGINAL_PS

type of image

See Also:
  Constant Field Values

#### ORIGINAL_JPEG2000

    public static final int ORIGINAL_JPEG2000

type of image

See Also:
  Constant Field Values

#### ORIGINAL_JBIG2

    public static final int ORIGINAL_JBIG2

type of image

Since:
  2.1.5
See Also:
  Constant Field Values

#### type

    protected int type

The image type.

#### url

    protected java.net.URL url

The URL of the image.

#### rawData

    protected byte[] rawData

The raw data of the image.

#### bpc

    protected int bpc

The bits per component of the raw image. It also flags a CCITT image.

#### template

    protected PdfTemplate[] template

The template to be treated as an image.

#### alignment

    protected int alignment

The alignment of the Image.

#### alt

    protected java.lang.String alt

Text that can be shown instead of the image.

#### absoluteX

    protected float absoluteX

This is the absolute X-position of the image.

#### absoluteY

    protected float absoluteY

This is the absolute Y-position of the image.

#### plainWidth

    protected float plainWidth

This is the width of the image without rotation.

#### plainHeight

    protected float plainHeight

This is the width of the image without rotation.

#### scaledWidth

    protected float scaledWidth

This is the scaled width of the image taking rotation into account.

#### scaledHeight

    protected float scaledHeight

This is the original height of the image taking rotation into account.

#### compressionLevel

    protected int compressionLevel

The compression level of the content streams.

Since:
  2.1.3

#### mySerialId

    protected java.lang.Long mySerialId

an iText attributed unique id for this image.

#### directReference

    private PdfIndirectReference directReference

Holds value of property directReference. An image is embedded into a PDF as an Image XObject. This object is referenced by a PdfIndirectReference object.

#### serialId

    static long serialId

a static that is used for attributing a unique id to each image.

#### rotationRadians

    protected float rotationRadians

This is the rotation of the image in radians.

#### initialRotation

    private float initialRotation

Holds value of property initialRotation.

#### indentationLeft

    protected float indentationLeft

the indentation to the left.

#### indentationRight

    protected float indentationRight

the indentation to the right.

#### spacingBefore

    protected float spacingBefore

The spacing before the image.

#### spacingAfter

    protected float spacingAfter

The spacing after the image.

#### widthPercentage

    private float widthPercentage

Holds value of property widthPercentage.

#### annotation

    protected Annotation annotation

if the annotation is not null the image will be clickable.

#### layer

    protected PdfOCG layer

Optional Content layer to which we want this Image to belong.

#### interpolation

    protected boolean interpolation

Holds value of property interpolation.

#### originalType

    protected int originalType

Holds value of property originalType.

#### originalData

    protected byte[] originalData

Holds value of property originalData.

#### deflated

    protected boolean deflated

Holds value of property deflated.

#### dpiX

    protected int dpiX

Holds value of property dpiX.

#### dpiY

    protected int dpiY

Holds value of property dpiY.

#### XYRatio

    private float XYRatio

Holds value of property XYRatio.

#### colorspace

    protected int colorspace

this is the colorspace of a jpeg-image.

#### invert

    protected boolean invert

Image color inversion

#### profile

    protected java.awt.color.ICC_Profile profile

ICC Profile attached

#### additional

    private PdfDictionary additional

a dictionary with additional information

#### mask

    protected boolean mask

Is this image a mask?

#### imageMask

    protected Image imageMask

The image that serves as a mask for this image.

#### smask

    private boolean smask

Holds value of property smask.

#### transparency

    protected int[] transparency

this is the transparency information of the raw image

### Constructor Detail

#### Image

    public Image(java.net.URL url)

Constructs an `Image` -object, using an url .

Parameters:
  `url` - the `URL` where the image can be found.

#### Image

    protected Image(Image image)

Constructs an `Image` -object, using an url .

Parameters:
  `image` - another Image object.

### Method Detail

#### getInstance

    public static Image getInstance(java.net.URL url)
                             throws BadElementException,
                                    java.net.MalformedURLException,
                                    java.io.IOException

Gets an instance of an Image.

Parameters:
  `url` - an URL
Returns:
  an Image
Throws:
  `BadElementException`
  `java.net.MalformedURLException`
  `java.io.IOException`

#### getInstance

    public static Image getInstance(java.lang.String filename)
                             throws BadElementException,
                                    java.net.MalformedURLException,
                                    java.io.IOException

Gets an instance of an Image.

Parameters:
  `filename` - a filename
Returns:
  an object of type `Gif`,`Jpeg` or `Png`
Throws:
  `BadElementException`
  `java.net.MalformedURLException`
  `java.io.IOException`

#### getInstance

    public static Image getInstance(byte[] imgb)
                             throws BadElementException,
                                    java.net.MalformedURLException,
                                    java.io.IOException

gets an instance of an Image

Parameters:
  `imgb` - raw image date
Returns:
  an Image object
Throws:
  `BadElementException`
  `java.net.MalformedURLException`
  `java.io.IOException`

#### getInstance

    public static Image getInstance(int width,
                    int height,
                    int components,
                    int bpc,
                    byte[] data)
                             throws BadElementException

Gets an instance of an Image in raw mode.

Parameters:
  `width` - the width of the image in pixels
  `height` - the height of the image in pixels
  `components` - 1,3 or 4 for GrayScale, RGB and CMYK
  `data` - the image data
  `bpc` - bits per component
Returns:
  an object of type `ImgRaw`
Throws:
  `BadElementException` - on error

#### getInstance

    public static Image getInstance(int width,
                    int height,
                    byte[] data,
                    byte[] globals)

Creates a JBIG2 Image.

Parameters:
  `width` - the width of the image
  `height` - the height of the image
  `data` - the raw image data
  `globals` - JBIG2 globals
Since:
  2.1.5

#### getInstance

    public static Image getInstance(int width,
                    int height,
                    boolean reverseBits,
                    int typeCCITT,
                    int parameters,
                    byte[] data)
                             throws BadElementException

Creates an Image with CCITT G3 or G4 compression. It assumes that the data bytes are already compressed.

Parameters:
  `width` - the exact width of the image
  `height` - the exact height of the image
  `reverseBits` - reverses the bits in `data`. Bit 0 is swapped with bit 7 and so on
  `typeCCITT` - the type of compression in `data`. It can be CCITTG4, CCITTG31D, CCITTG32D
  `parameters` - parameters associated with this stream. Possible values are CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFLINE and CCITT_ENDOFBLOCK or a combination of them
  `data` - the image data
Returns:
  an Image object
Throws:
  `BadElementException` - on error

#### getInstance

    public static Image getInstance(int width,
                    int height,
                    boolean reverseBits,
                    int typeCCITT,
                    int parameters,
                    byte[] data,
                    int[] transparency)
                             throws BadElementException

Creates an Image with CCITT G3 or G4 compression. It assumes that the data bytes are already compressed.

Parameters:
  `width` - the exact width of the image
  `height` - the exact height of the image
  `reverseBits` - reverses the bits in `data`. Bit 0 is swapped with bit 7 and so on
  `typeCCITT` - the type of compression in `data`. It can be CCITTG4, CCITTG31D, CCITTG32D
  `parameters` - parameters associated with this stream. Possible values are CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFLINE and CCITT_ENDOFBLOCK or a combination of them
  `data` - the image data
  `transparency` - transparency information in the Mask format of the image dictionary
Returns:
  an Image object
Throws:
  `BadElementException` - on error

#### getInstance

    public static Image getInstance(int width,
                    int height,
                    int components,
                    int bpc,
                    byte[] data,
                    int[] transparency)
                             throws BadElementException

Gets an instance of an Image in raw mode.

Parameters:
  `width` - the width of the image in pixels
  `height` - the height of the image in pixels
  `components` - 1,3 or 4 for GrayScale, RGB and CMYK
  `data` - the image data
  `bpc` - bits per component
  `transparency` - transparency information in the Mask format of the image dictionary
Returns:
  an object of type `ImgRaw`
Throws:
  `BadElementException` - on error

#### getInstance

    public static Image getInstance(PdfTemplate template)
                             throws BadElementException

gets an instance of an Image

Parameters:
  `template` - a PdfTemplate that has to be wrapped in an Image object
Returns:
  an Image object
Throws:
  `BadElementException`

#### getInstance

    public static Image getInstance(java.awt.Image image,
                    java.awt.Color color,
                    boolean forceBW)
                             throws BadElementException,
                                    java.io.IOException

Gets an instance of an Image from a java.awt.Image.

Parameters:
  `image` - the `java.awt.Image` to convert
  `color` - if different from `null` the transparency pixels are replaced by this color
  `forceBW` - if `true` the image is treated as black and white
Returns:
  an object of type `ImgRaw`
Throws:
  `BadElementException` - on error
  `java.io.IOException` - on error

#### getInstance

    public static Image getInstance(java.awt.Image image,
                    java.awt.Color color)
                             throws BadElementException,
                                    java.io.IOException

Gets an instance of an Image from a java.awt.Image.

Parameters:
  `image` - the `java.awt.Image` to convert
  `color` - if different from `null` the transparency pixels are replaced by this color
Returns:
  an object of type `ImgRaw`
Throws:
  `BadElementException` - on error
  `java.io.IOException` - on error

#### getInstance

    public static Image getInstance(PdfWriter writer,
                    java.awt.Image awtImage,
                    float quality)
                             throws BadElementException,
                                    java.io.IOException

Gets an instance of a Image from a java.awt.Image. The image is added as a JPEG with a user defined quality.

Parameters:
  `writer` - the `PdfWriter` object to which the image will be added
  `awtImage` - the `java.awt.Image` to convert
  `quality` - a float value between 0 and 1
Returns:
  an object of type `PdfTemplate`
Throws:
  `BadElementException` - on error
  `java.io.IOException`

#### getInstance

    public static Image getInstance(PdfContentByte cb,
                    java.awt.Image awtImage,
                    float quality)
                             throws BadElementException,
                                    java.io.IOException

Gets an instance of a Image from a java.awt.Image. The image is added as a JPEG with a user defined quality.

Parameters:
  `cb` - the `PdfContentByte` object to which the image will be added
  `awtImage` - the `java.awt.Image` to convert
  `quality` - a float value between 0 and 1
Returns:
  an object of type `PdfTemplate`
Throws:
  `BadElementException` - on error
  `java.io.IOException`

#### getDirectReference

    public PdfIndirectReference getDirectReference()

Getter for property directReference.

Returns:
  Value of property directReference.

#### setDirectReference

    public void setDirectReference(PdfIndirectReference directReference)

Setter for property directReference.

Parameters:
  `directReference` - New value of property directReference.

#### getInstance

    public static Image getInstance(PRIndirectReference ref)
                             throws BadElementException

Reuses an existing image.

Parameters:
  `ref` - the reference to the image dictionary
Returns:
  the image
Throws:
  `BadElementException` - on error

#### getInstance

    public static Image getInstance(Image image)

gets an instance of an Image

Parameters:
  `image` - an Image object
Returns:
  a new Image object

#### type

    public int type()

Returns the type.

Specified by:
  `type` in interface `Element`
Overrides:
  `type` in class `Rectangle`
Returns:
  a type

#### isNestable

    public boolean isNestable()

Description copied from interface: `Element`
Checks if this element is nestable.

Specified by:
  `isNestable` in interface `Element`
Overrides:
  `isNestable` in class `Rectangle`
Returns:
  true if this element can be nested inside other elements.
Since:
  iText 2.0.8
See Also:
  `Element.isNestable()`

#### isJpeg

    public boolean isJpeg()

Returns `true` if the image is a `Jpeg` -object.

Returns:
  a `boolean`

#### isImgRaw

    public boolean isImgRaw()

Returns `true` if the image is a `ImgRaw` -object.

Returns:
  a `boolean`

#### isImgTemplate

    public boolean isImgTemplate()

Returns `true` if the image is an `ImgTemplate` -object.

Returns:
  a `boolean`

#### getUrl

    public java.net.URL getUrl()

Gets the `String` -representation of the reference to the image.

Returns:
  a `String`

#### setUrl

    public void setUrl(java.net.URL url)

Sets the url of the image

Parameters:
  `url` - the url of the image

#### getRawData

    public byte[] getRawData()

Gets the raw data for the image.

Remark: this only makes sense for Images of the type `RawImage` .

Returns:
  the raw data

#### getBpc

    public int getBpc()

Gets the bpc for the image.

Remark: this only makes sense for Images of the type `RawImage` .

Returns:
  a bpc value

#### getTemplateData

    public PdfTemplate getTemplateData()

Gets the template to be used as an image.

Remark: this only makes sense for Images of the type `ImgTemplate` .

Returns:
  the template

#### setTemplateData

    public void setTemplateData(PdfTemplate template)

Sets data from a PdfTemplate

Parameters:
  `template` - the template with the content

#### getAlignment

    public int getAlignment()

Gets the alignment for the image.

Returns:
  a value

#### setAlignment

    public void setAlignment(int alignment)

Sets the alignment for the image.

Parameters:
  `alignment` - the alignment

#### getAlt

    public java.lang.String getAlt()

Gets the alternative text for the image.

Returns:
  a `String`

#### setAlt

    public void setAlt(java.lang.String alt)

Sets the alternative information for the image.

Parameters:
  `alt` - the alternative information

#### setAbsolutePosition

    public void setAbsolutePosition(float absoluteX,
                           float absoluteY)

Sets the absolute position of the `Image`.

Parameters:
  `absoluteX` -
  `absoluteY` -

#### hasAbsoluteX

    public boolean hasAbsoluteX()

Checks if the `Images` has to be added at an absolute X position.

Returns:
  a boolean

#### getAbsoluteX

    public float getAbsoluteX()

Returns the absolute X position.

Returns:
  a position

#### hasAbsoluteY

    public boolean hasAbsoluteY()

Checks if the `Images` has to be added at an absolute position.

Returns:
  a boolean

#### getAbsoluteY

    public float getAbsoluteY()

Returns the absolute Y position.

Returns:
  a position

#### getScaledWidth

    public float getScaledWidth()

Gets the scaled width of the image.

Returns:
  a value

#### getScaledHeight

    public float getScaledHeight()

Gets the scaled height of the image.

Returns:
  a value

#### getPlainWidth

    public float getPlainWidth()

Gets the plain width of the image.

Returns:
  a value

#### getPlainHeight

    public float getPlainHeight()

Gets the plain height of the image.

Returns:
  a value

#### scaleAbsolute

    public void scaleAbsolute(float newWidth,
                     float newHeight)

Scale the image to an absolute width and an absolute height.

Parameters:
  `newWidth` - the new width
  `newHeight` - the new height

#### scaleAbsoluteWidth

    public void scaleAbsoluteWidth(float newWidth)

Scale the image to an absolute width.

Parameters:
  `newWidth` - the new width

#### scaleAbsoluteHeight

    public void scaleAbsoluteHeight(float newHeight)

Scale the image to an absolute height.

Parameters:
  `newHeight` - the new height

#### scalePercent

    public void scalePercent(float percent)

Scale the image to a certain percentage.

Parameters:
  `percent` - the scaling percentage

#### scalePercent

    public void scalePercent(float percentX,
                    float percentY)

Scale the width and height of an image to a certain percentage.

Parameters:
  `percentX` - the scaling percentage of the width
  `percentY` - the scaling percentage of the height

#### scaleToFit

    public void scaleToFit(float fitWidth,
                  float fitHeight)

Scales the image so that it fits a certain width and height.

Parameters:
  `fitWidth` - the width to fit
  `fitHeight` - the height to fit

#### matrix

    public float[] matrix()

Returns the transformation matrix of the image.

Returns:
  an array [AX, AY, BX, BY, CX, CY, DX, DY]

#### getSerialId

    protected static java.lang.Long getSerialId()

Creates a new serial id.

#### getMySerialId

    public java.lang.Long getMySerialId()

Returns a serial id for the Image (reuse the same image more than once)

Returns:
  a serialId

#### getImageRotation

    public float getImageRotation()

Gets the current image rotation in radians.

Returns:
  the current image rotation in radians

#### setRotation

    public void setRotation(float r)

Sets the rotation of the image in radians.

Parameters:
  `r` - rotation in radians

#### setRotationDegrees

    public void setRotationDegrees(float deg)

Sets the rotation of the image in degrees.

Parameters:
  `deg` - rotation in degrees

#### getInitialRotation

    public float getInitialRotation()

Getter for property initialRotation.

Returns:
  Value of property initialRotation.

#### setInitialRotation

    public void setInitialRotation(float initialRotation)

Some image formats, like TIFF may present the images rotated that have to be compensated.

Parameters:
  `initialRotation` - New value of property initialRotation.

#### getIndentationLeft

    public float getIndentationLeft()

Gets the left indentation.

Returns:
  the left indentation

#### setIndentationLeft

    public void setIndentationLeft(float f)

Sets the left indentation.

Parameters:
  `f` -

#### getIndentationRight

    public float getIndentationRight()

Gets the right indentation.

Returns:
  the right indentation

#### setIndentationRight

    public void setIndentationRight(float f)

Sets the right indentation.

Parameters:
  `f` -

#### getSpacingBefore

    public float getSpacingBefore()

Gets the spacing before this image.

Returns:
  the spacing

#### setSpacingBefore

    public void setSpacingBefore(float spacing)

Sets the spacing before this image.

Parameters:
  `spacing` - the new spacing

#### getSpacingAfter

    public float getSpacingAfter()

Gets the spacing before this image.

Returns:
  the spacing

#### setSpacingAfter

    public void setSpacingAfter(float spacing)

Sets the spacing after this image.

Parameters:
  `spacing` - the new spacing

#### getWidthPercentage

    public float getWidthPercentage()

Getter for property widthPercentage.

Returns:
  Value of property widthPercentage.

#### setWidthPercentage

    public void setWidthPercentage(float widthPercentage)

Setter for property widthPercentage.

Parameters:
  `widthPercentage` - New value of property widthPercentage.

#### setAnnotation

    public void setAnnotation(Annotation annotation)

Sets the annotation of this Image.

Parameters:
  `annotation` - the annotation

#### getAnnotation

    public Annotation getAnnotation()

Gets the annotation.

Returns:
  the annotation that is linked to this image

#### getLayer

    public PdfOCG getLayer()

Gets the layer this image belongs to.

Returns:
  the layer this image belongs to or `null` for no layer defined

#### setLayer

    public void setLayer(PdfOCG layer)

Sets the layer this image belongs to.

Parameters:
  `layer` - the layer this image belongs to

#### isInterpolation

    public boolean isInterpolation()

Getter for property interpolation.

Returns:
  Value of property interpolation.

#### setInterpolation

    public void setInterpolation(boolean interpolation)

Sets the image interpolation. Image interpolation attempts to produce a smooth transition between adjacent sample values.

Parameters:
  `interpolation` - New value of property interpolation.

#### getOriginalType

    public int getOriginalType()

Getter for property originalType.

Returns:
  Value of property originalType.

#### setOriginalType

    public void setOriginalType(int originalType)

Setter for property originalType.

Parameters:
  `originalType` - New value of property originalType.

#### getOriginalData

    public byte[] getOriginalData()

Getter for property originalData.

Returns:
  Value of property originalData.

#### setOriginalData

    public void setOriginalData(byte[] originalData)

Setter for property originalData.

Parameters:
  `originalData` - New value of property originalData.

#### isDeflated

    public boolean isDeflated()

Getter for property deflated.

Returns:
  Value of property deflated.

#### setDeflated

    public void setDeflated(boolean deflated)

Setter for property deflated.

Parameters:
  `deflated` - New value of property deflated.

#### getDpiX

    public int getDpiX()

Gets the dots-per-inch in the X direction. Returns 0 if not available.

Returns:
  the dots-per-inch in the X direction

#### getDpiY

    public int getDpiY()

Gets the dots-per-inch in the Y direction. Returns 0 if not available.

Returns:
  the dots-per-inch in the Y direction

#### setDpi

    public void setDpi(int dpiX,
              int dpiY)

Sets the dots per inch value

Parameters:
  `dpiX` - dpi for x coordinates
  `dpiY` - dpi for y coordinates

#### getXYRatio

    public float getXYRatio()

Gets the X/Y pixel dimensionless aspect ratio.

Returns:
  the X/Y pixel dimensionless aspect ratio

#### setXYRatio

    public void setXYRatio(float XYRatio)

Sets the X/Y pixel dimensionless aspect ratio.

Parameters:
  `XYRatio` - the X/Y pixel dimensionless aspect ratio

#### getColorspace

    public int getColorspace()

Gets the colorspace for the image.

Remark: this only makes sense for Images of the type `Jpeg`.

Returns:
  a colorspace value

#### isInverted

    public boolean isInverted()

Getter for the inverted value

Returns:
  true if the image is inverted

#### setInverted

    public void setInverted(boolean invert)

Sets inverted true or false

Parameters:
  `invert` - true or false

#### tagICC

    public void tagICC(java.awt.color.ICC_Profile profile)

Tags this image with an ICC profile.

Parameters:
  `profile` - the profile

#### hasICCProfile

    public boolean hasICCProfile()

Checks is the image has an ICC profile.

Returns:
  the ICC profile or `null`

#### getICCProfile

    public java.awt.color.ICC_Profile getICCProfile()

Gets the images ICC profile.

Returns:
  the ICC profile

#### getAdditional

    public PdfDictionary getAdditional()

Getter for the dictionary with additional information.

Returns:
  a PdfDictionary with additional information.

#### setAdditional

    public void setAdditional(PdfDictionary additional)

Sets the /Colorspace key.

Parameters:
  `additional` - a PdfDictionary with additional information.

#### simplifyColorspace

    public void simplifyColorspace()

Replaces CalRGB and CalGray colorspaces with DeviceRGB and DeviceGray.

#### simplifyColorspace

    private PdfObject simplifyColorspace(PdfArray obj)

Gets a PDF Name from an array or returns the object that was passed.

#### isMask

    public boolean isMask()

Returns `true` if this `Image` is a mask.

Returns:
  `true` if this `Image` is a mask

#### makeMask

    public void makeMask()
                  throws DocumentException

Make this `Image` a mask.

Throws:
  `DocumentException` - if this `Image` can not be a mask

#### isMaskCandidate

    public boolean isMaskCandidate()

Returns `true` if this `Image` has the requisites to be a mask.

Returns:
  `true` if this `Image` can be a mask

#### getImageMask

    public Image getImageMask()

Gets the explicit masking.

Returns:
  the explicit masking

#### setImageMask

    public void setImageMask(Image mask)
                      throws DocumentException

Sets the explicit masking.

Parameters:
  `mask` - the mask to be applied
Throws:
  `DocumentException` - on error

#### isSmask

    public boolean isSmask()

Getter for property smask.

Returns:
  Value of property smask.

#### setSmask

    public void setSmask(boolean smask)

Setter for property smask.

Parameters:
  `smask` - New value of property smask.

#### getTransparency

    public int[] getTransparency()

Returns the transparency.

Returns:
  the transparency values

#### setTransparency

    public void setTransparency(int[] transparency)

Sets the transparency values

Parameters:
  `transparency` - the transparency values

#### getCompressionLevel

    public int getCompressionLevel()

Returns the compression level used for images written as a compressed stream.

Returns:
  the compression level (0 = best speed, 9 = best compression, -1 is default)
Since:
  2.1.3

#### setCompressionLevel

    public void setCompressionLevel(int compressionLevel)

Sets the compression level to be used if the image is written as a compressed stream.

Parameters:
  `compressionLevel` - a value between 0 (best speed) and 9 (best compression)
Since:
  2.1.3