Farbnamen werden nun in Colo-Objekte geparsed
`Color.parseString(String)` liest nun eine Datei mit Farbnamen und Hexcode Kombinationen ein. Wird der String in der Liste der Farbnamen gefunden, wird aus dem entsprechenden Hexcode ein `Color`-Objekt erzeugt.
This commit is contained in:
parent
ec30afd441
commit
47827683e8
|
@ -4,6 +4,10 @@ import java.awt.*;
|
|||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.awt.image.ColorModel;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
/**
|
||||
* Repräsentiert eine Farbe in der Zeichenmaschine.
|
||||
|
@ -221,19 +225,37 @@ public class Color implements Paint {
|
|||
return Color.getRGBColor(rgb);
|
||||
}
|
||||
|
||||
public static Color parseString( String pColor ) {
|
||||
pColor = pColor.toLowerCase().strip();
|
||||
if( pColor.contains("red") || pColor.contains("rot") ) {
|
||||
return Color.RED.copy();
|
||||
} else if( pColor.contains("blue") || pColor.contains("blau") ) {
|
||||
return Color.BLUE.copy();
|
||||
} else if( pColor.contains("green") || pColor.contains("grün") || pColor.contains("gruen") ) {
|
||||
return Color.GREEN.copy();
|
||||
} else if( pColor.contains("yellow") || pColor.contains("gelb") ) {
|
||||
return Color.YELLOW.copy();
|
||||
} else {
|
||||
return new Color();
|
||||
/**
|
||||
* Erstellt aus einem Farbnamen ein Farbobjekt.
|
||||
* <p>
|
||||
* Die gültigen Farbnamen können unter <a
|
||||
* href="https://htmlcolors.com/color-names">https://htmlcolors.com/color-names</a>
|
||||
* nachgeschlagen werden.
|
||||
*
|
||||
* @param color Der Name einer Farbe.
|
||||
* @return Ein Farbobjekt.
|
||||
*/
|
||||
public static Color parseString( String color ) {
|
||||
color = color.toLowerCase().strip();
|
||||
|
||||
// Parse colornames file and return first match
|
||||
try(
|
||||
InputStream in = Color.class.getResourceAsStream("colornames.csv");
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(in))
|
||||
) {
|
||||
String line;
|
||||
while( (line = reader.readLine()) != null ) {
|
||||
String[] parts = line.split(",");
|
||||
if( parts.length == 2 ) {
|
||||
if( parts[0].equals(color) ) {
|
||||
return Color.parseHexcode(parts[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch( IOException ex ) {
|
||||
// LOG?
|
||||
}
|
||||
return new Color();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,342 @@
|
|||
algae green,#64e986
|
||||
aliceblue,#f0f8ff
|
||||
alien green,#6cc417
|
||||
antiquewhite,#faebd7
|
||||
aquamarine,#7fffd4
|
||||
army brown,#827b60
|
||||
ash gray,#666362
|
||||
avocado green,#b2c248
|
||||
aztech purple,#893bff
|
||||
azure,#f0ffff
|
||||
baby blue,#95b9c7
|
||||
bashful pink,#c25283
|
||||
basket ball orange,#f88158
|
||||
battleship gray,#848482
|
||||
bean red,#f75d59
|
||||
bee yellow,#e9ab17
|
||||
beer,#fbb117
|
||||
beetle green,#4c787e
|
||||
beige,#f5f5dc
|
||||
black cat,#413839
|
||||
black cow,#4c4646
|
||||
black eel,#463e3f
|
||||
black,#000000
|
||||
blanchedalmond,#ffebcd
|
||||
blonde,#fbf6d9
|
||||
blood red,#7e3517
|
||||
blossom pink,#f9b7ff
|
||||
blue angel,#b7ceec
|
||||
blue diamond,#4ee2ec
|
||||
blue dress,#157dec
|
||||
blue eyes,#1569c7
|
||||
blue gray,#98afc7
|
||||
blue green,#7bccb5
|
||||
blue hosta,#77bfc7
|
||||
blue ivy,#3090c7
|
||||
blue jay,#2b547e
|
||||
blue koi,#659ec7
|
||||
blue lagoon,#8eebec
|
||||
blue lotus,#6960ec
|
||||
blue orchid,#1f45fc
|
||||
blue ribbon,#306eff
|
||||
blue whale,#342d7e
|
||||
blue zircon,#57feff
|
||||
blueberry blue,#0041c2
|
||||
blush pink,#e6a9ec
|
||||
blush red,#e56e94
|
||||
brass,#b5a642
|
||||
bright gold,#fdd017
|
||||
bright neon pink,#f433ff
|
||||
bronze,#cd7f32
|
||||
brown bear,#835c3b
|
||||
brown sugar,#e2a76f
|
||||
bullet shell,#af9b60
|
||||
burgundy,#8c001a
|
||||
burlywood,#deb887
|
||||
burnt pink,#c12267
|
||||
butterfly blue,#38acec
|
||||
cadillac pink,#e38aae
|
||||
camel brown,#c19a6b
|
||||
camouflage green,#78866b
|
||||
cantaloupe,#ffa62f
|
||||
caramel,#c68e17
|
||||
carbon gray,#625d5d
|
||||
carnation pink,#f778a1
|
||||
celeste,#50ebec
|
||||
champagne,#f7e7ce
|
||||
charcoal,#34282c
|
||||
chartreuse,#8afb17
|
||||
cherry red,#c24641
|
||||
chestnut red,#c34a2c
|
||||
chestnut,#954535
|
||||
chilli pepper,#c11b17
|
||||
chocolate,#c85a17
|
||||
cinnamon,#c58917
|
||||
cloudy gray,#6d6968
|
||||
clover green,#3ea055
|
||||
cobalt blue,#0020c2
|
||||
coffee,#6f4e37
|
||||
columbia blue,#87afc7
|
||||
construction cone orange,#f87431
|
||||
cookie brown,#c7a317
|
||||
copper,#b87333
|
||||
coral blue,#afdcec
|
||||
coral,#ff7f50
|
||||
corn yellow,#fff380
|
||||
cornflower blue,#6495ed
|
||||
cornsilk,#fff8dc
|
||||
cotton candy,#fcdfff
|
||||
cranberry,#9f000f
|
||||
cream,#ffffcc
|
||||
crimson,#e238ec
|
||||
crocus purple,#9172ec
|
||||
crystal blue,#5cb3ff
|
||||
cyan opaque,#92c7c7
|
||||
cyan or aqua,#00ffff
|
||||
dark carnation pink,#c12283
|
||||
dark forest green,#254117
|
||||
dark goldenrod,#af7817
|
||||
dark orange,#f88017
|
||||
dark orchid,#7d1b7e
|
||||
dark salmon,#e18b6b
|
||||
dark sea green,#8bb381
|
||||
dark slate blue,#2b3856
|
||||
dark slate grey,#25383c
|
||||
dark turquoise,#3b9c9c
|
||||
dark violet,#842dce
|
||||
day sky blue,#82caff
|
||||
deep peach,#ffcba4
|
||||
deep pink,#f52887
|
||||
deep sky blue,#3bb9ff
|
||||
denim blue,#79baec
|
||||
denim dark blue,#151b8d
|
||||
desert sand,#edc9af
|
||||
dimorphotheca magenta,#e3319d
|
||||
dodger blue,#1589ff
|
||||
dollar bill green,#85bb65
|
||||
dragon green,#6afb92
|
||||
dull purple,#7f525d
|
||||
earth blue,#0000a0
|
||||
eggplant,#614051
|
||||
electric blue,#9afeff
|
||||
emerald green,#5ffb17
|
||||
fall leaf brown,#c8b560
|
||||
fern green,#667c26
|
||||
ferrari red,#f70d1a
|
||||
fire engine red,#f62817
|
||||
firebrick,#800517
|
||||
flamingo pink,#f9a7b0
|
||||
forest green,#4e9258
|
||||
frog green,#99c68e
|
||||
ginger brown,#c9be62
|
||||
glacial blue ice,#368bc1
|
||||
golden brown,#eac117
|
||||
goldenrod,#edda74
|
||||
granite,#837e7c
|
||||
grape,#5e5a80
|
||||
grapefruit,#dc381f
|
||||
gray cloud,#b6b6b4
|
||||
gray dolphin,#5c5858
|
||||
gray goose,#d1d0ce
|
||||
gray wolf,#504a4b
|
||||
gray,#736f6e
|
||||
grayish turquoise,#5e7d7e
|
||||
green apple,#4cc417
|
||||
green onion,#6aa121
|
||||
green peas,#89c35c
|
||||
green snake,#6cbb3c
|
||||
green thumb,#b5eaaa
|
||||
green yellow,#b1fb17
|
||||
green,#00ff00
|
||||
greenish blue,#307d7e
|
||||
gunmetal,#2c3539
|
||||
halloween orange,#e66c2c
|
||||
harvest gold,#ede275
|
||||
hazel green,#617c58
|
||||
heliotrope purple,#d462ff
|
||||
hot pink,#f660ab
|
||||
hummingbird green,#7fe817
|
||||
iceberg,#56a5ec
|
||||
iguana green,#9cb071
|
||||
indigo,#4b0082
|
||||
iridium,#3d3c3a
|
||||
jade green,#5efb6e
|
||||
jasmine purple,#a23bec
|
||||
jeans blue,#a0cfec
|
||||
jellyfish,#46c7c7
|
||||
jet gray,#616d7e
|
||||
jungle green,#347c2c
|
||||
kelly green,#4cc552
|
||||
khaki rose,#c5908e
|
||||
khaki,#ada96e
|
||||
lapis blue,#15317e
|
||||
lava red,#e42217
|
||||
lavender blue,#e3e4fa
|
||||
lavender pinocchio,#ebdde2
|
||||
lawn green,#87f717
|
||||
lemon chiffon,#fff8c6
|
||||
light aquamarine,#93ffe8
|
||||
light blue,#addfff
|
||||
light coral,#e77471
|
||||
light cyan,#e0ffff
|
||||
light jade,#c3fdb8
|
||||
light pink,#faafba
|
||||
light salmon,#f9966b
|
||||
light sea green,#3ea99f
|
||||
light sky blue,#82cafa
|
||||
light slate blue,#736aff
|
||||
light slate gray,#6d7b8d
|
||||
light slate,#ccffff
|
||||
light steel blue,#728fce
|
||||
lilac,#c8a2c8
|
||||
lime green,#41a317
|
||||
lipstick pink,#c48793
|
||||
love red,#e41b17
|
||||
lovely purple,#7f38ec
|
||||
macaroni and cheese,#f2bb66
|
||||
macaw blue green,#43bfc7
|
||||
magenta,#ff00ff
|
||||
mahogany,#c04000
|
||||
mango orange,#ff8040
|
||||
marble blue,#566d7e
|
||||
maroon,#810541
|
||||
mauve,#e0b0ff
|
||||
medium aquamarine,#348781
|
||||
medium forest green,#347235
|
||||
medium orchid,#b048b5
|
||||
medium purple,#8467d7
|
||||
medium sea green,#306754
|
||||
medium spring green,#348017
|
||||
medium turquoise,#48cccd
|
||||
medium violet red,#ca226b
|
||||
metallic silver,#bcc6cc
|
||||
midnight blue,#151b54
|
||||
midnight,#2b1b17
|
||||
milk white,#fefcff
|
||||
mint green,#98ff98
|
||||
mist blue,#646d7e
|
||||
misty rose,#fbbbb9
|
||||
moccasin,#827839
|
||||
mocha,#493d26
|
||||
mustard,#ffdb58
|
||||
navy blue,#000080
|
||||
nebula green,#59e817
|
||||
neon pink,#f535aa
|
||||
night,#0c090a
|
||||
northern lights blue,#78c7c7
|
||||
oak brown,#806517
|
||||
ocean blue,#2b65ec
|
||||
oil,#3b3131
|
||||
orange gold,#d4a017
|
||||
orange salmon,#c47451
|
||||
pale blue lily,#cfecec
|
||||
pale violet red,#d16587
|
||||
papaya orange,#e56717
|
||||
parchment,#ffffc2
|
||||
pastel blue,#b4cfec
|
||||
peach,#ffe5b4
|
||||
pearl,#fdeef4
|
||||
periwinkle,#e9cfec
|
||||
pig pink,#fdd7e4
|
||||
pine green,#387c44
|
||||
pink bow,#c48189
|
||||
pink bubblegum,#ffdfdd
|
||||
pink cupcake,#e45e9d
|
||||
pink daisy,#e799a3
|
||||
pink lemonade,#e4287c
|
||||
pink rose,#e7a1b0
|
||||
pink,#faafbe
|
||||
pistachio green,#9dc209
|
||||
platinum,#e5e4e2
|
||||
plum pie,#7d0541
|
||||
plum purple,#583759
|
||||
plum velvet,#7d0552
|
||||
plum,#b93b8f
|
||||
powder blue,#c6deff
|
||||
puce,#7f5a58
|
||||
pumpkin orange,#f87217
|
||||
purple amethyst,#6c2dc7
|
||||
purple daffodil,#b041ff
|
||||
purple dragon,#c38ec7
|
||||
purple flower,#a74ac7
|
||||
purple haze,#4e387e
|
||||
purple iris,#571b7e
|
||||
purple jam,#6a287e
|
||||
purple mimosa,#9e7bff
|
||||
purple monster,#461b7e
|
||||
purple sage bush,#7a5dc7
|
||||
purple,#8e35ef
|
||||
red dirt,#7f5217
|
||||
red fox,#c35817
|
||||
red wine,#990012
|
||||
red,#ff0000
|
||||
robin egg blue,#bdedff
|
||||
rogue pink,#c12869
|
||||
rose gold,#ecc5c0
|
||||
rose,#e8adaa
|
||||
rosy brown,#b38481
|
||||
rosy finch,#7f4e52
|
||||
royal blue,#2b60de
|
||||
rubber ducky yellow,#ffd801
|
||||
ruby red,#f62217
|
||||
rust,#c36241
|
||||
saffron,#fbb917
|
||||
sage green,#848b79
|
||||
salad green,#a1c935
|
||||
sand,#c2b280
|
||||
sandstone,#786d5f
|
||||
sandy brown,#ee9a4d
|
||||
sangria,#7e3817
|
||||
sapphire blue,#2554c7
|
||||
scarlet,#ff2400
|
||||
school bus yellow,#e8a317
|
||||
sea blue,#c2dfff
|
||||
sea green,#4e8975
|
||||
sea turtle green,#438d80
|
||||
seashell,#fff5ee
|
||||
seaweed green,#437c17
|
||||
sedona,#cc6600
|
||||
sepia,#7f462c
|
||||
shamrock green,#347c17
|
||||
shocking orange,#e55b3c
|
||||
sienna,#8a4117
|
||||
silk blue,#488ac7
|
||||
sky blue,#6698ff
|
||||
slate blue,#737ca1
|
||||
slate gray,#657383
|
||||
slime green,#bce954
|
||||
smokey gray,#726e6d
|
||||
spring green,#4aa02c
|
||||
steel blue,#4863a0
|
||||
stoplight go green,#57e964
|
||||
sun yellow,#ffe87c
|
||||
sunrise orange,#e67451
|
||||
tan brown,#ece5b6
|
||||
tangerine,#e78a61
|
||||
taupe,#483c32
|
||||
tea green,#ccfb5d
|
||||
teal,#008080
|
||||
thistle,#d2b9d3
|
||||
tiffany blue,#81d8d0
|
||||
tiger orange,#c88141
|
||||
tron blue,#7dfdfe
|
||||
tulip pink,#c25a7c
|
||||
turquoise,#43c6db
|
||||
tyrian purple,#c45aec
|
||||
valentine red,#e55451
|
||||
vampire gray,#565051
|
||||
vanilla,#f3e5ab
|
||||
velvet maroon,#7e354d
|
||||
venom green,#728c00
|
||||
viola purple,#7e587e
|
||||
violet red,#f6358a
|
||||
violet,#8d38c9
|
||||
water,#ebf4fa
|
||||
watermelon pink,#fc6c85
|
||||
white,#ffffff
|
||||
windows blue,#357ec7
|
||||
wisteria purple,#c6aec7
|
||||
wood,#966f33
|
||||
yellow green,#52d017
|
||||
yellow,#ffff00
|
||||
zombie green,#54c571
|
|
|
@ -147,6 +147,36 @@ class ColorTest {
|
|||
|
||||
@Test
|
||||
void parseHexcode() {
|
||||
Color c;
|
||||
|
||||
c = Color.parseHexcode("#f05025");
|
||||
assertEquals(Color.RED, c);
|
||||
|
||||
c = Color.parseHexcode("#F8EF22");
|
||||
assertEquals(Color.YELLOW, c);
|
||||
|
||||
c = Color.parseHexcode("#FF40ff");
|
||||
assertEquals(new Color(255, 64, 255), c);
|
||||
|
||||
// TODO: Test hexcodes of length 3, 6 and 9
|
||||
// TODO: Test malformed hexcodes
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseString() {
|
||||
Color c;
|
||||
|
||||
c = Color.parseString("red");
|
||||
assertEquals(new Color(255, 0, 0), c);
|
||||
|
||||
c = Color.parseString("zombie green");
|
||||
assertEquals(Color.parseHexcode("#54c571"), c);
|
||||
|
||||
c = Color.parseString("algae green");
|
||||
assertEquals(new Color(100, 233, 134), c);
|
||||
|
||||
c = Color.parseString("light slate gray");
|
||||
assertEquals(Color.parseHexcode("#6d7b8d"), c);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -173,10 +203,6 @@ class ColorTest {
|
|||
void HSLtoRGB() {
|
||||
}
|
||||
|
||||
@Test
|
||||
void testHSLtoRGB() {
|
||||
}
|
||||
|
||||
@Test
|
||||
void copy() {
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue