com.lowagie.text.rtf.graphic

## Class RtfImage

- java.lang.Object
- - com.lowagie.text.rtf.RtfElement
  - - com.lowagie.text.rtf.graphic.RtfImage

All Implemented Interfaces:
  RtfBasicElement, RtfElementInterface

    public class RtfImage
    extends RtfElement

The RtfImage contains one image. Supported image types are jpeg, png, wmf, bmp.

Version:
  $Id$
Author:
  Mark Hall (Mark.Hall@mail.room3b.eu), Paulo Soares, Thomas Bickel (tmb99@inode.at)

### Field Summary

Fields
`private int` `alignment` The alignment of this picture
`static byte[]` `byte2charLUT` lookup table used for converting bytes to hex chars.
`private float` `height` The height of this picture
`private byte[][]` `imageData` Binary image data.
`private int` `imageType` The type of image this is.
`private static byte[]` `PICTURE` Constant for a picture
`private static byte[]` `PICTURE_BINARY_DATA` "\bin" constant
`private static byte[]` `PICTURE_GROUP` Constant for the shape/picture group
`private static byte[]` `PICTURE_HEIGHT` Constant for the picture height
`private static byte[]` `PICTURE_JPEG` Constant for a jpeg image
`private static byte[]` `PICTURE_PNG` Constant for a png image
`private static byte[]` `PICTURE_SCALE_X` Constant for horizontal picture scaling
`private static byte[]` `PICTURE_SCALE_Y` Constant for vertical picture scaling
`private static byte[]` `PICTURE_SCALED_HEIGHT` Constant for the picture height scale
`private static byte[]` `PICTURE_SCALED_WIDTH` Constant for the picture width scale
`private static byte[]` `PICTURE_WIDTH` Constant for the picture width
`private static byte[]` `PICTURE_WMF` Constant for a wmf image
`private static int` `PIXEL_TWIPS_FACTOR` Constant for converting pixels to twips
`private float` `plainHeight` The intended display height of this picture
`private float` `plainWidth` The intended display width of this picture
`private boolean` `topLevelElement` Whether this RtfImage is a top level element and should be an extra paragraph.
`private float` `width` The width of this picture

### Fields inherited from class com.lowagie.text.rtf.RtfElement

`document, inHeader, inTable`

### Fields inherited from interface com.lowagie.text.rtf.RtfBasicElement

`CLOSE_GROUP, COMMA_DELIMITER, DELIMITER, OPEN_GROUP, TWIPS_FACTOR`

### Constructor Summary

Constructors
Constructor and Description
`RtfImage(RtfDocument doc, Image image)` Constructs a RtfImage for an Image.

### Method Summary

Methods
`private byte[][]` `getImageData(Image image)` Extracts the image data from the Image.
`private int` `imageDataSize()` Returns the image raw data size in bytes.
`void` `setAlignment(int alignment)` Sets the alignment of this RtfImage.
`void` `setTopLevelElement(boolean topLevelElement)` Set whether this RtfImage should behave like a top level element and enclose itself in a paragraph.
`void` `writeContent(java.io.OutputStream result)` Writes the RtfImage content
`private void` `writeImageDataHexEncoded(java.io.OutputStream bab)` Writes the image data to the given buffer as hex encoded text.

### Methods inherited from class com.lowagie.text.rtf.RtfElement

`intToByteArray, isInTable, setInHeader, setInTable, setRtfDocument`

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

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

### Field Detail

#### PICTURE_GROUP

    private static final byte[] PICTURE_GROUP

Constant for the shape/picture group

#### PICTURE

    private static final byte[] PICTURE

Constant for a picture

#### PICTURE_JPEG

    private static final byte[] PICTURE_JPEG

Constant for a jpeg image

#### PICTURE_PNG

    private static final byte[] PICTURE_PNG

Constant for a png image

#### PICTURE_WMF

    private static final byte[] PICTURE_WMF

Constant for a wmf image

#### PICTURE_WIDTH

    private static final byte[] PICTURE_WIDTH

Constant for the picture width

#### PICTURE_HEIGHT

    private static final byte[] PICTURE_HEIGHT

Constant for the picture height

#### PICTURE_SCALED_WIDTH

    private static final byte[] PICTURE_SCALED_WIDTH

Constant for the picture width scale

#### PICTURE_SCALED_HEIGHT

    private static final byte[] PICTURE_SCALED_HEIGHT

Constant for the picture height scale

#### PICTURE_SCALE_X

    private static final byte[] PICTURE_SCALE_X

Constant for horizontal picture scaling

#### PICTURE_SCALE_Y

    private static final byte[] PICTURE_SCALE_Y

Constant for vertical picture scaling

#### PICTURE_BINARY_DATA

    private static final byte[] PICTURE_BINARY_DATA

"\bin" constant

#### PIXEL_TWIPS_FACTOR

    private static final int PIXEL_TWIPS_FACTOR

Constant for converting pixels to twips

See Also:
  Constant Field Values

#### imageType

    private final int imageType

The type of image this is.

#### imageData

    private final byte[][] imageData

Binary image data.

#### alignment

    private int alignment

The alignment of this picture

#### width

    private float width

The width of this picture

#### height

    private float height

The height of this picture

#### plainWidth

    private float plainWidth

The intended display width of this picture

#### plainHeight

    private float plainHeight

The intended display height of this picture

#### topLevelElement

    private boolean topLevelElement

Whether this RtfImage is a top level element and should be an extra paragraph.

#### byte2charLUT

    public static final byte[] byte2charLUT

lookup table used for converting bytes to hex chars. TODO Should probably be refactored into a helper class

### Constructor Detail

#### RtfImage

    public RtfImage(RtfDocument doc,
            Image image)
             throws DocumentException

Constructs a RtfImage for an Image.

Parameters:
  `doc` - The RtfDocument this RtfImage belongs to
  `image` - The Image that this RtfImage wraps
Throws:
  `DocumentException` - If an error occurred accessing the image content

### Method Detail

#### getImageData

    private byte[][] getImageData(Image image)
                           throws DocumentException

Extracts the image data from the Image.

Parameters:
  `image` - The image for which to extract the content
Returns:
  The raw image data, not formated
Throws:
  `DocumentException` - If an error occurs accessing the image content

#### writeImageDataHexEncoded

    private void writeImageDataHexEncoded(java.io.OutputStream bab)
                                   throws java.io.IOException

Writes the image data to the given buffer as hex encoded text.

Parameters:
  `bab` -
Throws:
  `java.io.IOException`

#### imageDataSize

    private int imageDataSize()

Returns the image raw data size in bytes.

Returns:
  the size in bytes

#### writeContent

    public void writeContent(java.io.OutputStream result)
                      throws java.io.IOException

Writes the RtfImage content

Specified by:
  `writeContent` in interface `RtfBasicElement`
Specified by:
  `writeContent` in class `RtfElement`
Parameters:
  `result` - The `OutputStream` to write the content to
Throws:
  `java.io.IOException`

#### setAlignment

    public void setAlignment(int alignment)

Sets the alignment of this RtfImage. Uses the alignments from com.lowagie.text.Element.

Parameters:
  `alignment` - The alignment to use.

#### setTopLevelElement

    public void setTopLevelElement(boolean topLevelElement)

Set whether this RtfImage should behave like a top level element and enclose itself in a paragraph.

Parameters:
  `topLevelElement` - Whether to behave like a top level element.