HSSFPalettepublic class HSSFPalette extends Object Represents a workbook color palette.
Internally, the XLS format refers to colors using an offset into the palette
record. Thus, the first color in the palette has the index 0x8, the second
has the index 0x9, etc. through 0x40 |
Fields Summary |
---|
private PaletteRecord | palette |
Constructors Summary |
---|
protected HSSFPalette(PaletteRecord palette)
this.palette = palette;
|
Methods Summary |
---|
public org.apache.poi.hssf.util.HSSFColor | addColor(byte red, byte green, byte blue)Adds a new color into an empty color slot.
byte[] b = palette.getColor(PaletteRecord.FIRST_COLOR_INDEX);
short i;
for (i = (short) PaletteRecord.FIRST_COLOR_INDEX; i < PaletteRecord.STANDARD_PALETTE_SIZE + PaletteRecord.FIRST_COLOR_INDEX; b = palette.getColor(++i))
{
if (b == null)
{
setColorAtIndex( i, red, green, blue );
return getColor(i);
}
}
throw new RuntimeException("Could not find free color index");
| public org.apache.poi.hssf.util.HSSFColor | findColor(byte red, byte green, byte blue)Finds the first occurance of a given color
byte[] b = palette.getColor(PaletteRecord.FIRST_COLOR_INDEX);
for (short i = (short) PaletteRecord.FIRST_COLOR_INDEX; b != null;
b = palette.getColor(++i))
{
if (b[0] == red && b[1] == green && b[2] == blue)
{
return new CustomColor(i, b);
}
}
return null;
| public org.apache.poi.hssf.util.HSSFColor | findSimilarColor(byte red, byte green, byte blue)Finds the closest matching color in the custom palette. The
method for finding the distance between the colors is fairly
primative.
HSSFColor result = null;
int minColorDistance = Integer.MAX_VALUE;
byte[] b = palette.getColor(PaletteRecord.FIRST_COLOR_INDEX);
for (short i = (short) PaletteRecord.FIRST_COLOR_INDEX; b != null;
b = palette.getColor(++i))
{
int colorDistance = red - b[0] + green - b[1] + blue - b[2];
if (colorDistance < minColorDistance)
{
result = getColor(i);
}
}
return result;
| public org.apache.poi.hssf.util.HSSFColor | getColor(short index)Retrieves the color at a given index
//Handle the special AUTOMATIC case
if (index == HSSFColor.AUTOMATIC.index)
return HSSFColor.AUTOMATIC.getInstance();
else {
byte[] b = palette.getColor(index);
if (b != null)
{
return new CustomColor(index, b);
}
}
return null;
| public void | setColorAtIndex(short index, byte red, byte green, byte blue)Sets the color at the given offset
palette.setColor(index, red, green, blue);
|
|