diff --git a/components/fpvectorial/svgvectorialreader.pas b/components/fpvectorial/svgvectorialreader.pas index f3c800754d..9305b30e39 100644 --- a/components/fpvectorial/svgvectorialreader.pas +++ b/components/fpvectorial/svgvectorialreader.pas @@ -503,327 +503,212 @@ begin // Support for named colors // List here: http://www.december.com/html/spec/colorsvghex.html - case lValue of - 'black': Result := colBlack; - 'navy': Result.Blue := $8080; - 'darkblue':Result.Blue := $8B8B; - 'mediumblue':Result.Blue := $CDCD; - 'blue': Result := colBlue; - 'darkgreen':Result.Green := $6464; - 'green': Result.Green := $8080; - 'teal': - begin - Result.Green := $8080; - Result.Blue := $8080; - end; - 'darkcyan': - begin - Result.Green := $8B8B; - Result.Blue := $8B8B; - end; - 'deepskyblue': - begin - Result.Green := $BFBF; - Result.Blue := $FFFF; - end; - 'darkturquoise': - begin - Result.Green := $CECE; - Result.Blue := $D1D1; - end; - 'mediumspringgreen': - begin - Result.Green := $FAFA; - Result.Blue := $9A9A; - end; - 'lime': Result := colGreen; - 'springgreen': - begin - Result.Green := $FFFF; - Result.Blue := $7F7F; - end; - 'cyan': Result := colCyan; - 'aqua': Result := colCyan; - 'midnightblue': - begin - Result.Red := $1919; - Result.Green := $1919; - Result.Blue := $7070; - end; - 'dodgerblue': - begin - Result.Red := $1E1E; - Result.Green := $9090; - Result.Blue := $FFFF; - end; - 'lightseagreen': - begin - Result.Red := $2020; - Result.Green := $B2B2; - Result.Blue := $AAAA; - end; - 'forestgreen': - begin - Result.Red := $2222; - Result.Green := $8B8B; - Result.Blue := $2222; - end; - 'seagreen': - begin - Result.Red := $2E2E; - Result.Green := $8B8B; - Result.Blue := $5757; - end; - 'darkslategray', 'darkslategrey': - begin - Result.Red := $2F2F; - Result.Green := $4F4F; - Result.Blue := $4F4F; - end; - 'limegreen': - begin - Result.Red := $3232; - Result.Green := $CDCD; - Result.Blue := $3232; - end; - 'mediumseagreen': - begin - Result.Red := $3C3C; - Result.Green := $CBCB; - Result.Blue := $7171; - end; - 'turquoise': - begin - Result.Red := $4040; - Result.Green := $E0E0; - Result.Blue := $D0D0; - end; - 'royalblue': - begin - Result.Red := $4141; - Result.Green := $6969; - Result.Blue := $E1E1; - end; - 'steelblue': - begin - Result.Red := $4646; - Result.Green := $8282; - Result.Blue := $B4B4; - end; - 'darkslateblue': - begin - Result.Red := $4848; - Result.Green := $3D3D; - Result.Blue := $8B8B; - end; - 'mediumturquoise': - begin - Result.Red := $4848; - Result.Green := $D1D1; - Result.Blue := $CCCC; - end; -{ -indigo #4B0082 - darkolivegreen #556B2F cadetblue #5F9EA0 -cornflowerblue #6495ED - mediumaquamarine #66CDAA dimgrey #696969 -dimgray #696969 - slateblue #6A5ACD olivedrab #6B8E23 -slategrey #708090 - slategray #708090 lightslategray(Hex3) #778899 -lightslategrey(Hex3) #778899 - mediumslateblue #7B68EE lawngreen #7CFC00 -chartreuse #7FFF00 -} - 'aquamarine': - begin - Result.Red := $7F7F; - Result.Green := $FFFF; - Result.Blue := $D4D4; - end; - 'maroon': Result.Red := $8080; - 'purple': Result := colPurple; - 'olive': Result := colOlive; - 'gray', 'grey': Result := colGray; - 'skyblue': - begin - Result.Red := $8787; - Result.Green := $CECE; - Result.Blue := $EBEB; - end; - 'lightskyblue': - begin - Result.Red := $8787; - Result.Green := $CECE; - Result.Blue := $FAFA; - end; - 'blueviolet': - begin - Result.Red := $8A8A; - Result.Green := $2B2B; - Result.Blue := $E2E2; - end; - 'darkred': Result.Red := $8B8B; - 'darkmagenta': - begin - Result.Red := $8B8B; - Result.Blue := $8B8B; - end; -{ -saddlebrown #8B4513 - darkseagreen #8FBC8F lightgreen #90EE90 -mediumpurple #9370DB - darkviolet #9400D3 palegreen #98FB98 -darkorchid #9932CC - yellowgreen #9ACD32 sienna #A0522D -brown #A52A2A - darkgray #A9A9A9 darkgrey #A9A9A9 -lightblue #ADD8E6 - greenyellow #ADFF2F paleturquoise #AFEEEE -lightsteelblue #B0C4DE - powderblue #B0E0E6 firebrick #B22222 -darkgoldenrod #B8860B - mediumorchid #BA55D3 rosybrown #BC8F8F -darkkhaki #BDB76B -} - 'silver': Result := colSilver; - 'mediumvioletred': - begin - Result.Red := $C7C7; - Result.Green := $1515; - Result.Blue := $8585; - end; - 'indianred': - begin - Result.Red := $CDCD; - Result.Green := $5C5C; - Result.Blue := $5C5C; - end; - 'peru': - begin - Result.Red := $CDCD; - Result.Green := $8585; - Result.Blue := $3F3F; - end; - 'chocolate': - begin - Result.Red := $D2D2; - Result.Green := $6969; - Result.Blue := $1E1E; - end; -{ -tan #D2B48C - lightgray #D3D3D3 lightgrey #D3D3D3 -thistle #D8BFD8 - orchid #DA70D6 goldenrod #DAA520 -palevioletred #DB7093 - crimson #DC143C gainsboro #DCDCDC -plum #DDA0DD - burlywood #DEB887 lightcyan #E0FFFF -lavender #E6E6FA -} - 'darksalmon': - begin - Result.Red := $E9E9; - Result.Green := $9696; - Result.Blue := $7A7A; - end; - 'violet': - begin - Result.Red := $EEEE; - Result.Green := $8282; - Result.Blue := $EEEE; - end; - 'palegoldenrod': - begin - Result.Red := $EEEE; - Result.Green := $E8E8; - Result.Blue := $AAAA; - end; - 'lightcoral': - begin - Result.Red := $F0F0; - Result.Green := $8080; - Result.Blue := $8080; - end; - 'khaki': - begin - Result.Red := $F0F0; - Result.Green := $E6E6; - Result.Blue := $8C8C; - end; - 'aliceblue': - begin - Result.Red := $F0F0; - Result.Green := $F8F8; - Result.Blue := $FFFF; - end; - 'honeydew': - begin - Result.Red := $F0F0; - Result.Green := $FFFF; - Result.Blue := $F0F0; - end; - 'azure': - begin - Result.Red := $F0F0; - Result.Green := $FFFF; - Result.Blue := $FFFF; - end; - 'sandybrown': - begin - Result.Red := $F4F4; - Result.Green := $A4A4; - Result.Blue := $6060; - end; -{ - wheat #F5DEB3 beige #F5F5DC -whitesmoke #F5F5F5 - mintcream #F5FFFA ghostwhite #F8F8FF -salmon #FA8072 - antiquewhite #FAEBD7 linen #FAF0E6 -lightgoldenrodyellow #FAFAD2 - oldlace #FDF5E6 -} - 'red': Result := colRed; - 'fuchsia': Result := colFuchsia; - 'magenta': Result := colMagenta; -{ deeppink #FF1493 -orangered #FF4500 - tomato #FF6347 hotpink #FF69B4 -coral #FF7F50 - darkorange #FF8C00 lightsalmon #FFA07A -orange #FFA500 - lightpink #FFB6C1 pink #FFC0CB -gold #FFD700 - peachpuff #FFDAB9 navajowhite #FFDEAD -moccasin #FFE4B5 - bisque #FFE4C4 mistyrose #FFE4E1 -blanchedalmond #FFEBCD - papayawhip #FFEFD5 lavenderblush #FFF0F5 -seashell #FFF5EE - cornsilk #FFF8DC lemonchiffon #FFFACD -floralwhite #FFFAF0 -} - 'snow': - begin - Result.Red := $FFFF; - Result.Green := $FAFA; - Result.Blue := $FAFA; - end; - 'yellow': Result := colYellow; - 'lightyellow': - begin - Result.Red := $FFFF; - Result.Green := $FEFE; - end; - 'ivory': - begin - Result.Red := $FFFF; - Result.Green := $FFFF; - Result.Blue := $F0F0; - end; - 'white': Result := colWhite; + case lValue[1] of + 'a': case lValue of + 'aliceblue' : Result := FPColor($F0F0, $F8F8, $FFFF); + 'antiquewhite' : Result := FPColor($FAFA, $EBEB, $D7D7); + 'aqua' : Result := colCyan; + 'aquamarine' : Result := FPColor($7F7F, $FFFF, $D4D4); + 'azure' : Result := FPColor($F0F0, $FFFF, $FFFF); + end; + + 'b': case lValue of + 'beige' : Result := FPColor($F5F5, $F5F5, $DCDC); + 'bisque' : Result := FPColor($FFFF, $E4E4, $C4C4); + 'black' : Result := colBlack; + 'blanchedalmond' : Result := FPColor($FFFF, $EBEB, $CDCD); + 'blue' : Result := colBlue; + 'blueviolet' : Result := FPColor($8A8A, $2B2B, $E2E2); + 'brown' : Result := FPColor($A5A5, $2A2A, $2A2A); + 'burlywood' : Result := FPColor($DEDE, $B8B8, $8787); + end; + + 'c': case lValue of + 'cadetblue' : Result := FPColor($5F5F, $9E9E, $A0A0); + 'chartreuse' : Result := FPColor($7F7F, $FFFF, $0000); + 'chocolate' : Result := FPColor($D2D2, $6969, $1E1E); + 'coral' : Result := FPColor($FFFF, $7F7F, $5050); + 'cornflowerblue' : Result := FPColor($6464, $9595, $EDED); + 'cornsilk' : Result := FPColor($FFFF, $F8F8, $DCDC); + 'crimson' : Result := FPColor($DCDC, $1414, $3C3C); + 'cyan' : Result := colCyan; + end; + + 'd': case lValue of + 'darkblue' : Result.Blue := $8B8B; + 'darkcyan' : Result := FPColor($0000, $8B8B, $8B8B); + 'darkgoldenrod' : Result := FPColor($B8B8, $8686, $0B0B); + 'darkgray', + 'darkgrey' : Result := FPColor($A9A9, $A9A9, $A9A9); + 'darkgreen' : Result.Green := $6464; + 'darkkhaki' : Result := FPColor($BDBD, $B7B7, $6B6B); + 'darkmagenta' : Result := FPColor($8B8B, $0000, $8B8B); + 'darkolivegreen' : Result := FPColor($5555, $6B6B, $2F2F); + 'darkorange' : Result := FPColor($FFFF, $8C8C, $0000); + 'darkorchid' : Result := FPColor($9999, $3232, $CCCC); + 'darkred' : Result.Red := $8B8B; + 'darksalmon' : Result := FPColor($E9E9, $9696, $7A7A); + 'darkseagreen' : Result := FPColor($8F8F, $BCBC, $8F8F); + 'darkslateblue' : Result := FPColor($4848, $3D3D, $8B8B); + 'darkslategray', + 'darkslategrey' : Result := FPColor($2F2F, $4F4F, $4F4F); + 'darkturquoise' : Result := FPColor($0000, $CECE, $D1D1); + 'darkviolet' : Result := FPColor($9494, $0000, $D3D3); + 'deeppink' : Result := FPColor($FFFF, $1414, $9393); + 'deepskyblue' : Result := FPColor($0000, $BFBF, $FFFF); + 'dimgray', + 'dimgrey' : Result := FPColor($6969, $6969, $6969); + 'dodgerblue' : Result := FPColor($1E1E, $9090, $FFFF); + end; + + 'f': case lValue of + 'firebrick' : Result := FPColor($B2B2, $2222, $2222); + 'floralwhite' : Result := FPColor($FFFF, $FAFA, $F0F0); + 'forestgreen' : Result := FPColor($2222, $8B8B, $2222); + 'fuchsia' : Result := colFuchsia; + end; + + 'g': case lValue of + 'gainsboro' : Result := FPColor($DCDC, $DCDC, $DCDC); + 'ghostwhite' : Result := FPColor($F8F8, $F8F8, $FFFF); + 'gold' : Result := FPColor($FFFF, $D7D7, $0000); + 'goldenrod' : Result := FPColor($DADA, $A5A5, $2020); + 'gray', 'grey' : Result := colGray; + 'green' : Result.Green := $8080; + 'greenyellow' : Result := FPColor($ADAD, $FFFF, $2F2F); + end; + + 'h': case lValue of + 'honeydew' : Result := FPColor($F0F0, $FFFF, $F0F0); + 'hotpink' : Result := FPColor($FFFF, $6969, $B4B4); + end; + + 'i': case lValue of + 'indianred' : Result := FPColor($CDCD, $5C5C, $5C5C); + 'indigo' : Result := FPColor($4B4B, $0000, $8282); + 'ivory' : Result := FPColor($FFFF, $FFFF, $F0F0); + end; + + 'k': case lValue of + 'khaki' : Result := FPColor($F0F0, $E6E6, $8C8C); + end; + + 'l': case lValue of + 'lavender' : Result := FPColor($E6E6, $E6E6, $FAFA); + 'lavenderblush' : Result := FPColor($FFFF, $F0F0, $F5F5); + 'lawngreen' : Result := FPColor($7C7C, $FCFE, $0000); + 'lemonchiffon' : Result := FPColor($FFFF, $FAFA, $CDCD); + 'lightblue' : Result := FPColor($ADAD, $D8D8, $E6E6); + 'lightcoral' : Result := FPColor($F0F0, $8080, $8080); + 'lightcyan' : Result := FPColor($E0E0, $FFFF, $FFFF); + 'lightgoldenrodyellow': Result := FPColor($FAFA, $FAFA, $D2D2); + 'lightgray', + 'lightgrey' : Result := FPColor($D3D3, $D3D3, $D3D3); + 'lightgreen' : Result := FPColor($9090, $EEEE, $9090); + 'lightpink' : Result := FPColor($FFFF, $B6B6, $C1C1); + 'lightsalmon' : Result := FPColor($FFFF, $A0A0, $7A7A); + 'lightseagreen' : Result := FPColor($2020, $B2B2, $AAAA); + 'lightskyblue' : Result := FPColor($8787, $CECE, $FAFA); + 'lightslategray', + 'lightslategrey' : Result := FPColor($7777, $8888, $9999); + 'lightsteelblue' : Result := FPColor($B0B0, $C4C4, $DEDE); + 'lightyellow' : Result := FPColor($FFFF, $FEFE, $0000); + 'lime' : Result := colGreen; + 'limegreen' : Result := FPColor($3232, $CDCD, $3232); + 'linen' : Result := FPColor($FAFA, $F0F0, $E6E6); + end; + + 'm': case lValue of + 'magenta' : Result := colMagenta; + 'maroon' : Result.Red := $8080; + 'mediumaquamarine' : Result := FPColor($6666, $CDCD, $AAAA); + 'mediumblue' : Result.Blue := $CDCD; + 'mediumorchid' : Result := FPColor($BABA, $5555, $D3D3); + 'mediumpurple' : Result := FPColor($9393, $7070, $DBDB); + 'mediumseagreen' : Result := FPColor($3C3C, $CBCB, $7171); + 'mediumslateblue' : Result := FPColor($7B7B, $6868, $EEEE); + 'mediumspringgreen' : Result := FPColor($0000, $FAFA, $9A9A); + 'mediumturquoise' : Result := FPColor($4848, $D1D1, $CCCC); + 'mediumvioletred' : Result := FPColor($C7C7, $1515, $8585); + 'midnightblue' : Result := FPColor($1919, $1919, $7070); + 'mintcream' : Result := FPColor($F5F5, $FFFF, $FAFA); + 'mistyrose' : Result := FPColor($FFFF, $E4E4, $E1E1); + 'moccasin' : Result := FPColor($FFFF, $E4E4, $B5B5); + end; + + 'n': case lValue of + 'navajowhite' : Result := FPColor($FFFF, $DEDE, $ADAD); + 'navy' : Result.Blue := $8080; + end; + + 'o': case lValue of + 'oldlace' : Result := FPColor($FDFD, $F5F5, $E6E6); + 'olive' : Result := colOlive; + 'olivedrab' : Result := FPColor($6B6B, $8E8E, $2323); + 'orange' : Result := FPColor($FFFF, $A5A5, $0000); + 'orangered' : Result := FPColor($FFFF, $4545, $0000); + 'orchid' : Result := FPColor($DADA, $7070, $D6D6); + end; + + 'p': case lValue of + 'palegreen' : Result := FPColor($9898, $FBFB, $9898); + 'palegoldenrod' : Result := FPColor($EEEE, $E8E8, $AAAA); + 'paleturquoise' : Result := FPColor($AFAF, $EEEE, $EEEE); + 'palevioletred' : Result := FPColor($DBDB, $7070, $9393); + 'papayawhip' : Result := FPColor($FFFF, $EFEF, $D5D5); + 'peachpuff' : Result := FPColor($FFFF, $DADA, $B9B9); + 'peru' : Result := FPColor($CDCD, $8585, $3F3F); + 'pink' : Result := FPColor($FFFF, $C0C0, $CBCB); + 'plum' : Result := FPColor($DDDD, $A0A0, $DDDD); + 'powderblue' : Result := FPColor($B0B0, $E0E0, $E6E6); + 'purple' : Result := colPurple; + end; + + 'r': case lValue of + 'red' : Result := colRed; + 'rosybrown' : Result := FPColor($BCBC, $8F8F, $8F8F); + 'royalblue' : Result := FPColor($4141, $6969, $E1E1); + end; + + 's': case lValue of + 'saddlebrown' : Result := FPColor($8B8B, $4545, $1313); + 'salmon' : Result := FPColor($FAFA, $8080, $7272); + 'sandybrown' : Result := FPColor($F4F4, $A4A4, $6060); + 'seagreen' : Result := FPColor($2E2E, $8B8B, $5757); + 'seashell' : Result := FPColor($FFFF, $F5F5, $EEEE); + 'sienna' : Result := FPColor($A0A0, $5252, $2D2D); + 'silver' : Result := colSilver; + 'skyblue' : Result := FPColor($8787, $CECE, $EBEB); + 'slateblue' : Result := FPCOlor($6A6A, $5A5A, $CDCD); + 'slategray', + 'slategrey' : Result := FPColor($7070, $8080, $9090); + 'snow' : Result := FPColor($FFFF, $FAFA, $FAFA); + 'springgreen' : Result := FPColor($0000, $FFFF, $7F7F); + 'steelblue' : Result := FPColor($4646, $8282, $B4B4); + end; + + 't': case lValue of + 'tan' : Result := FPColor($D2D2, $B4B4, $8C8C); + 'teal' : Result := FPColor($0000, $8080, $8080); + 'thistle' : Result := FPColor($D8D8, $BFBF, $D8D8); + 'tomato' : Result := FPColor($FFFF, $6363, $4747); + 'turquoise' : Result := FPColor($4040, $E0E0, $D0D0); + end; + + 'v': case lValue of + 'violet' : Result := FPColor($EEEE, $8282, $EEEE); + end; + + 'w': case lValue of + 'wheat' : Result := FPColor($F5F5, $DEDE, $B3B3); + 'white' : Result := colWhite; + 'whitesmoke' : Result := FPColor($F5F5, $F5F5, $F5F5); + end; + + 'y': case lValue of + 'yellow' : Result := colYellow; + 'yellowgreen' : Result := FPColor($9A9A, $CDCD, $3232); + end; end; end;