-
-
Save era5mx/271e7cb5157c34974966a4e0b81f8e85 to your computer and use it in GitHub Desktop.
Java class to look up a color name from the rgb values.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* | |
*/ | |
/** | |
* The Enum Color. | |
*/ | |
public enum ColorNameEnum { | |
/** alice blue. */ | |
ALICE_BLUE("AliceBlue"), | |
/** antique white. */ | |
ANTIQUE_WHITE("AntiqueWhite"), | |
/** aqua. */ | |
AQUA("Aqua"), | |
/** aquamarine. */ | |
AQUAMARINE("Aquamarine"), | |
/** azure. */ | |
AZURE("Azure"), | |
/** beige. */ | |
BEIGE("Beige"), | |
/** bisque. */ | |
BISQUE("Bisque"), | |
/** black. */ | |
BLACK("Black"), | |
/** blanched almond. */ | |
BLANCHED_ALMOND("BlanchedAlmond"), | |
/** blue. */ | |
BLUE("Blue"), | |
/** blue violet. */ | |
BLUE_VIOLET("BlueViolet"), | |
/** brown. */ | |
BROWN("Brown"), | |
/** burly wood. */ | |
BURLY_WOOD("BurlyWood"), | |
/** cadet blue. */ | |
CADET_BLUE("CadetBlue"), | |
/** chartreuse. */ | |
CHARTREUSE("Chartreuse"), | |
/** chocolate. */ | |
CHOCOLATE("Chocolate"), | |
/** coral. */ | |
CORAL("Coral"), | |
/** cornflower blue. */ | |
CORNFLOWER_BLUE("CornflowerBlue"), | |
/** cornsilk. */ | |
CORNSILK("Cornsilk"), | |
/** crimson. */ | |
CRIMSON("Crimson"), | |
/** cyan. */ | |
CYAN("Cyan"), | |
/** dark blue. */ | |
DARK_BLUE("DarkBlue"), | |
/** dark cyan. */ | |
DARK_CYAN("DarkCyan"), | |
/** dark golden rod. */ | |
DARK_GOLDEN_ROD("DarkGoldenRod"), | |
/** dark gray. */ | |
DARK_GRAY("DarkGray"), | |
/** dark green. */ | |
DARK_GREEN("DarkGreen"), | |
/** dark khaki. */ | |
DARK_KHAKI("DarkKhaki"), | |
/** dark magenta. */ | |
DARK_MAGENTA("DarkMagenta"), | |
/** dark olivegreen. */ | |
DARK_OLIVEGREEN("DarkOliveGreen"), | |
/** dark orange. */ | |
DARK_ORANGE("DarkOrange"), | |
/** dark orchid. */ | |
DARK_ORCHID("DarkOrchid"), | |
/** dark red. */ | |
DARK_RED("DarkRed"), | |
/** dark salmon. */ | |
DARK_SALMON("DarkSalmon"), | |
/** dark sea green. */ | |
DARK_SEA_GREEN("DarkSeaGreen"), | |
/** dark slate blue. */ | |
DARK_SLATE_BLUE("DarkSlateBlue"), | |
/** dark slate gray. */ | |
DARK_SLATE_GRAY("DarkSlateGray"), | |
/** dark turquoise. */ | |
DARK_TURQUOISE("DarkTurquoise"), | |
/** dark violet. */ | |
DARK_VIOLET("DarkViolet"), | |
/** deep pink. */ | |
DEEP_PINK("DeepPink"), | |
/** deep sky blue. */ | |
DEEP_SKY_BLUE("DeepSkyBlue"), | |
/** dim gray. */ | |
DIM_GRAY("DimGray"), | |
/** dodger blue. */ | |
DODGER_BLUE("DodgerBlue"), | |
/** fire brick. */ | |
FIRE_BRICK("FireBrick"), | |
/** floral white. */ | |
FLORAL_WHITE("FloralWhite"), | |
/** forest green. */ | |
FOREST_GREEN("ForestGreen"), | |
/** fuchsia. */ | |
FUCHSIA("Fuchsia"), | |
/** gainsboro. */ | |
GAINSBORO("Gainsboro"), | |
/** ghost white. */ | |
GHOST_WHITE("GhostWhite"), | |
/** gold. */ | |
GOLD("Gold"), | |
/** golden rod. */ | |
GOLDEN_ROD("GoldenRod"), | |
/** gray. */ | |
GRAY("Gray"), | |
/** green. */ | |
GREEN("Green"), | |
/** green yellow. */ | |
GREEN_YELLOW("GreenYellow"), | |
/** honey dew. */ | |
HONEY_DEW("HoneyDew"), | |
/** hot pink. */ | |
HOT_PINK("HotPink"), | |
/** indian red. */ | |
INDIAN_RED("IndianRed"), | |
/** indigo. */ | |
INDIGO("Indigo"), | |
/** ivory. */ | |
IVORY("Ivory"), | |
/** khaki. */ | |
KHAKI("Khaki"), | |
/** lavender. */ | |
LAVENDER("Lavender"), | |
/** lavender blush. */ | |
LAVENDER_BLUSH("LavenderBlush"), | |
/** lawn green. */ | |
LAWN_GREEN("LawnGreen"), | |
/** lemon chiffon. */ | |
LEMON_CHIFFON("LemonChiffon"), | |
/** light blue. */ | |
LIGHT_BLUE("LightBlue"), | |
/** light coral. */ | |
LIGHT_CORAL("LightCoral"), | |
/** light cyan. */ | |
LIGHT_CYAN("LightCyan"), | |
/** light golden rod yellow. */ | |
LIGHT_GOLDEN_ROD_YELLOW("LightGoldenRodYellow"), | |
/** light gray. */ | |
LIGHT_GRAY("LightGray"), | |
/** light green. */ | |
LIGHT_GREEN("LightGreen"), | |
/** light pink. */ | |
LIGHT_PINK("LightPink"), | |
/** light salmon. */ | |
LIGHT_SALMON("LightSalmon"), | |
/** light sea green. */ | |
LIGHT_SEA_GREEN("LightSeaGreen"), | |
/** light sky blue. */ | |
LIGHT_SKY_BLUE("LightSkyBlue"), | |
/** light slate gray. */ | |
LIGHT_SLATE_GRAY("LightSlateGray"), | |
/** light steel blue. */ | |
LIGHT_STEEL_BLUE("LightSteelBlue"), | |
/** light yellow. */ | |
LIGHT_YELLOW("LightYellow"), | |
/** lime. */ | |
LIME("Lime"), | |
/** lime green. */ | |
LIME_GREEN("LimeGreen"), | |
/** linen. */ | |
LINEN("Linen"), | |
/** magenta. */ | |
MAGENTA("Magenta"), | |
/** maroon. */ | |
MAROON("Maroon"), | |
/** medium aquamarine. */ | |
MEDIUM_AQUAMARINE("MediumAquaMarine"), | |
/** medium blue. */ | |
MEDIUM_BLUE("MediumBlue"), | |
/** medium orchid. */ | |
MEDIUM_ORCHID("MediumOrchid"), | |
/** medium purple. */ | |
MEDIUM_PURPLE("MediumPurple"), | |
/** medium sea green. */ | |
MEDIUM_SEA_GREEN("MediumSeaGreen"), | |
/** medium slate blue. */ | |
MEDIUM_SLATE_BLUE("MediumSlateBlue"), | |
/** medium spring green. */ | |
MEDIUM_SPRING_GREEN("MediumSpringGreen"), | |
/** medium turquoise. */ | |
MEDIUM_TURQUOISE("MediumTurquoise"), | |
/** medium violet red. */ | |
MEDIUM_VIOLET_RED("MediumVioletRed"), | |
/** midnight blue. */ | |
MIDNIGHT_BLUE("MidnightBlue"), | |
/** mint cream. */ | |
MINT_CREAM("MintCream"), | |
/** misty rose. */ | |
MISTY_ROSE("MistyRose"), | |
/** moccasin. */ | |
MOCCASIN("Moccasin"), | |
/** navajo white. */ | |
NAVAJO_WHITE("NavajoWhite"), | |
/** navy. */ | |
NAVY("Navy"), | |
/** old lace. */ | |
OLD_LACE("OldLace"), | |
/** olive. */ | |
OLIVE("Olive"), | |
/** olive drab. */ | |
OLIVE_DRAB("OliveDrab"), | |
/** orange. */ | |
ORANGE("Orange"), | |
/** orange red. */ | |
ORANGE_RED("OrangeRed"), | |
/** orchid. */ | |
ORCHID("Orchid"), | |
/** pale golden rod. */ | |
PALE_GOLDEN_ROD("PaleGoldenRod"), | |
/** pale green. */ | |
PALE_GREEN("PaleGreen"), | |
/** pale turquoise. */ | |
PALE_TURQUOISE("PaleTurquoise"), | |
/** pale violet red. */ | |
PALE_VIOLET_RED("PaleVioletRed"), | |
/** papaya whip. */ | |
PAPAYA_WHIP("PapayaWhip"), | |
/** peach puff. */ | |
PEACH_PUFF("PeachPuff"), | |
/** peru. */ | |
PERU("Peru"), | |
/** pink. */ | |
PINK("Pink"), | |
/** plum. */ | |
PLUM("Plum"), | |
/** powder blue. */ | |
POWDER_BLUE("PowderBlue"), | |
/** purple. */ | |
PURPLE("Purple"), | |
/** red. */ | |
RED("Red"), | |
/** rosy brown. */ | |
ROSY_BROWN("RosyBrown"), | |
/** royal blue. */ | |
ROYAL_BLUE("RoyalBlue"), | |
/** saddle brown. */ | |
SADDLE_BROWN("SaddleBrown"), | |
/** salmon. */ | |
SALMON("Salmon"), | |
/** sandy brown. */ | |
SANDY_BROWN("SandyBrown"), | |
/** sea green. */ | |
SEA_GREEN("SeaGreen"), | |
/** sea shell. */ | |
SEA_SHELL("SeaShell"), | |
/** sienna. */ | |
SIENNA("Sienna"), | |
/** silver. */ | |
SILVER("Silver"), | |
/** sky blue. */ | |
SKY_BLUE("SkyBlue"), | |
/** slate blue. */ | |
SLATE_BLUE("SlateBlue"), | |
/** slate gray. */ | |
SLATE_GRAY("SlateGray"), | |
/** snow. */ | |
SNOW("Snow"), | |
/** spring green. */ | |
SPRING_GREEN("SpringGreen"), | |
/** steel blue. */ | |
STEEL_BLUE("SteelBlue"), | |
/** tan. */ | |
TAN("Tan"), | |
/** teal. */ | |
TEAL("Teal"), | |
/** thistle. */ | |
THISTLE("Thistle"), | |
/** tomato. */ | |
TOMATO("Tomato"), | |
/** turquoise. */ | |
TURQUOISE("Turquoise"), | |
/** violet. */ | |
VIOLET("Violet"), | |
/** wheat. */ | |
WHEAT("Wheat"), | |
/** white. */ | |
WHITE("White"), | |
/** white smoke. */ | |
WHITE_SMOKE("WhiteSmoke"), | |
/** yellow. */ | |
YELLOW("Yellow"), | |
/** yellow green. */ | |
YELLOW_GREEN("YellowGreen"); | |
/** color name. */ | |
private final String color; | |
/** | |
* Instantiates a new color. | |
* | |
* @param color the color | |
*/ | |
private ColorNameEnum(String color) { | |
this.color = color; | |
} | |
/** | |
* Obtener color. | |
* | |
* @return the color | |
*/ | |
public String getColor() { | |
return color; | |
} | |
/** | |
* Obtener color name. | |
* | |
* @param colorName the color name | |
* @return color name | |
*/ | |
public static ColorNameEnum getColorName(final String colorName) { | |
ColorNameEnum ce = null; | |
for (ColorNameEnum colorNameValue : ColorNameEnum.values()) { | |
if (colorName.equals(colorNameValue.getColor())) { | |
ce = colorNameValue; | |
} | |
} | |
return ce; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* | |
*/ | |
import java.awt.Color; | |
import java.util.ArrayList; | |
import com.sky.aclaraciones.enums.ColorNameEnum; | |
/** | |
* Java Code to get a color name from rgb/hex value/awt color | |
* | |
* The part of looking up a color name from the rgb values is edited from | |
* https://gist.github.com/nightlark/6482130#file-gistfile1-java (that has some | |
* errors) by Ryan Mast (nightlark) | |
*/ | |
public class ColorUtils { | |
/** Constant NO_MATCHED_COLOR_NAME. */ | |
private static final String NO_MATCHED_COLOR_NAME = "No matched color name."; | |
/** | |
* Initialize the color list that we have. | |
* | |
* @return the array list | |
*/ | |
private ArrayList<ColorName> initializeColorList() { | |
ArrayList<ColorName> colorList = new ArrayList<>(); | |
colorList.add(new ColorName(ColorNameEnum.ALICE_BLUE, 0xF0, 0xF8, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.ANTIQUE_WHITE, 0xFA, 0xEB, 0xD7)); | |
colorList.add(new ColorName(ColorNameEnum.AQUA, 0x00, 0xFF, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.AQUAMARINE, 0x7F, 0xFF, 0xD4)); | |
colorList.add(new ColorName(ColorNameEnum.AZURE, 0xF0, 0xFF, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.BEIGE, 0xF5, 0xF5, 0xDC)); | |
colorList.add(new ColorName(ColorNameEnum.BISQUE, 0xFF, 0xE4, 0xC4)); | |
colorList.add(new ColorName(ColorNameEnum.BLACK, 0x00, 0x00, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.BLANCHED_ALMOND, 0xFF, 0xEB, 0xCD)); | |
colorList.add(new ColorName(ColorNameEnum.BLUE, 0x00, 0x00, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.BLUE_VIOLET, 0x8A, 0x2B, 0xE2)); | |
colorList.add(new ColorName(ColorNameEnum.BROWN, 0xA5, 0x2A, 0x2A)); | |
colorList.add(new ColorName(ColorNameEnum.BURLY_WOOD, 0xDE, 0xB8, 0x87)); | |
colorList.add(new ColorName(ColorNameEnum.CADET_BLUE, 0x5F, 0x9E, 0xA0)); | |
colorList.add(new ColorName(ColorNameEnum.CHARTREUSE, 0x7F, 0xFF, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.CHOCOLATE, 0xD2, 0x69, 0x1E)); | |
colorList.add(new ColorName(ColorNameEnum.CORAL, 0xFF, 0x7F, 0x50)); | |
colorList.add(new ColorName(ColorNameEnum.CORNFLOWER_BLUE, 0x64, 0x95, 0xED)); | |
colorList.add(new ColorName(ColorNameEnum.CORNSILK, 0xFF, 0xF8, 0xDC)); | |
colorList.add(new ColorName(ColorNameEnum.CRIMSON, 0xDC, 0x14, 0x3C)); | |
colorList.add(new ColorName(ColorNameEnum.CYAN, 0x00, 0xFF, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_BLUE, 0x00, 0x00, 0x8B)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_CYAN, 0x00, 0x8B, 0x8B)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_GOLDEN_ROD, 0xB8, 0x86, 0x0B)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_GRAY, 0xA9, 0xA9, 0xA9)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_GREEN, 0x00, 0x64, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_KHAKI, 0xBD, 0xB7, 0x6B)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_MAGENTA, 0x8B, 0x00, 0x8B)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_OLIVEGREEN, 0x55, 0x6B, 0x2F)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_ORANGE, 0xFF, 0x8C, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_ORCHID, 0x99, 0x32, 0xCC)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_RED, 0x8B, 0x00, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_SALMON, 0xE9, 0x96, 0x7A)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_SEA_GREEN, 0x8F, 0xBC, 0x8F)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_SLATE_BLUE, 0x48, 0x3D, 0x8B)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_SLATE_GRAY, 0x2F, 0x4F, 0x4F)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_TURQUOISE, 0x00, 0xCE, 0xD1)); | |
colorList.add(new ColorName(ColorNameEnum.DARK_VIOLET, 0x94, 0x00, 0xD3)); | |
colorList.add(new ColorName(ColorNameEnum.DEEP_PINK, 0xFF, 0x14, 0x93)); | |
colorList.add(new ColorName(ColorNameEnum.DEEP_SKY_BLUE, 0x00, 0xBF, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.DIM_GRAY, 0x69, 0x69, 0x69)); | |
colorList.add(new ColorName(ColorNameEnum.DODGER_BLUE, 0x1E, 0x90, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.FIRE_BRICK, 0xB2, 0x22, 0x22)); | |
colorList.add(new ColorName(ColorNameEnum.FLORAL_WHITE, 0xFF, 0xFA, 0xF0)); | |
colorList.add(new ColorName(ColorNameEnum.FOREST_GREEN, 0x22, 0x8B, 0x22)); | |
colorList.add(new ColorName(ColorNameEnum.FUCHSIA, 0xFF, 0x00, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.GAINSBORO, 0xDC, 0xDC, 0xDC)); | |
colorList.add(new ColorName(ColorNameEnum.GHOST_WHITE, 0xF8, 0xF8, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.GOLD, 0xFF, 0xD7, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.GOLDEN_ROD, 0xDA, 0xA5, 0x20)); | |
colorList.add(new ColorName(ColorNameEnum.GRAY, 0x80, 0x80, 0x80)); | |
colorList.add(new ColorName(ColorNameEnum.GREEN, 0x00, 0x80, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.GREEN_YELLOW, 0xAD, 0xFF, 0x2F)); | |
colorList.add(new ColorName(ColorNameEnum.HONEY_DEW, 0xF0, 0xFF, 0xF0)); | |
colorList.add(new ColorName(ColorNameEnum.HOT_PINK, 0xFF, 0x69, 0xB4)); | |
colorList.add(new ColorName(ColorNameEnum.INDIAN_RED, 0xCD, 0x5C, 0x5C)); | |
colorList.add(new ColorName(ColorNameEnum.INDIGO, 0x4B, 0x00, 0x82)); | |
colorList.add(new ColorName(ColorNameEnum.IVORY, 0xFF, 0xFF, 0xF0)); | |
colorList.add(new ColorName(ColorNameEnum.KHAKI, 0xF0, 0xE6, 0x8C)); | |
colorList.add(new ColorName(ColorNameEnum.LAVENDER, 0xE6, 0xE6, 0xFA)); | |
colorList.add(new ColorName(ColorNameEnum.LAVENDER_BLUSH, 0xFF, 0xF0, 0xF5)); | |
colorList.add(new ColorName(ColorNameEnum.LAWN_GREEN, 0x7C, 0xFC, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.LEMON_CHIFFON, 0xFF, 0xFA, 0xCD)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_BLUE, 0xAD, 0xD8, 0xE6)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_CORAL, 0xF0, 0x80, 0x80)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_CYAN, 0xE0, 0xFF, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_GOLDEN_ROD_YELLOW, 0xFA, 0xFA, 0xD2)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_GRAY, 0xD3, 0xD3, 0xD3)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_GREEN, 0x90, 0xEE, 0x90)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_PINK, 0xFF, 0xB6, 0xC1)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_SALMON, 0xFF, 0xA0, 0x7A)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_SEA_GREEN, 0x20, 0xB2, 0xAA)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_SKY_BLUE, 0x87, 0xCE, 0xFA)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_SLATE_GRAY, 0x77, 0x88, 0x99)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_STEEL_BLUE, 0xB0, 0xC4, 0xDE)); | |
colorList.add(new ColorName(ColorNameEnum.LIGHT_YELLOW, 0xFF, 0xFF, 0xE0)); | |
colorList.add(new ColorName(ColorNameEnum.LIME, 0x00, 0xFF, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.LIME_GREEN, 0x32, 0xCD, 0x32)); | |
colorList.add(new ColorName(ColorNameEnum.LINEN, 0xFA, 0xF0, 0xE6)); | |
colorList.add(new ColorName(ColorNameEnum.MAGENTA, 0xFF, 0x00, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.MAROON, 0x80, 0x00, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.MEDIUM_AQUAMARINE, 0x66, 0xCD, 0xAA)); | |
colorList.add(new ColorName(ColorNameEnum.MEDIUM_BLUE, 0x00, 0x00, 0xCD)); | |
colorList.add(new ColorName(ColorNameEnum.MEDIUM_ORCHID, 0xBA, 0x55, 0xD3)); | |
colorList.add(new ColorName(ColorNameEnum.MEDIUM_PURPLE, 0x93, 0x70, 0xDB)); | |
colorList.add(new ColorName(ColorNameEnum.MEDIUM_SEA_GREEN, 0x3C, 0xB3, 0x71)); | |
colorList.add(new ColorName(ColorNameEnum.MEDIUM_SLATE_BLUE, 0x7B, 0x68, 0xEE)); | |
colorList.add(new ColorName(ColorNameEnum.MEDIUM_SPRING_GREEN, 0x00, 0xFA, 0x9A)); | |
colorList.add(new ColorName(ColorNameEnum.MEDIUM_TURQUOISE, 0x48, 0xD1, 0xCC)); | |
colorList.add(new ColorName(ColorNameEnum.MEDIUM_VIOLET_RED, 0xC7, 0x15, 0x85)); | |
colorList.add(new ColorName(ColorNameEnum.MIDNIGHT_BLUE, 0x19, 0x19, 0x70)); | |
colorList.add(new ColorName(ColorNameEnum.MINT_CREAM, 0xF5, 0xFF, 0xFA)); | |
colorList.add(new ColorName(ColorNameEnum.MISTY_ROSE, 0xFF, 0xE4, 0xE1)); | |
colorList.add(new ColorName(ColorNameEnum.MOCCASIN, 0xFF, 0xE4, 0xB5)); | |
colorList.add(new ColorName(ColorNameEnum.NAVAJO_WHITE, 0xFF, 0xDE, 0xAD)); | |
colorList.add(new ColorName(ColorNameEnum.NAVY, 0x00, 0x00, 0x80)); | |
colorList.add(new ColorName(ColorNameEnum.OLD_LACE, 0xFD, 0xF5, 0xE6)); | |
colorList.add(new ColorName(ColorNameEnum.OLIVE, 0x80, 0x80, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.OLIVE_DRAB, 0x6B, 0x8E, 0x23)); | |
colorList.add(new ColorName(ColorNameEnum.ORANGE, 0xFF, 0xA5, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.ORANGE_RED, 0xFF, 0x45, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.ORCHID, 0xDA, 0x70, 0xD6)); | |
colorList.add(new ColorName(ColorNameEnum.PALE_GOLDEN_ROD, 0xEE, 0xE8, 0xAA)); | |
colorList.add(new ColorName(ColorNameEnum.PALE_GREEN, 0x98, 0xFB, 0x98)); | |
colorList.add(new ColorName(ColorNameEnum.PALE_TURQUOISE, 0xAF, 0xEE, 0xEE)); | |
colorList.add(new ColorName(ColorNameEnum.PALE_VIOLET_RED, 0xDB, 0x70, 0x93)); | |
colorList.add(new ColorName(ColorNameEnum.PAPAYA_WHIP, 0xFF, 0xEF, 0xD5)); | |
colorList.add(new ColorName(ColorNameEnum.PEACH_PUFF, 0xFF, 0xDA, 0xB9)); | |
colorList.add(new ColorName(ColorNameEnum.PERU, 0xCD, 0x85, 0x3F)); | |
colorList.add(new ColorName(ColorNameEnum.PINK, 0xFF, 0xC0, 0xCB)); | |
colorList.add(new ColorName(ColorNameEnum.PLUM, 0xDD, 0xA0, 0xDD)); | |
colorList.add(new ColorName(ColorNameEnum.POWDER_BLUE, 0xB0, 0xE0, 0xE6)); | |
colorList.add(new ColorName(ColorNameEnum.PURPLE, 0x80, 0x00, 0x80)); | |
colorList.add(new ColorName(ColorNameEnum.RED, 0xFF, 0x00, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.ROSY_BROWN, 0xBC, 0x8F, 0x8F)); | |
colorList.add(new ColorName(ColorNameEnum.ROYAL_BLUE, 0x41, 0x69, 0xE1)); | |
colorList.add(new ColorName(ColorNameEnum.SADDLE_BROWN, 0x8B, 0x45, 0x13)); | |
colorList.add(new ColorName(ColorNameEnum.SALMON, 0xFA, 0x80, 0x72)); | |
colorList.add(new ColorName(ColorNameEnum.SANDY_BROWN, 0xF4, 0xA4, 0x60)); | |
colorList.add(new ColorName(ColorNameEnum.SEA_GREEN, 0x2E, 0x8B, 0x57)); | |
colorList.add(new ColorName(ColorNameEnum.SEA_SHELL, 0xFF, 0xF5, 0xEE)); | |
colorList.add(new ColorName(ColorNameEnum.SIENNA, 0xA0, 0x52, 0x2D)); | |
colorList.add(new ColorName(ColorNameEnum.SILVER, 0xC0, 0xC0, 0xC0)); | |
colorList.add(new ColorName(ColorNameEnum.SKY_BLUE, 0x87, 0xCE, 0xEB)); | |
colorList.add(new ColorName(ColorNameEnum.SLATE_BLUE, 0x6A, 0x5A, 0xCD)); | |
colorList.add(new ColorName(ColorNameEnum.SLATE_GRAY, 0x70, 0x80, 0x90)); | |
colorList.add(new ColorName(ColorNameEnum.SNOW, 0xFF, 0xFA, 0xFA)); | |
colorList.add(new ColorName(ColorNameEnum.SPRING_GREEN, 0x00, 0xFF, 0x7F)); | |
colorList.add(new ColorName(ColorNameEnum.STEEL_BLUE, 0x46, 0x82, 0xB4)); | |
colorList.add(new ColorName(ColorNameEnum.TAN, 0xD2, 0xB4, 0x8C)); | |
colorList.add(new ColorName(ColorNameEnum.TEAL, 0x00, 0x80, 0x80)); | |
colorList.add(new ColorName(ColorNameEnum.THISTLE, 0xD8, 0xBF, 0xD8)); | |
colorList.add(new ColorName(ColorNameEnum.TOMATO, 0xFF, 0x63, 0x47)); | |
colorList.add(new ColorName(ColorNameEnum.TURQUOISE, 0x40, 0xE0, 0xD0)); | |
colorList.add(new ColorName(ColorNameEnum.VIOLET, 0xEE, 0x82, 0xEE)); | |
colorList.add(new ColorName(ColorNameEnum.WHEAT, 0xF5, 0xDE, 0xB3)); | |
colorList.add(new ColorName(ColorNameEnum.WHITE, 0xFF, 0xFF, 0xFF)); | |
colorList.add(new ColorName(ColorNameEnum.WHITE_SMOKE, 0xF5, 0xF5, 0xF5)); | |
colorList.add(new ColorName(ColorNameEnum.YELLOW, 0xFF, 0xFF, 0x00)); | |
colorList.add(new ColorName(ColorNameEnum.YELLOW_GREEN, 0x9A, 0xCD, 0x32)); | |
return colorList; | |
} | |
/** | |
* Get the closest color name from our list. | |
* | |
* @param r the r | |
* @param g the g | |
* @param b the b | |
* @return the color name from rgb | |
*/ | |
public String getColorNameFromRgb(int r, int g, int b) { | |
ArrayList<ColorName> colorList = initializeColorList(); | |
ColorName closestMatch = null; | |
int minMSE = Integer.MAX_VALUE; | |
int mse; | |
for (ColorName c : colorList) { | |
mse = c.computeMSE(r, g, b); | |
if (mse < minMSE) { | |
minMSE = mse; | |
closestMatch = c; | |
} | |
} | |
return closestMatch != null ? closestMatch.getName() : NO_MATCHED_COLOR_NAME; | |
} | |
/** | |
* Convert hexColor to rgb, then call getColorNameFromRgb(r, g, b). | |
* | |
* @param hexColor the hex color | |
* @return the color name from hex | |
*/ | |
public String getColorNameFromHex(int hexColor) { | |
int r = (hexColor & 0xFF0000) >> 16; | |
int g = (hexColor & 0xFF00) >> 8; | |
int b = (hexColor & 0xFF); | |
return getColorNameFromRgb(r, g, b); | |
} | |
/** | |
* Color to hex. | |
* | |
* @param c the c | |
* @return the int | |
*/ | |
public int colorToHex(Color c) { | |
return Integer.decode("0x" + Integer.toHexString(c.getRGB()).substring(2)); | |
} | |
/** | |
* Gets the color name from color. | |
* | |
* @param color the color | |
* @return the color name from color | |
*/ | |
public String getColorNameFromColor(Color color) { | |
return getColorNameFromRgb(color.getRed(), color.getGreen(), color.getBlue()); | |
} | |
/** | |
* Gets the color from name. | |
* | |
* @param name the name | |
* @return the color from name | |
*/ | |
public Color getColorFromName(ColorNameEnum name) { | |
Color color = null; | |
ArrayList<ColorName> colorList = initializeColorList(); | |
for (ColorName colorName : colorList) { | |
if (colorName.getName().equals(name.getColor())) { | |
color = new Color(colorName.getR(), colorName.getG(), colorName.getB()); | |
} | |
} | |
return color; | |
} | |
/** | |
* SubClass of ColorUtils. In order to lookup color name | |
* | |
* @author Xiaoxiao Li | |
* | |
*/ | |
public class ColorName { | |
/** The r. */ | |
private int r; | |
/** The g. */ | |
private int g; | |
/** The b. */ | |
private int b; | |
/** The name. */ | |
private String name; | |
/** | |
* Instantiates a new color name. | |
* | |
* @param name the name | |
* @param r the r | |
* @param g the g | |
* @param b the b | |
*/ | |
public ColorName(ColorNameEnum name, int r, int g, int b) { | |
this.r = r; | |
this.g = g; | |
this.b = b; | |
this.name = name.getColor(); | |
} | |
/** | |
* Compute MSE. | |
* | |
* @param pixR the pix R | |
* @param pixG the pix G | |
* @param pixB the pix B | |
* @return the int | |
*/ | |
public int computeMSE(int pixR, int pixG, int pixB) { | |
return (((pixR - r) * (pixR - r) + (pixG - g) * (pixG - g) + (pixB - b) * (pixB - b)) / 3); | |
} | |
/** | |
* Gets the r. | |
* | |
* @return the r | |
*/ | |
public int getR() { | |
return r; | |
} | |
/** | |
* Gets the g. | |
* | |
* @return the g | |
*/ | |
public int getG() { | |
return g; | |
} | |
/** | |
* Gets the b. | |
* | |
* @return the b | |
*/ | |
public int getB() { | |
return b; | |
} | |
/** | |
* Gets the name. | |
* | |
* @return the name | |
*/ | |
public String getName() { | |
return name; | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* | |
*/ | |
import java.awt.Color; | |
import org.apache.commons.lang3.StringUtils; | |
import org.apache.log4j.Logger; | |
import org.junit.Assert; | |
import org.junit.Test; | |
import com.sky.aclaraciones.enums.ColorNameEnum; | |
/** | |
* The Class ColorUtilsTest. | |
*/ | |
public class ColorUtilsTest { | |
/** Constant LOGGER. */ | |
private static final Logger LOGGER = Logger.getLogger(ColorUtilsTest.class); | |
/** ColorUtils. */ | |
private ColorUtils colorUtils; | |
/** | |
* Constructor | |
* @param colorUtils | |
*/ | |
public ColorUtilsTest() { | |
super(); | |
this.colorUtils = new ColorUtils(); | |
} | |
/** | |
* Test method for | |
* {@link com.sky.aclaraciones.utils.ColorUtils#getColorNameFromRgb(int, int, int)}. | |
* | |
* @throws Exception the exception | |
*/ | |
@Test | |
public void testGetColorNameFromRgb() throws Exception { | |
LOGGER.info("Ejecutando testGetColorNameFromRgb()"); | |
String nameColor = colorUtils.getColorNameFromRgb(0, 0, 0); | |
LOGGER.debug("nameColor: [" + nameColor + "]"); | |
Assert.assertTrue(StringUtils.isNotBlank(nameColor)); | |
ColorNameEnum colorName = ColorNameEnum.getColorName(nameColor); | |
Assert.assertNotNull(colorName); | |
} | |
/** | |
* Test method for | |
* {@link com.sky.aclaraciones.utils.ColorUtils#getColorNameFromHex(int)}. | |
* | |
* @throws Exception the exception | |
*/ | |
@Test | |
public void testGetColorNameFromHex() throws Exception { | |
LOGGER.info("Ejecutando testGetColorNameFromHex()"); | |
String nameColor = colorUtils.getColorNameFromHex(256); | |
LOGGER.debug("nameColor: [" + nameColor + "]"); | |
Assert.assertTrue(StringUtils.isNotBlank(nameColor)); | |
ColorNameEnum colorName = ColorNameEnum.getColorName(nameColor); | |
Assert.assertNotNull(colorName); | |
} | |
/** | |
* Test method for | |
* {@link com.sky.aclaraciones.utils.ColorUtils#colorToHex(java.awt.Color)}. | |
* | |
* @throws Exception the exception | |
*/ | |
@Test | |
public void testColorToHex() throws Exception { | |
LOGGER.info("Ejecutando testColorToHex()"); | |
Color color = new Color(256); | |
int hexColor = colorUtils.colorToHex(color); | |
Assert.assertTrue(hexColor > 0); | |
} | |
/** | |
* Test method for | |
* {@link com.sky.aclaraciones.utils.ColorUtils#getColorNameFromColor(java.awt.Color)}. | |
* | |
* @throws Exception the exception | |
*/ | |
@Test | |
public void testGetColorNameFromColor() throws Exception { | |
LOGGER.info("Ejecutando testGetColorNameFromColor()"); | |
Color color = new Color(256); | |
String nameColor = colorUtils.getColorNameFromColor(color); | |
LOGGER.debug("nameColor: [" + nameColor + "]"); | |
Assert.assertTrue(StringUtils.isNotBlank(nameColor)); | |
ColorNameEnum colorName = ColorNameEnum.getColorName(nameColor); | |
Assert.assertNotNull(colorName); | |
} | |
/** | |
* Test method for | |
* {@link com.sky.aclaraciones.utils.ColorUtils#getColorFromName(java.lang.String)}. | |
* | |
* @throws Exception the exception | |
*/ | |
@Test | |
public void testGetColorFromName() throws Exception { | |
LOGGER.info("Ejecutando testGetColorFromName()"); | |
Color color = colorUtils.getColorFromName(ColorNameEnum.CORNSILK); | |
Assert.assertNotNull(color); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment