Intel

Developer Zone

Image


com.intel.ui
Class Image

java.lang.Object
  extended by com.intel.ui.Widget
      extended by com.intel.ui.Image

public abstract class Image
extends Widget

This abstract class represents a leaf Widget which is a Bitmap image with a given format to be drawn.


Field Summary
static byte FORMAT_RGB_24BPP
Standard RGB color format: bits 0-7 are blue, bits 8-15 are green, bits 16-23 are red.
static byte FORMAT_RGB_32BPP
XRGB color format: bits 0-7 are blue, bits 8-15 are green, bits 16-23 are red, bits 24-31 are reserved.
Method Summary
void addImageBlock(byte[] block, int offset, int length)
This method will allow the caller to add a chunk of the big image (received from host or remote server) into the internal system buffer.
static Image create(short id, XYPair size, XYPair relLocation, byte format)
Factory method for creating a concrete instance initialized with the specified parameters.
static Image create(short id, XYPair size, XYPair relLocation, byte format, byte[] imageData)
Factory method for creating a concrete instance initialized with the specified parameters.
byte getFormat()
Returns the format of the image
byte[] getImage()
Returns the image buffer.
void releaseImage()
This method releases the internal system buffer that is used to store a large image object created by calling Image.create(short, XYPair, XYPair, byte) method.
Methods inherited from class com.intel.ui.Widget
getColor, getId, getRelativeLocation, getSize
Methods inherited from class java.lang.Object
equals, hashCode, toString

Field Detail

FORMAT_RGB_32BPP

public static final byte FORMAT_RGB_32BPP
XRGB color format: bits 0-7 are blue, bits 8-15 are green, bits 16-23 are red, bits 24-31 are reserved.

See Also:
Constant Field Values

FORMAT_RGB_24BPP

public static final byte FORMAT_RGB_24BPP
Standard RGB color format: bits 0-7 are blue, bits 8-15 are green, bits 16-23 are red.

See Also:
Constant Field Values
Method Detail

create

public static final Image create(short id,
                                 XYPair size,
                                 XYPair relLocation,
                                 byte format,
                                 byte[] imageData)
                          throws UiException
Factory method for creating a concrete instance initialized with the specified parameters.

Parameters:
id - An ID representing this Widget for quick reference by the calling application. The ID does not have to be unique and is not used internally by the package.
size - The size of the Widget
relLocation - The relative location from the parent Widget
format - The Image format
imageData - A buffer representing the Image in the specified format. Data is not duplicated.
Returns:
Image instance
Throws:
UiIllegalParameterException - in one of the following cases:
  • Image size is negative.
  • Image location is negative.
  • Image size exceeds upper bound Widget.MAX_WIDTH and/or Widget.MAX_HEIGHT.
  • Image location exceeds upper bound Widget.MAX_WIDTH and/or Widget.MAX_HEIGHT.
  • The provided image format is not supported.
  • imageData size does not match the dimensions provided in size parameter.
UiException

create

public static final Image create(short id,
                                 XYPair size,
                                 XYPair relLocation,
                                 byte format)
                          throws UiException
Factory method for creating a concrete instance initialized with the specified parameters. An instance created by this method represents an Image object for large images. A large image is a single object in the system, therefore, this method cannot be called more than once without the image being released in between. In addition, it can also fail, if a large image object is already in use by another application. This method does not receive a buffer with image data as parameter. In order to provide the image data, the data should be split into smaller chunks and each chunk should be updated using the Image.addImageBlock() method.
    Note:
  1. Once the large image object is added to the dialog and the dialog is rendered, the image data is released and no specific release operation is needed.
  2. Once the large image object is added to the dialog, it will always be at the bottom layer of the dialog, regardless of the sequence in which the widgets were added to the dialog. This means that all other dialog's widgets are drawn on top of this image.

Parameters:
id - An ID representing this Widget
size - The size of the Widget
relLocation - The relative location from the parent Widget
format - The Image format
Returns:
Image instance
Throws:
OutOfResourcesException - if the image size is too big and no system resources are available to maintain this image.
UiIllegalUseException - if a large image object is already allocated in the system (by this or other application).
UiIllegalParameterException - in one of the following cases:
  • Image size is negative.
  • Image location is negative.
  • Image Size exceeds upper bound Widget.MAX_WIDTH and/or Widget.MAX_HEIGHT.
  • Image Location exceeds upper bound Widget.MAX_WIDTH and/or Widget.MAX_HEIGHT.
  • The provided image format is not supported.
UiException

releaseImage

public void releaseImage()
                  throws UiException
This method releases the internal system buffer that is used to store a large image object created by calling Image.create(short, XYPair, XYPair, byte) method. After using this method, this Image instance becomes invalid.

Throws:
UiIllegalUseException - in one of the following cases:
  • The internal system buffer has already been released (by calling this method, or rendering the dialog that contains this image).
  • This instance was not created by calling the Image.create(short, XYPair, XYPair, byte) method.
UiException

addImageBlock

public void addImageBlock(byte[] block,
                          int offset,
                          int length)
This method will allow the caller to add a chunk of the big image (received from host or remote server) into the internal system buffer. The chunk can be of any size, and will be copied subsequently after the previous provided chunk. The current offset in the internal buffer is maintained by the system.

Parameters:
block - Image chunk to append to the internal buffer
offset - Offset inside the block data array
length - Length of the block data
Throws:
UiIllegalUseException - if this image instance was not created by calling the Image.create(short, XYPair, XYPair, byte) method, or the internal buffer used to store the image data has already been released.
UiIllegalParameterException - in one of the following cases:
  • Block size is negative.
  • Offset is not valid.
  • Length is not valid.

getFormat

public byte getFormat()
Returns the format of the image

Returns:
Returns the format of the image

getImage

public byte[] getImage()
Returns the image buffer.

Returns:
Returns the image buffer. Data is not duplicated.
Throws:
UiIllegalUseException - if this instance was created by calling the Image.create(short, XYPair, XYPair, byte) method.