static class IconExe.ImageData
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
int |
alpha
The global alpha value to be used for every pixel.
|
(package private) static int |
ALPHA_CHANNEL_SEPARATE
Alpha mode, values 0 - 255 specify global alpha level
|
(package private) static int |
ALPHA_CHANNEL_SOURCE
Alpha mode, values 0 - 255 specify global alpha level
|
(package private) static int |
ALPHA_MASK_INDEX
Alpha mode, values 0 - 255 specify global alpha level
|
(package private) static int |
ALPHA_MASK_PACKED
Alpha mode, values 0 - 255 specify global alpha level
|
(package private) static int |
ALPHA_MASK_RGB
Alpha mode, values 0 - 255 specify global alpha level
|
(package private) static int |
ALPHA_MASK_UNPACKED
Alpha mode, values 0 - 255 specify global alpha level
|
(package private) static int |
ALPHA_OPAQUE
Alpha mode, values 0 - 255 specify global alpha level
|
(package private) static int |
ALPHA_TRANSPARENT
Alpha mode, values 0 - 255 specify global alpha level
|
byte[] |
alphaData
The alpha data of the image.
|
(package private) static byte[][] |
ANY_TO_EIGHT
Arbitrary channel width data to 8-bit conversion table.
|
(package private) static int |
BLIT_ALPHA
Blit operation bits to be OR'ed together to specify the desired operation.
|
(package private) static int |
BLIT_DITHER
Blit operation bits to be OR'ed together to specify the desired operation.
|
(package private) static int |
BLIT_SRC
Blit operation bits to be OR'ed together to specify the desired operation.
|
int |
bytesPerLine
The number of bytes per scanline.
|
byte[] |
data
The pixel data of the image.
|
int |
delayTime
The time to delay before displaying the next image
in an animation (this field corresponds to the GIF89a
Delay Time value).
|
int |
depth
The color depth of the image, in bits per pixel.
|
int |
disposalMethod
A description of how to dispose of the current image
before displaying the next.
|
(package private) static int[][] |
DITHER_MATRIX
Scaled 8x8 Bayer dither matrix.
|
int |
height
The height of the image, in pixels.
|
(package private) static int |
LSB_FIRST
Byte and bit order constants.
|
byte[] |
maskData
An icon-specific field containing the data from the icon mask.
|
int |
maskPad
An icon-specific field containing the scanline pad of the mask.
|
(package private) static int |
MSB_FIRST |
(package private) static byte[] |
ONE_TO_ONE_MAPPING |
IconExe.PaletteData |
palette
The color table for the image.
|
int |
scanlinePad
The scanline padding.
|
int |
transparentPixel
The transparent pixel.
|
int |
type
The type of file from which the image was read.
|
int |
width
The width of the image, in pixels.
|
int |
x
The x coordinate of the top left corner of the image
within the logical screen (this field corresponds to
the GIF89a Image Left Position value).
|
int |
y
The y coordinate of the top left corner of the image
within the logical screen (this field corresponds to
the GIF89a Image Top Position value).
|
Constructor and Description |
---|
ImageData()
Prevents uninitialized instances from being created outside the package.
|
ImageData(int width,
int height,
int depth,
IconExe.PaletteData palette)
Constructs a new, empty ImageData with the given width, height,
depth and palette.
|
ImageData(int width,
int height,
int depth,
IconExe.PaletteData palette,
int scanlinePad,
byte[] data)
Constructs a new, empty ImageData with the given width, height,
depth, palette, scanlinePad and data.
|
ImageData(int width,
int height,
int depth,
IconExe.PaletteData palette,
int scanlinePad,
byte[] data,
int maskPad,
byte[] maskData,
byte[] alphaData,
int alpha,
int transparentPixel,
int type,
int x,
int y,
int disposalMethod,
int delayTime)
Constructs an image data by giving values for all non-computable fields.
|
ImageData(java.lang.String filename)
Constructs an
ImageData loaded from a file with the
specified name. |
Modifier and Type | Method and Description |
---|---|
(package private) static void |
buildDitheredGradientChannel(int from,
int to,
int steps,
int bandWidth,
int bandHeight,
boolean vertical,
byte[] bitmapData,
int dp,
int bytesPerLine,
int bits) |
(package private) static IconExe.PaletteData |
bwPalette()
Returns a palette with 2 colors: black & white.
|
(package private) static byte[] |
checkData(byte[] data) |
(package private) static int |
closestMatch(int depth,
byte red,
byte green,
byte blue,
int redMask,
int greenMask,
int blueMask,
byte[] reds,
byte[] greens,
byte[] blues)
Finds the closest match.
|
(package private) IconExe.ImageData |
colorMaskImage(int pixel) |
(package private) static IconExe.ImageData |
convertMask(IconExe.ImageData mask) |
(package private) static byte[] |
convertPad(byte[] data,
int width,
int height,
int depth,
int pad,
int newPad) |
(package private) int |
getByteOrder()
Returns the byte order of the receiver.
|
(package private) static byte |
getChannelField(int data,
int mask)
Extracts a field from packed RGB data given a mask for that field.
|
(package private) static int |
getChannelShift(int mask)
Computes the required channel shift from a mask.
|
(package private) static int |
getChannelWidth(int mask,
int shift)
Computes the required channel width (depth) from a mask.
|
(package private) static int |
getMSBOffset(int mask)
Gets the offset of the most significant bit for
the given mask.
|
void |
getPixels(int x,
int y,
int getWidth,
byte[] pixels,
int startIndex)
Returns
getWidth pixel values starting at offset
x in scanline y in the receiver's
data starting at startIndex . |
void |
getPixels(int x,
int y,
int getWidth,
int[] pixels,
int startIndex)
Returns
getWidth pixel values starting at offset
x in scanline y in the receiver's
data starting at startIndex . |
IconExe.RGB[] |
getRGBs()
Returns an array of
RGB s which comprise the
indexed color table of the receiver, or null if the receiver
has a direct color model. |
IconExe.ImageData |
getTransparencyMask()
Returns an
ImageData which specifies the
transparency mask information for the receiver, or null if the
receiver has no transparency and is not an icon. |
int |
getTransparencyType()
Returns the image transparency type.
|
static IconExe.ImageData |
internal_new(int width,
int height,
int depth,
IconExe.PaletteData palette,
int scanlinePad,
byte[] data,
int maskPad,
byte[] maskData,
byte[] alphaData,
int alpha,
int transparentPixel,
int type,
int x,
int y,
int disposalMethod,
int delayTime)
Invokes internal SWT functionality to create a new instance of
this class.
|
(package private) void |
setAllFields(int width,
int height,
int depth,
int scanlinePad,
int bytesPerLine,
byte[] data,
IconExe.PaletteData palette,
int transparentPixel,
byte[] maskData,
int maskPad,
byte[] alphaData,
int alpha,
int type,
int x,
int y,
int disposalMethod,
int delayTime)
Initializes all fields in the receiver.
|
void |
setPixels(int x,
int y,
int putWidth,
byte[] pixels,
int startIndex)
Sets the pixel values starting at offset
x in
scanline y in the receiver's data to the
values from the array pixels starting at
startIndex . |
void |
setPixels(int x,
int y,
int putWidth,
int[] pixels,
int startIndex)
Sets the pixel values starting at offset
x in
scanline y in the receiver's data to the
values from the array pixels starting at
startIndex . |
public int width
public int height
public int depth
Note that a depth of 8 or less does not necessarily mean that the image is palette indexed, or conversely that a depth greater than 8 means that the image is direct color. Check the associated PaletteData's isDirect field for such determinations.
public int scanlinePad
If one scanline of the image is not a multiple of this number, it will be padded with zeros until it is.
public int bytesPerLine
This is a multiple of the scanline padding.
public byte[] data
Note that for 16 bit depth images the pixel data is stored in least significant byte order; however, for 24bit and 32bit depth images the pixel data is stored in most significant byte order.
public IconExe.PaletteData palette
public int transparentPixel
Pixels with this value are transparent.
The default is -1 which means 'no transparent pixel'.
public byte[] maskData
This is a 1 bit bitmap stored with the most significant bit first. The number of bytes per scanline is '((width + 7) / 8 + (maskPad - 1)) / maskPad * maskPad'.
The default is null which means 'no transparency mask'.
public int maskPad
If one scanline of the transparency mask is not a multiple of this number, it will be padded with zeros until it is.
public byte[] alphaData
Every pixel can have an alpha blending value that varies from 0, meaning fully transparent, to 255 meaning fully opaque. The number of bytes per scanline is 'width'.
public int alpha
If this value is set, the alphaData
field
is ignored and when the image is rendered each pixel
will be blended with the background an amount
proportional to this value.
The default is -1 which means 'no global alpha value'
public int type
IMAGE_BMP
IMAGE_BMP_RLE
IMAGE_GIF
IMAGE_ICO
IMAGE_JPEG
IMAGE_PNG
public int x
public int y
public int disposalMethod
DM_UNSPECIFIED
DM_FILL_NONE
DM_FILL_BACKGROUND
DM_FILL_PREVIOUS
public int delayTime
static final byte[][] ANY_TO_EIGHT
static final byte[] ONE_TO_ONE_MAPPING
static final int[][] DITHER_MATRIX
static final int BLIT_SRC
static final int BLIT_ALPHA
static final int BLIT_DITHER
static final int ALPHA_OPAQUE
static final int ALPHA_TRANSPARENT
static final int ALPHA_CHANNEL_SEPARATE
static final int ALPHA_CHANNEL_SOURCE
static final int ALPHA_MASK_UNPACKED
static final int ALPHA_MASK_PACKED
static final int ALPHA_MASK_INDEX
static final int ALPHA_MASK_RGB
static final int LSB_FIRST
static final int MSB_FIRST
public ImageData(int width, int height, int depth, IconExe.PaletteData palette)
width
- the width of the imageheight
- the height of the imagedepth
- the depth of the imagepalette
- the palette of the image (must not be null)java.lang.IllegalArgumentException
- public ImageData(int width, int height, int depth, IconExe.PaletteData palette, int scanlinePad, byte[] data)
width
- the width of the imageheight
- the height of the imagedepth
- the depth of the imagepalette
- the palette of the imagescanlinePad
- the padding of each line, in bytesdata
- the data of the imagejava.lang.IllegalArgumentException
- public ImageData(java.lang.String filename)
ImageData
loaded from a file with the
specified name. Throws an error if an error occurs loading the
image, or if the image has an unsupported type.
This constructor is provided for convenience when loading a single
image only. If the file contains multiple images, only the first
one will be loaded. To load multiple images, use
ImageLoader.load()
.
filename
- the name of the file to load the image from (must not be null)java.lang.IllegalArgumentException
- java.lang.RuntimeException
- ImageData()
ImageData(int width, int height, int depth, IconExe.PaletteData palette, int scanlinePad, byte[] data, int maskPad, byte[] maskData, byte[] alphaData, int alpha, int transparentPixel, int type, int x, int y, int disposalMethod, int delayTime)
This method is for internal use, and is not described further.
void setAllFields(int width, int height, int depth, int scanlinePad, int bytesPerLine, byte[] data, IconExe.PaletteData palette, int transparentPixel, byte[] maskData, int maskPad, byte[] alphaData, int alpha, int type, int x, int y, int disposalMethod, int delayTime)
This method is for internal use, and is not described further.
public static IconExe.ImageData internal_new(int width, int height, int depth, IconExe.PaletteData palette, int scanlinePad, byte[] data, int maskPad, byte[] maskData, byte[] alphaData, int alpha, int transparentPixel, int type, int x, int y, int disposalMethod, int delayTime)
IMPORTANT: This method is not part of the public
API for ImageData
. It is marked public only so that it
can be shared within the packages provided by SWT. It is subject
to change without notice, and should never be called from
application code.
This method is for internal use, and is not described further.
IconExe.ImageData colorMaskImage(int pixel)
static byte[] checkData(byte[] data)
public void getPixels(int x, int y, int getWidth, byte[] pixels, int startIndex)
getWidth
pixel values starting at offset
x
in scanline y
in the receiver's
data starting at startIndex
.x
- the x position of the first pixel to gety
- the y position of the first pixel to getgetWidth
- the width of the data to getpixels
- the buffer in which to put the pixelsstartIndex
- the offset into the byte array to begin storing pixelsjava.lang.IndexOutOfBoundsException
- if getWidth is too largejava.lang.IllegalArgumentException
- java.lang.RuntimeException
- public void getPixels(int x, int y, int getWidth, int[] pixels, int startIndex)
getWidth
pixel values starting at offset
x
in scanline y
in the receiver's
data starting at startIndex
.x
- the x position of the first pixel to gety
- the y position of the first pixel to getgetWidth
- the width of the data to getpixels
- the buffer in which to put the pixelsstartIndex
- the offset into the buffer to begin storing pixelsjava.lang.IndexOutOfBoundsException
- if getWidth is too largejava.lang.IllegalArgumentException
- java.lang.RuntimeException
- public IconExe.RGB[] getRGBs()
RGB
s which comprise the
indexed color table of the receiver, or null if the receiver
has a direct color model.IconExe.PaletteData.getRGBs()
public IconExe.ImageData getTransparencyMask()
ImageData
which specifies the
transparency mask information for the receiver, or null if the
receiver has no transparency and is not an icon.public int getTransparencyType()
int getByteOrder()
public void setPixels(int x, int y, int putWidth, byte[] pixels, int startIndex)
x
in
scanline y
in the receiver's data to the
values from the array pixels
starting at
startIndex
.x
- the x position of the pixel to sety
- the y position of the pixel to setputWidth
- the width of the pixels to setpixels
- the pixels to setstartIndex
- the index at which to begin settingjava.lang.IndexOutOfBoundsException
- if putWidth is too largejava.lang.IllegalArgumentException
- java.lang.RuntimeException
- public void setPixels(int x, int y, int putWidth, int[] pixels, int startIndex)
x
in
scanline y
in the receiver's data to the
values from the array pixels
starting at
startIndex
.x
- the x position of the pixel to sety
- the y position of the pixel to setputWidth
- the width of the pixels to setpixels
- the pixels to setstartIndex
- the index at which to begin settingjava.lang.IndexOutOfBoundsException
- if putWidth is too largejava.lang.IllegalArgumentException
- java.lang.RuntimeException
- static IconExe.PaletteData bwPalette()
static int getMSBOffset(int mask)
static int closestMatch(int depth, byte red, byte green, byte blue, int redMask, int greenMask, int blueMask, byte[] reds, byte[] greens, byte[] blues)
static final IconExe.ImageData convertMask(IconExe.ImageData mask)
static final byte[] convertPad(byte[] data, int width, int height, int depth, int pad, int newPad)
static int getChannelShift(int mask)
static int getChannelWidth(int mask, int shift)
static byte getChannelField(int data, int mask)
static final void buildDitheredGradientChannel(int from, int to, int steps, int bandWidth, int bandHeight, boolean vertical, byte[] bitmapData, int dp, int bytesPerLine, int bits)