## com.lowagie.text
Class Image

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

All Implemented Interfaces:
  Element, MarkupAttributes

Direct Known Subclasses:
  ImgCCITT, ImgPostscript, ImgRaw, ImgTemplate, ImgWMF, Jpeg, Watermark

    public abstract class Image

extends Rectangle
implements Element, MarkupAttributes

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
`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`
`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` this is 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.
`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.
`private static java.lang.String` `excUri`
`private static java.lang.String[]` `excUriEsc`
`protected Image` `imageMask`
`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`
`static int` `LEFT` this is a kind of image alignment.
`protected java.util.Properties` `markupAttributes` Contains extra markupAttributes
`protected boolean` `mask`
`static int` `MIDDLE` this is a kind of image alignment.
`protected java.lang.Long` `mySerialId`
`static int` `ORIGINAL_BMP` type of image
`static int` `ORIGINAL_GIF` type of image
`static int` `ORIGINAL_JPEG` 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` `rotation` This is the rotation of the image.
`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`
`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 imagetype.
`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
`background, border, borderColorBottom, borderColorLeft, borderColorRight, borderColorTop, borderWidth, borderWidthBottom, borderWidthLeft, borderWidthRight, borderWidthTop, BOTTOM, BOX, color, llx, lly, NO_BORDER, TOP, UNDEFINED, urx, ury, useVariableBorders`

Constructor Summary
`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
`float` `absoluteX()` Returns the absolute X position.
`float` `absoluteY()` Returns the absolute Y position.
`int` `alignment()` Gets the alignment for the image.
`java.lang.String` `alt()` Gets the alternative text for the image.
`Annotation` `annotation()` Gets the annotation.
`int` `bpc()` Gets the bpc for the image.
`int` `colorspace()` Gets the colorspace for the image.
`PdfDictionary` `getAdditional()` Getter for property indexed.
`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` `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, 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.util.Properties attributes)` Returns an `Image` that has been constructed taking in account the value of some attributes .
`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.String` `getMarkupAttribute(java.lang.String name)` Returns the value of the specified attribute.
`java.util.Set` `getMarkupAttributeNames()` Returns a `Set` of `String` attribute names for the `MarkupAttributes` implementor.
`java.util.Properties` `getMarkupAttributes()` Return a `Properties`-object containing all the markupAttributes.
`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.
`protected static java.lang.Long` `getSerialId()`
`int[]` `getTransparency()` Returns the transparency.
`float` `getWidthPercentage()` Getter for property widthPercentage.
`float` `getXYRatio()` Gets the X/Y pixel dimensionless aspect ratio.
`boolean` `hasAbsolutePosition()` Checks if the `Images` has to be added at an absolute position.
`boolean` `hasAbsoluteX()` Checks if the `Images` has to be added at an absolute X position.
`boolean` `hasICCProfile()` Checks is the image has an ICC profile.
`float` `indentationLeft()` Gets the left indentation.
`float` `indentationRight()` Gets the right indentation.
`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` `isInvertMask()` Returns `true` if the bits are to be inverted in the mask.
`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` `isSmask()` Getter for property smask.
`static boolean` `isTag(java.lang.String tag)` Checks if a given tag corresponds with this object.
`void` `makeMask()` Make this `Image` a mask.
`float[]` `matrix()` Returns the transformation matrix of the image.
`float` `plainHeight()` Gets the plain height of the image.
`float` `plainWidth()` Gets the plain width of the image.
`byte[]` `rawData()` Gets the raw data for 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.
`float` `scaledHeight()` Gets the scaled height of the image.
`float` `scaledWidth()` Gets the scaled width of the image.
`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` `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` `setInvertMask(boolean invert)` Inverts the meaning of the bits of a mask.
`void` `setLayer(PdfOCG layer)` Sets the layer this image belongs to.
`void` `setMarkupAttribute(java.lang.String name, java.lang.String value)` Sets the specified attribute.
`void` `setMarkupAttributes(java.util.Properties markupAttributes)` Sets the markupAttributes.
`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(PdfObject obj)`
`static void` `skip(java.io.InputStream is, int size)` This method is an alternative for the `InputStream.skip()` -method that doesn't seem to work properly for big values of `size` .
`float` `spacingAfter()` Gets the spacing before this image.
`float` `spacingBefore()` Gets the spacing before this image.
`void` `tagICC(java.awt.color.ICC_Profile profile)` Tags this image with an ICC profile.
`PdfTemplate` `templateData()` Gets the template to be used as an image.
`static java.net.URL` `toURL(java.lang.String filename)` This method makes a valid URL from a given filename.
`int` `type()` Returns the type.
`static java.lang.String` `unEscapeURL(java.lang.String src)` Unescapes an URL.
`java.net.URL` `url()` Gets the `String` -representation of the reference to the image.

Methods inherited from class com.lowagie.text.Rectangle

`backgroundColor, border, borderColor, borderWidth, bottom, bottom, cloneNonPositionParameters, disableBorderSide, enableBorderSide, getBorderColorBottom, getBorderColorLeft, getBorderColorRight, getBorderColorTop, getBorderWidthBottom, getBorderWidthLeft, getBorderWidthRight, getBorderWidthTop, getChunks, getRotation, grayFill, hasBorder, hasBorders, height, isUseVariableBorders, left, left, normalize, process, rectangle, right, right, rotate, setBackgroundColor, setBorder, setBorderColor, setBorderColorBottom, setBorderColorLeft, setBorderColorRight, setBorderColorTop, setBorderWidth, setBorderWidthBottom, setBorderWidthLeft, setBorderWidthRight, setBorderWidthTop, setBottom, setGrayFill, setLeft, setRight, setTop, setUseVariableBorders, softCloneNonPositionParameters, top, top, toString, width`

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

### invert

    protected boolean invert

  Image color inversion

### type

    protected int type

  The imagetype.

### url

    protected java.net.URL url

  The URL of the image.

### rawData

    protected byte[] rawData

  The raw data of the 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.

### rotation

    protected float rotation

  This is the rotation of the image.

### colorspace

    protected int colorspace

  this is the colorspace of a jpeg-image.

### bpc

    protected int bpc

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

### transparency

    protected int[] transparency

  this is the transparency information of the raw image

### indentationLeft

    protected float indentationLeft

  the indentation to the left.

### indentationRight

    protected float indentationRight

  the indentation to the right.

### mySerialId

    protected java.lang.Long mySerialId

### serialId

    static long serialId

### dpiX

    protected int dpiX

  Holds value of property dpiX.

### dpiY

    protected int dpiY

  Holds value of property dpiY.

### mask

    protected boolean mask

### imageMask

    protected Image imageMask

### interpolation

    protected boolean interpolation

  Holds value of property interpolation.

### annotation

    protected Annotation annotation

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

### markupAttributes

    protected java.util.Properties markupAttributes

  Contains extra markupAttributes

### profile

    protected java.awt.color.ICC_Profile profile

  ICC Profile attached

### deflated

    protected boolean deflated

  Holds value of property deflated.

### additional

    private PdfDictionary additional

### smask

    private boolean smask

  Holds value of property smask.

### XYRatio

    private float XYRatio

  Holds value of property XYRatio.

### originalType

    protected int originalType

  Holds value of property originalType.

### originalData

    protected byte[] originalData

  Holds value of property originalData.

### 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.

### layer

    protected PdfOCG layer

### initialRotation

    private float initialRotation

  Holds value of property initialRotation.

### excUri

    private static java.lang.String excUri

### excUriEsc

    private static java.lang.String[] excUriEsc

### directReference

    private PdfIndirectReference directReference

  Holds value of property directReference.

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(Image image)

  gets an instance of an Image

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

### 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(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(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 userdefined 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 userdefined 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`

### 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(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(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(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(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(java.util.Properties attributes)
                             throws BadElementException,
                                    java.net.MalformedURLException,
                                    java.io.IOException

  Returns an `Image` that has been constructed taking in account the value of some attributes .

  Parameters:
    `attributes` - Some attributes
  Returns:
    an `Image`
  Throws:
    `BadElementException`
    `java.net.MalformedURLException`
    `java.io.IOException`

### setAlignment

    public void setAlignment(int alignment)

  Sets the alignment for the image.

  Parameters:
    `alignment` - the alignment

### 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` -

### 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

### 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

### setAnnotation

    public void setAnnotation(Annotation annotation)

  Sets the annotation of this Image.

  Parameters:
    `annotation` - the annotation

### annotation

    public Annotation annotation()

  Gets the annotation.

  Returns:
    the annotation that is linked to this image

### bpc

    public int bpc()

  Gets the bpc for the image.

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

  Returns:
    a bpc value

### rawData

    public byte[] rawData()

  Gets the raw data for the image.

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

  Returns:
    the raw data

### templateData

    public PdfTemplate templateData()

  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

### hasAbsolutePosition

    public boolean hasAbsolutePosition()

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

  Returns:
    a boolean

### hasAbsoluteX

    public boolean hasAbsoluteX()

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

  Returns:
    a boolean

### absoluteX

    public float absoluteX()

  Returns the absolute X position.

  Returns:
    a position

### absoluteY

    public float absoluteY()

  Returns the absolute Y position.

  Returns:
    a position

### type

    public int type()

  Returns the type.

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

### 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`

### url

    public java.net.URL url()

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

  Returns:
    a `String`

### alignment

    public int alignment()

  Gets the alignment for the image.

  Returns:
    a value

### alt

    public java.lang.String alt()

  Gets the alternative text for the image.

  Returns:
    a `String`

### scaledWidth

    public float scaledWidth()

  Gets the scaled width of the image.

  Returns:
    a value

### scaledHeight

    public float scaledHeight()

  Gets the scaled height of the image.

  Returns:
    a value

### colorspace

    public int colorspace()

  Gets the colorspace for the image.

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

  Returns:
    a colorspace value

### matrix

    public float[] matrix()

  Returns the transformation matrix of the image.

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

### skip

    public static void skip(java.io.InputStream is,
                            int size)
                     throws java.io.IOException

  This method is an alternative for the `InputStream.skip()` -method that doesn't seem to work properly for big values of `size` .

  Parameters:
    `is` - the `InputStream`
    `size` - the number of bytes to skip
  Throws:
    `java.io.IOException`

### toURL

    public static java.net.URL toURL(java.lang.String filename)
                              throws java.net.MalformedURLException

  This method makes a valid URL from a given filename.

  This method makes the conversion of this library from the JAVA 2 platform to a JDK1.1.x-version easier.

  Parameters:
    `filename` - a given filename
  Returns:
    a valid URL
  Throws:
    `java.net.MalformedURLException`

### unEscapeURL

    public static java.lang.String unEscapeURL(java.lang.String src)

  Unescapes an URL. All the "%xx" are replaced by the 'xx' hex char value.

  Parameters:
    `src` - the url to unescape
  Returns:
    the eunescaped value

### 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

### isTag

    public static boolean isTag(java.lang.String tag)

  Checks if a given tag corresponds with this object.

  Parameters:
    `tag` - the given tag
  Returns:
    true if the tag corresponds

### plainWidth

    public float plainWidth()

  Gets the plain width of the image.

  Returns:
    a value

### plainHeight

    public float plainHeight()

  Gets the plain height of the image.

  Returns:
    a value

### getSerialId

    protected static java.lang.Long getSerialId()

### getMySerialId

    public java.lang.Long getMySerialId()

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

  Returns:
    a serialId

### 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

### 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

### makeMask

    public void makeMask()
                  throws DocumentException

  Make this `Image` a mask.

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

### setImageMask

    public void setImageMask(Image mask)
                      throws DocumentException

  Sets the explicit masking.

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

### getImageMask

    public Image getImageMask()

  Gets the explicit masking.

  Returns:
    the explicit masking

### isMask

    public boolean isMask()

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

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

### setInvertMask

    public void setInvertMask(boolean invert)

  Inverts the meaning of the bits of a mask.

  Parameters:
    `invert` - `true` to invert the meaning of the bits of a mask

### isInvertMask

    public boolean isInvertMask()

  Returns `true` if the bits are to be inverted in the mask.

  Returns:
    `true` if the bits are to be inverted in the mask

### 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

### 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.

