org.eclipse.swt.graphics

## Class PaletteData

- java.lang.Object
- - org.eclipse.swt.graphics.PaletteData

    public final class PaletteData
    extends java.lang.Object

Instances of this class describe the color data used by an image.

Depending on the depth of the image, the PaletteData can take one of two forms, indicated by the isDirect field:

isDirect is false
  If isDirect is `false`, this palette is an indexed palette which maps pixel values to RGBs. The actual RGB values may be retrieved by using the getRGBs() method.
isDirect is true
  If isDirect is `true`, this palette is a direct color palette. Instead of containing RGB values, it contains red, green and blue mask and shift information which indicates how the color components may be extracted from a given pixel. This means that the RGB value is actually encoded in the pixel value.

  In this case, the shift data is the number of bits required to shift the RGB value to the left in order to align the high bit of the corresponding mask with the high bit of the first byte. This number may be negative, so care must be taken when shifting. For example, with a red mask of 0xFF0000, the red shift would be -16. With a red mask of 0x1F, the red shift would be 3.

Since:
  1.3
See Also:
  `Image`, `RGB`

### Field Summary

Fields
`int` `blueMask` the blue mask for a direct palette
`int` `blueShift` the blue shift for a direct palette
`RGB[]` `colors` the RGB values for an indexed palette, where the indices of the array correspond to pixel values
`int` `greenMask` the green mask for a direct palette
`int` `greenShift` the green shift for a direct palette
`boolean` `isDirect` true if the receiver is a direct palette, and false otherwise
`int` `redMask` the red mask for a direct palette
`int` `redShift` the red shift for a direct palette

### Constructor Summary

Constructors
Constructor and Description
`PaletteData(int redMask, int greenMask, int blueMask)` Constructs a new direct palette given the red, green and blue masks.
`PaletteData(RGB... colors)` Constructs a new indexed palette given an array of RGB values.

### Method Summary

Methods
`int` `getPixel(RGB rgb)` Returns the pixel value corresponding to the given `RGB`.
`RGB` `getRGB(int pixel)` Returns an `RGB` corresponding to the given pixel value.
`RGB[]` `getRGBs()` Returns all the RGB values in the receiver if it is an indexed palette, or null if it is a direct palette.

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

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

### Field Detail

#### isDirect

    public boolean isDirect

true if the receiver is a direct palette, and false otherwise

#### colors

    public RGB[] colors

the RGB values for an indexed palette, where the indices of the array correspond to pixel values

#### redMask

    public int redMask

the red mask for a direct palette

#### greenMask

    public int greenMask

the green mask for a direct palette

#### blueMask

    public int blueMask

the blue mask for a direct palette

#### redShift

    public int redShift

the red shift for a direct palette

#### greenShift

    public int greenShift

the green shift for a direct palette

#### blueShift

    public int blueShift

the blue shift for a direct palette

### Constructor Detail

#### PaletteData

    public PaletteData(RGB... colors)

Constructs a new indexed palette given an array of RGB values.

Parameters:
  `colors` - the array of `RGB`s for the palette
Throws:
  `java.lang.IllegalArgumentException` -
  - ERROR_NULL_ARGUMENT - if the argument is null

#### PaletteData

    public PaletteData(int redMask,
               int greenMask,
               int blueMask)

Constructs a new direct palette given the red, green and blue masks.

Parameters:
  `redMask` - the red mask
  `greenMask` - the green mask
  `blueMask` - the blue mask

### Method Detail

#### getPixel

    public int getPixel(RGB rgb)

Returns the pixel value corresponding to the given `RGB`.

Parameters:
  `rgb` - the RGB to get the pixel value for
Returns:
  the pixel value for the given RGB
Throws:
  `java.lang.IllegalArgumentException` -
  - ERROR_NULL_ARGUMENT - if the argument is null
  - ERROR_INVALID_ARGUMENT - if the RGB is not found in the palette

#### getRGB

    public RGB getRGB(int pixel)

Returns an `RGB` corresponding to the given pixel value.

Parameters:
  `pixel` - the pixel to get the RGB value for
Returns:
  the RGB value for the given pixel
Throws:
  `java.lang.IllegalArgumentException` -
  - ERROR_NULL_ARGUMENT - if the argument is null
  - ERROR_INVALID_ARGUMENT - if the pixel does not exist in the palette

#### getRGBs

    public RGB[] getRGBs()

Returns all the RGB values in the receiver if it is an indexed palette, or null if it is a direct palette.

Returns:
  the `RGB`s for the receiver or null

Copyright (c) EclipseSource and others 2002, 2019. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0