Class XSSFColor

  • All Implemented Interfaces:
    Color

    public class XSSFColor
    extends ExtendedColor
    Represents a color in SpreadsheetML
    • Constructor Detail

      • XSSFColor

        public XSSFColor()
        Since:
        POI 5.2.0
      • XSSFColor

        public XSSFColor​(IndexedColorMap colorMap)
        new color with the given indexed color map
        Parameters:
        colorMap - The IndexedColorMap to use instead of the default one (can be null)
      • XSSFColor

        public XSSFColor​(java.awt.Color clr,
                         IndexedColorMap map)
        TEST ONLY
        Parameters:
        clr - awt Color
        map - The IndexedColorMap to use instead of the default one (can be null)
      • XSSFColor

        public XSSFColor​(byte[] rgb,
                         IndexedColorMap colorMap)
        Parameters:
        rgb - The RGB-byte-values for the Color
        colorMap - The IndexedColorMap to use instead of the default one (can be null)
      • XSSFColor

        public XSSFColor​(byte[] rgb)
        Parameters:
        rgb - The RGB-byte-values for the Color
        Since:
        POI 5.2.0
      • XSSFColor

        public XSSFColor​(IndexedColors indexedColor,
                         IndexedColorMap colorMap)
        Parameters:
        indexedColor - color index (Enum named for default colors)
        colorMap - The IndexedColorMap to use instead of the default one
    • Method Detail

      • from

        public static XSSFColor from​(CTColor color,
                                     IndexedColorMap map)
        Parameters:
        color - The ooxml color object to use
        map - The IndexedColorMap to use instead of the default one (can be null)
        Returns:
        null if color is null, new instance otherwise
      • from

        public static XSSFColor from​(CTColor color)
        Parameters:
        color - The ooxml color object to use
        Returns:
        null if color is null, new instance otherwise
        Since:
        POI 5.2.0
      • isAuto

        public boolean isAuto()
        A boolean value indicating the ctColor is automatic and system ctColor dependent.
        Specified by:
        isAuto in class ExtendedColor
        Returns:
        true if the color is automatic
      • setAuto

        public void setAuto​(boolean auto)
        Parameters:
        auto - true if the ctColor is automatic and system ctColor dependent.
      • isIndexed

        public boolean isIndexed()
        A boolean value indicating the ctColor is Indexed
        Specified by:
        isIndexed in class ExtendedColor
        Returns:
        true if the color is indexed
      • isRGB

        public boolean isRGB()
        Specified by:
        isRGB in class ExtendedColor
        Returns:
        true if the ctColor is RGB or ARGB based
      • isThemed

        public boolean isThemed()
        Specified by:
        isThemed in class ExtendedColor
        Returns:
        true if the ctColor is Theme based
      • hasAlpha

        public boolean hasAlpha()
        Returns:
        true if the ctColor has a alpha
      • hasTint

        public boolean hasTint()
        Returns:
        true if the ctColor has a tint
      • getIndex

        public short getIndex()
        Indexed ctColor value. Only used for backwards compatibility. References a ctColor in indexedColors.
        Specified by:
        getIndex in class ExtendedColor
        Returns:
        Indexed Color index value, if ExtendedColor.isIndexed() is true
      • getIndexed

        public short getIndexed()
        Returns:
        Indexed ctColor value. Only used for backwards compatibility. References a ctColor in indexedColors.
      • setIndexed

        public void setIndexed​(int indexed)
        Indexed ctColor value. Only used for backwards compatibility. References a ctColor in indexedColors.
        Parameters:
        indexed - color index
      • getRGB

        public byte[] getRGB()
        Standard Red Green Blue ctColor value (RGB). If there was an A (Alpha) value, it will be stripped.
        Specified by:
        getRGB in class ExtendedColor
        Returns:
        Standard Red Green Blue ctColor value (RGB) bytes. If there was an A (Alpha) value, it will be stripped.
      • getARGB

        public byte[] getARGB()
        Standard Alpha Red Green Blue ctColor value (ARGB).
        Specified by:
        getARGB in class ExtendedColor
        Returns:
        Standard Alpha Red Green Blue ctColor value (ARGB) bytes.
      • setRGB

        public void setRGB​(byte[] rgb)
        Standard Alpha Red Green Blue ctColor value (ARGB).
        Specified by:
        setRGB in class ExtendedColor
        Parameters:
        rgb - bytes
      • getTheme

        public int getTheme()
        Index into the clrScheme collection, referencing a particular sysClr or srgbClr value expressed in the Theme part.
        Specified by:
        getTheme in class ExtendedColor
        Returns:
        Index of Theme color, if ExtendedColor.isThemed() is true
      • setTheme

        public void setTheme​(int theme)
        Index into the clrScheme collection, referencing a particular sysClr or srgbClr value expressed in the Theme part.
        Parameters:
        theme - index
      • getTint

        public double getTint()
        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 class ExtendedColor
        Returns:
        the tint value
      • setTint

        public void setTint​(double tint)
        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 class ExtendedColor
        Parameters:
        tint - the tint value
      • getCTColor

        @Internal
        public CTColor getCTColor()
        Returns the underlying XML bean
        Returns:
        the underlying XML bean
      • toXSSFColor

        public static XSSFColor toXSSFColor​(Color color)
        Checked type cast color to an XSSFColor.
        Parameters:
        color - the color to type cast
        Returns:
        the type casted color
        Throws:
        java.lang.IllegalArgumentException - if color is null or is not an instance of XSSFColor
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object