### setMarkupAttribute

    public void setMarkupAttribute(java.lang.String name,
                                   java.lang.String value)

  Description copied from interface: `MarkupAttributes`
  Sets the specified attribute.

  Specified by:
    `setMarkupAttribute` in interface `MarkupAttributes`
  Overrides:
    `setMarkupAttribute` in class `Rectangle`
  Parameters:
    `name` - `String` attribute name.
    `value` - `String` attribute value.
  See Also:
    `MarkupAttributes.setMarkupAttribute(java.lang.String, java.lang.String)`

### setMarkupAttributes

    public void setMarkupAttributes(java.util.Properties markupAttributes)

  Description copied from interface: `MarkupAttributes`
  Sets the markupAttributes.

  Specified by:
    `setMarkupAttributes` in interface `MarkupAttributes`
  Overrides:
    `setMarkupAttributes` in class `Rectangle`
  Parameters:
    `markupAttributes` - a `Properties`-object containing markupattributes
  See Also:
    `MarkupAttributes.setMarkupAttributes(java.util.Properties)`

### getMarkupAttribute

    public java.lang.String getMarkupAttribute(java.lang.String name)

  Description copied from interface: `MarkupAttributes`
  Returns the value of the specified attribute.

  Specified by:
    `getMarkupAttribute` in interface `MarkupAttributes`
  Overrides:
    `getMarkupAttribute` in class `Rectangle`
  Parameters:
    `name` - `String` attribute name.
  Returns:
    `String`.
  See Also:
    `MarkupAttributes.getMarkupAttribute(java.lang.String)`

### getMarkupAttributeNames

    public java.util.Set getMarkupAttributeNames()

  Description copied from interface: `MarkupAttributes`
  Returns a `Set` of `String` attribute names for the `MarkupAttributes` implementor.

  Specified by:
    `getMarkupAttributeNames` in interface `MarkupAttributes`
  Overrides:
    `getMarkupAttributeNames` in class `Rectangle`
  Returns:
    `Set`.
  See Also:
    `MarkupAttributes.getMarkupAttributeNames()`

### getMarkupAttributes

    public java.util.Properties getMarkupAttributes()

  Description copied from interface: `MarkupAttributes`
  Return a `Properties`-object containing all the markupAttributes.

  Specified by:
    `getMarkupAttributes` in interface `MarkupAttributes`
  Overrides:
    `getMarkupAttributes` in class `Rectangle`
  Returns:
    `Properties`
  See Also:
    `MarkupAttributes.getMarkupAttributes()`

### 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

### 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.

### getAdditional

    public PdfDictionary getAdditional()

  Getter for property indexed.

  Returns:
    Value of property indexed.

### setAdditional

    public void setAdditional(PdfDictionary additional)

  Sets the /Colorspace key.

  Parameters:
    `additional` - New value of property indexed.

### 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.

### 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

### indentationLeft

    public float indentationLeft()

  Gets the left indentation.

  Returns:
    the left indentation

### indentationRight

    public float indentationRight()

  Gets the right indentation.

  Returns:
    the right indentation

### setIndentationLeft

    public void setIndentationLeft(float f)

  Sets the left indentation.

  Parameters:
    `f` -

### setIndentationRight

    public void setIndentationRight(float f)

  Sets the right indentation.

  Parameters:
    `f` -

### 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.

### setUrl

    public void setUrl(java.net.URL url)

  Sets the url of the image

  Parameters:
    `url` - the url of the image

### setSpacingBefore

    public void setSpacingBefore(float spacing)

  Sets the spacing before this image.

  Parameters:
    `spacing` - the new spacing

### setSpacingAfter

    public void setSpacingAfter(float spacing)

  Sets the spacing after this image.

  Parameters:
    `spacing` - the new spacing

### spacingBefore

    public float spacingBefore()

  Gets the spacing before this image.

  Returns:
    the spacing

### spacingAfter

    public float spacingAfter()

  Gets the spacing before this image.

  Returns:
    the 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.

### 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

### simplifyColorspace

    private PdfObject simplifyColorspace(PdfObject obj)

### simplifyColorspace

    public void simplifyColorspace()

  Replaces CalRGB and CalGray colorspaces with DeviceRGB and DeviceGray.

### 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.

### 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.