Package org.apache.fop.util
Class ColorUtil
- java.lang.Object
-
- org.apache.fop.util.ColorUtil
-
public final class ColorUtil extends java.lang.ObjectGeneric Color helper class.This class supports parsing string values into color values and creating color values for strings. It provides a list of standard color names.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCMYK_PSEUDO_PROFILEThe name for the uncalibrated CMYK pseudo-profileprivate static java.util.Map<java.lang.String,java.awt.Color>colorMapKeeps all the predefined and parsed colors.private static org.apache.commons.logging.LoglogLogger instancestatic java.lang.StringSEPARATION_PSEUDO_PROFILEThe name for the Separation pseudo-profile used for spot colors
-
Constructor Summary
Constructors Modifier Constructor Description privateColorUtil()Private constructor since this is an utility class.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.StringcolorToString(java.awt.Color color)Creates a re-parsable string representation of the given color.private static java.awt.ColorcreateColor(int r, int g, int b)private static java.awt.ColorgetsRGBFallback(org.apache.xmlgraphics.java2d.color.ColorWithAlternatives color)private static voidinitializeColorMap()Initializes the colorMap with some predefined values.static booleanisGray(java.awt.Color col)Indicates whether the color is a gray value.static booleanisPseudoProfile(java.lang.String colorProfileName)Indicates whether the given color profile name is one of the pseudo-profiles supported by FOP (ex.static java.awt.ColorlightenColor(java.awt.Color col, float factor)Lightens up a color for groove, ridge, inset and outset border effects.private static java.awt.ColorparseAsCIELabColor(FOUserAgent foUserAgent, java.lang.String value)Parse a color specified using the cie-lab-color() function.private static java.awt.ColorparseAsCMYK(java.lang.String value)Parse a color given with the cmyk() function.private static java.awt.ColorparseAsFopRgbIcc(FOUserAgent foUserAgent, java.lang.String value)Parse a color specified using the fop-rgb-icc() function.private static java.awt.ColorparseAsFopRgbNamedColor(FOUserAgent foUserAgent, java.lang.String value)Parse a color specified using the fop-rgb-named-color() function.private static java.awt.ColorparseAsJavaAWTColor(java.lang.String value)Tries to parse the standard java.awt.Color toString output.private static java.awt.ColorparseAsOCA(java.lang.String value)private static java.awt.ColorparseAsRGB(java.lang.String value)Parse a color given with the rgb() function.private static java.awt.ColorparseAsSystemColor(java.lang.String value)Tries to parse a color given with the system-color() function.static java.awt.ColorparseColorString(FOUserAgent foUserAgent, java.lang.String value)Creates a color from a given string.private static floatparseComponent(java.lang.String argument, float min, float max, java.lang.String function)private static floatparseComponent1(java.lang.String argument, java.lang.String function)private static floatparseComponent255(java.lang.String str, java.lang.String function)private static java.awt.ColorparseFallback(java.lang.String[] args, java.lang.String value)private static java.awt.ColorparseWithHash(java.lang.String value)Parse a color given in the #....private static java.lang.StringtoCIELabFunctionCall(org.apache.xmlgraphics.java2d.color.ColorWithAlternatives color)static java.awt.ColortoCMYKGrayColor(float black)Creates an uncalibrated CMYK color with the given gray value.private static java.lang.StringtoFunctionCall(org.apache.xmlgraphics.java2d.color.ColorWithAlternatives color)Create string representation of a fop-rgb-icc (or fop-rgb-named-color) function call from the given color.private static java.lang.StringtoRGBFunctionCall(java.awt.Color color)private static java.awt.ColortoSRGBColor(java.awt.Color color)private static java.lang.StringunescapeString(java.lang.String iccProfileSrc)
-
-
-
Field Detail
-
CMYK_PSEUDO_PROFILE
public static final java.lang.String CMYK_PSEUDO_PROFILE
The name for the uncalibrated CMYK pseudo-profile- See Also:
- Constant Field Values
-
SEPARATION_PSEUDO_PROFILE
public static final java.lang.String SEPARATION_PSEUDO_PROFILE
The name for the Separation pseudo-profile used for spot colors- See Also:
- Constant Field Values
-
colorMap
private static java.util.Map<java.lang.String,java.awt.Color> colorMap
Keeps all the predefined and parsed colors.This map is used to predefine given colors, as well as speeding up parsing of already parsed colors.
Important: The use of this color map assumes that all Color instances are immutable!
-
log
private static final org.apache.commons.logging.Log log
Logger instance
-
-
Method Detail
-
parseColorString
public static java.awt.Color parseColorString(FOUserAgent foUserAgent, java.lang.String value) throws PropertyException
Creates a color from a given string.This function supports a wide variety of inputs.
- #RGB (hex 0..f)
- #RGBA (hex 0..f)
- #RRGGBB (hex 00..ff)
- #RRGGBBAA (hex 00..ff)
- rgb(r,g,b) (0..255 or 0%..100%)
- java.awt.Color[r=r,g=g,b=b] (0..255)
- system-color(colorname)
- transparent
- colorname
- fop-rgb-icc(r,g,b,cs,cs-src,[num]+) (r/g/b: 0..1, num: 0..1)
- cmyk(c,m,y,k) (0..1)
- Parameters:
foUserAgent- FOUserAgent objectvalue- the string to parse.- Returns:
- a Color representing the string if possible
- Throws:
PropertyException- if the string is not parsable or does not follow any of the given formats.
-
parseAsSystemColor
private static java.awt.Color parseAsSystemColor(java.lang.String value) throws PropertyExceptionTries to parse a color given with the system-color() function.- Parameters:
value- the complete line- Returns:
- a color if possible
- Throws:
PropertyException- if the format is wrong.
-
parseAsJavaAWTColor
private static java.awt.Color parseAsJavaAWTColor(java.lang.String value) throws PropertyExceptionTries to parse the standard java.awt.Color toString output.- Parameters:
value- the complete line- Returns:
- a color if possible
- Throws:
PropertyException- if the format is wrong.- See Also:
Color.toString()
-
parseAsRGB
private static java.awt.Color parseAsRGB(java.lang.String value) throws PropertyExceptionParse a color given with the rgb() function.- Parameters:
value- the complete line- Returns:
- a color if possible
- Throws:
PropertyException- if the format is wrong.
-
parseComponent255
private static float parseComponent255(java.lang.String str, java.lang.String function) throws PropertyException- Throws:
PropertyException
-
parseComponent1
private static float parseComponent1(java.lang.String argument, java.lang.String function) throws PropertyException- Throws:
PropertyException
-
parseComponent
private static float parseComponent(java.lang.String argument, float min, float max, java.lang.String function) throws PropertyException- Throws:
PropertyException
-
parseFallback
private static java.awt.Color parseFallback(java.lang.String[] args, java.lang.String value) throws PropertyException- Throws:
PropertyException
-
parseWithHash
private static java.awt.Color parseWithHash(java.lang.String value) throws PropertyExceptionParse a color given in the #.... format.- Parameters:
value- the complete line- Returns:
- a color if possible
- Throws:
PropertyException- if the format is wrong.
-
parseAsFopRgbIcc
private static java.awt.Color parseAsFopRgbIcc(FOUserAgent foUserAgent, java.lang.String value) throws PropertyException
Parse a color specified using the fop-rgb-icc() function.- Parameters:
value- the function call- Returns:
- a color if possible
- Throws:
PropertyException- if the format is wrong.
-
parseAsFopRgbNamedColor
private static java.awt.Color parseAsFopRgbNamedColor(FOUserAgent foUserAgent, java.lang.String value) throws PropertyException
Parse a color specified using the fop-rgb-named-color() function.- Parameters:
value- the function call- Returns:
- a color if possible
- Throws:
PropertyException- if the format is wrong.
-
parseAsCIELabColor
private static java.awt.Color parseAsCIELabColor(FOUserAgent foUserAgent, java.lang.String value) throws PropertyException
Parse a color specified using the cie-lab-color() function.- Parameters:
value- the function call- Returns:
- a color if possible
- Throws:
PropertyException- if the format is wrong.
-
unescapeString
private static java.lang.String unescapeString(java.lang.String iccProfileSrc)
-
parseAsCMYK
private static java.awt.Color parseAsCMYK(java.lang.String value) throws PropertyExceptionParse a color given with the cmyk() function.- Parameters:
value- the complete line- Returns:
- a color if possible
- Throws:
PropertyException- if the format is wrong.
-
parseAsOCA
private static java.awt.Color parseAsOCA(java.lang.String value) throws PropertyException- Throws:
PropertyException
-
colorToString
public static java.lang.String colorToString(java.awt.Color color)
Creates a re-parsable string representation of the given color.First, the color will be converted into the sRGB colorspace. It will then be printed as #rrggbb, or as #rrrggbbaa if an alpha value is present.
- Parameters:
color- the color to represent.- Returns:
- a re-parsable string representadion.
-
toRGBFunctionCall
private static java.lang.String toRGBFunctionCall(java.awt.Color color)
-
getsRGBFallback
private static java.awt.Color getsRGBFallback(org.apache.xmlgraphics.java2d.color.ColorWithAlternatives color)
-
toSRGBColor
private static java.awt.Color toSRGBColor(java.awt.Color color)
-
toFunctionCall
private static java.lang.String toFunctionCall(org.apache.xmlgraphics.java2d.color.ColorWithAlternatives color)
Create string representation of a fop-rgb-icc (or fop-rgb-named-color) function call from the given color.- Parameters:
color- the color to turn into a function call- Returns:
- the string representing the internal fop-rgb-icc() or fop-rgb-named-color() function call
-
toCIELabFunctionCall
private static java.lang.String toCIELabFunctionCall(org.apache.xmlgraphics.java2d.color.ColorWithAlternatives color)
-
createColor
private static java.awt.Color createColor(int r, int g, int b)
-
initializeColorMap
private static void initializeColorMap()
Initializes the colorMap with some predefined values.
-
lightenColor
public static java.awt.Color lightenColor(java.awt.Color col, float factor)Lightens up a color for groove, ridge, inset and outset border effects.- Parameters:
col- the color to lighten upfactor- factor by which to lighten up (negative values darken the color)- Returns:
- the modified color
-
isPseudoProfile
public static boolean isPseudoProfile(java.lang.String colorProfileName)
Indicates whether the given color profile name is one of the pseudo-profiles supported by FOP (ex. #CMYK).- Parameters:
colorProfileName- the color profile name to check- Returns:
- true if the color profile name is of a built-in pseudo-profile
-
isGray
public static boolean isGray(java.awt.Color col)
Indicates whether the color is a gray value.- Parameters:
col- the color- Returns:
- true if it is a gray value
-
toCMYKGrayColor
public static java.awt.Color toCMYKGrayColor(float black)
Creates an uncalibrated CMYK color with the given gray value.- Parameters:
black- the gray component (0 - 1)- Returns:
- the CMYK color
-
-