Class HSSFExtendedColor
- java.lang.Object
-
- org.apache.poi.ss.usermodel.ExtendedColor
-
- org.apache.poi.hssf.usermodel.HSSFExtendedColor
-
- All Implemented Interfaces:
Color
public class HSSFExtendedColor extends ExtendedColor
The HSSF file format normally stores Color information in the Palette (see PaletteRecord), but for a few cases (eg Conditional Formatting, Sheet Extensions), this XSSF-style color record can be used.
-
-
Constructor Summary
Constructors Constructor Description HSSFExtendedColor(ExtendedColor color)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
getARGB()
protected ExtendedColor
getExtendedColor()
short
getIndex()
protected byte[]
getIndexedRGB()
byte[]
getRGB()
protected byte[]
getStoredRGB()
int
getTheme()
double
getTint()
Specifies the tint value applied to the ctColor.boolean
isAuto()
boolean
isIndexed()
boolean
isRGB()
boolean
isThemed()
void
setRGB(byte[] rgb)
Sets the Red Green Blue or Alpha Red Green Bluevoid
setTint(double tint)
Specifies the tint value applied to the ctColor.-
Methods inherited from class org.apache.poi.ss.usermodel.ExtendedColor
getARGBHex, getRGBOrARGB, getRGBWithTint, setARGBHex, setColor
-
-
-
-
Constructor Detail
-
HSSFExtendedColor
public HSSFExtendedColor(ExtendedColor color)
-
-
Method Detail
-
getExtendedColor
protected ExtendedColor getExtendedColor()
-
isAuto
public boolean isAuto()
- Specified by:
isAuto
in classExtendedColor
- Returns:
- true if the color is automatic
-
isIndexed
public boolean isIndexed()
- Specified by:
isIndexed
in classExtendedColor
- Returns:
- true if the color is indexed
-
isRGB
public boolean isRGB()
- Specified by:
isRGB
in classExtendedColor
- Returns:
- true if the color is RGB / ARGB
-
isThemed
public boolean isThemed()
- Specified by:
isThemed
in classExtendedColor
- Returns:
- true if the color is from a Theme
-
getIndex
public short getIndex()
- Specified by:
getIndex
in classExtendedColor
- Returns:
- Indexed Color index value, if
ExtendedColor.isIndexed()
is true
-
getTheme
public int getTheme()
- Specified by:
getTheme
in classExtendedColor
- Returns:
- Index of Theme color, if
ExtendedColor.isThemed()
is true
-
getRGB
public byte[] getRGB()
- Specified by:
getRGB
in classExtendedColor
- Returns:
- Standard Red Green Blue ctColor value (RGB) bytes. If there was an A (Alpha) value, it will be stripped.
-
getARGB
public byte[] getARGB()
- Specified by:
getARGB
in classExtendedColor
- Returns:
- Standard Alpha Red Green Blue ctColor value (ARGB) bytes.
-
getStoredRGB
protected byte[] getStoredRGB()
- Specified by:
getStoredRGB
in classExtendedColor
- Returns:
- RGB or ARGB bytes or null
-
setRGB
public void setRGB(byte[] rgb)
Description copied from class:ExtendedColor
Sets the Red Green Blue or Alpha Red Green Blue- Specified by:
setRGB
in classExtendedColor
- Parameters:
rgb
- bytes
-
getTint
public double getTint()
Description copied from class:ExtendedColor
Specifies the tint value applied to the ctColor.If tint is supplied, then it is applied to the RGB value of the ctColor to determine the final ctColor applied.
The tint value is stored as a double from -1.0 .. 1.0, where -1.0 means 100% darken and 1.0 means 100% lighten. Also, 0.0 means no change.
In loading the RGB value, it is converted to HLS where HLS values are (0..HLSMAX), where HLSMAX is currently 255.
Here are some examples of how to apply tint to ctColor:If (tint < 0) Lum' = Lum * (1.0 + tint) For example: Lum = 200; tint = -0.5; Darken 50% Lum' = 200 * (0.5) => 100 For example: Lum = 200; tint = -1.0; Darken 100% (make black) Lum' = 200 * (1.0-1.0) => 0 If (tint > 0) Lum' = Lum * (1.0-tint) + (HLSMAX - HLSMAX * (1.0-tint)) For example: Lum = 100; tint = 0.75; Lighten 75% Lum' = 100 * (1-.75) + (HLSMAX - HLSMAX*(1-.75)) = 100 * .25 + (255 - 255 * .25) = 25 + (255 - 63) = 25 + 192 = 217 For example: Lum = 100; tint = 1.0; Lighten 100% (make white) Lum' = 100 * (1-1) + (HLSMAX - HLSMAX*(1-1)) = 100 * 0 + (255 - 255 * 0) = 0 + (255 - 0) = 255
- Specified by:
getTint
in classExtendedColor
- Returns:
- the tint value
-
setTint
public void setTint(double tint)
Description copied from class:ExtendedColor
Specifies the tint value applied to the ctColor.If tint is supplied, then it is applied to the RGB value of the ctColor to determine the final ctColor applied.
The tint value is stored as a double from -1.0 .. 1.0, where -1.0 means 100% darken and 1.0 means 100% lighten. Also, 0.0 means no change.
In loading the RGB value, it is converted to HLS where HLS values are (0..HLSMAX), where HLSMAX is currently 255.
Here are some examples of how to apply tint to ctColor:If (tint < 0) Lum' = Lum * (1.0 + tint) For example: Lum = 200; tint = -0.5; Darken 50% Lum' = 200 * (0.5) => 100 For example: Lum = 200; tint = -1.0; Darken 100% (make black) Lum' = 200 * (1.0-1.0) => 0 If (tint > 0) Lum' = Lum * (1.0-tint) + (HLSMAX - HLSMAX * (1.0-tint)) For example: Lum = 100; tint = 0.75; Lighten 75% Lum' = 100 * (1-.75) + (HLSMAX - HLSMAX*(1-.75)) = 100 * .25 + (255 - 255 * .25) = 25 + (255 - 63) = 25 + 192 = 217 For example: Lum = 100; tint = 1.0; Lighten 100% (make white) Lum' = 100 * (1-1) + (HLSMAX - HLSMAX*(1-1)) = 100 * 0 + (255 - 255 * 0) = 0 + (255 - 0) = 255
- Specified by:
setTint
in classExtendedColor
- Parameters:
tint
- the tint value
-
getIndexedRGB
protected byte[] getIndexedRGB()
- Specified by:
getIndexedRGB
in classExtendedColor
- Returns:
- index color RGB bytes, if
ExtendedColor.isIndexed()
== true, null if not indexed or index is invalid
-
-