colour 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt ADDED
@@ -0,0 +1,4 @@
1
+ == 1.0.0 / 2008-03-22
2
+
3
+ * 1 major enhancement
4
+ * Birthday!
data/Manifest.txt ADDED
@@ -0,0 +1,24 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ bin/colour
6
+ lib/colour.rb
7
+ lib/rgb.rb
8
+ lib/hsv.rb
9
+ lib/standard_colours.rb
10
+ lib/cmyk.rb
11
+ spec/colour_spec.rb
12
+ spec/spec_helper.rb
13
+ tasks/ann.rake
14
+ tasks/annotations.rake
15
+ tasks/bones.rake
16
+ tasks/doc.rake
17
+ tasks/gem.rake
18
+ tasks/manifest.rake
19
+ tasks/post_load.rake
20
+ tasks/rubyforge.rake
21
+ tasks/setup.rb
22
+ tasks/spec.rake
23
+ tasks/svn.rake
24
+ test/test_colour.rb
data/README.txt ADDED
@@ -0,0 +1,55 @@
1
+ colour
2
+ by Wes Devauld
3
+ http://devauld.ca
4
+
5
+ == DESCRIPTION:
6
+
7
+ A library to convert between various representation of colour (RGB, CMYK and HSV), as well as generate swatches based on some colour theory
8
+
9
+ == FEATURES/PROBLEMS:
10
+
11
+ * Representations: to_cmyk, to_rgb, to_hsv, web_hex, hex, web_safe
12
+ * Swatch Generation:
13
+ == SYNOPSIS:
14
+
15
+ irb(main):001:0> require 'colour'
16
+ => true
17
+ irb(main):002:0> include StandardColoursRGB
18
+ => Object
19
+ irb(main):003:0> red.split_complementary()
20
+ => [#<RGB:0x3a7c8 @b=0.5, @g=1.0, @r=0.0>, #<RGB:0x3a174 @b=1.0, @g=0.5, @r=0.0>]
21
+ irb(main):004:0> red.to_cmyk.split_complementary()
22
+ => [#<CMYK:0x1eac8 @m=0.0, @c=1.0, @k=0.0, @y=0.5>, #<CMYK:0x1e0b4 @m=0.5, @c=1.0, @k=0.0, @y=0.0>]
23
+
24
+ == REQUIREMENTS:
25
+
26
+ * None that I know of
27
+
28
+ == INSTALL:
29
+
30
+ sudo gem install colour
31
+
32
+ == LICENSE:
33
+
34
+ The MIT License
35
+
36
+ Copyright (c) 2008
37
+
38
+ Permission is hereby granted, free of charge, to any person obtaining
39
+ a copy of this software and associated documentation files (the
40
+ 'Software'), to deal in the Software without restriction, including
41
+ without limitation the rights to use, copy, modify, merge, publish,
42
+ distribute, sublicense, and/or sell copies of the Software, and to
43
+ permit persons to whom the Software is furnished to do so, subject to
44
+ the following conditions:
45
+
46
+ The above copyright notice and this permission notice shall be
47
+ included in all copies or substantial portions of the Software.
48
+
49
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
50
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
51
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
52
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
53
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
54
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
55
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ # Look in the tasks/setup.rb file for the various options that can be
2
+ # configured in this Rakefile. The .rake files in the tasks directory
3
+ # are where the options are used.
4
+
5
+ load 'tasks/setup.rb'
6
+
7
+ ensure_in_path 'lib'
8
+ require 'colour'
9
+
10
+ task :default => 'spec:run'
11
+
12
+ PROJ.name = 'colour'
13
+ PROJ.authors = 'Wes Devauld'
14
+ PROJ.email = 'http://devauld.ca'
15
+ PROJ.url = 'http://www.ihatework.ca/svn/colour/'
16
+ PROJ.rubyforge_name = 'colour'
17
+ PROJ.group = 5868
18
+
19
+ PROJ.spec_opts << '--color'
data/bin/colour ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.expand_path(
4
+ File.join(File.dirname(__FILE__), '..', 'lib', 'colour'))
5
+
6
+ # Put your code here
7
+
8
+ # EOF
data/lib/cmyk.rb ADDED
@@ -0,0 +1,21 @@
1
+ class CMYK
2
+ attr_accessor :c, :m, :y, :k
3
+ include Colour
4
+ def initialize(c=0.0,m=0.0,y=0.0,k=0.0)
5
+ @c = c.abs.to_f
6
+ @m = m.abs.to_f
7
+ @y = y.abs.to_f
8
+ @k = k.abs.to_f
9
+ end
10
+
11
+ def to_rgb
12
+ RGB.new(
13
+ 1 - (@c * (1 - @k) + @k),
14
+ 1 - (@m * (1 - @k) + @k),
15
+ 1 - (@y * (1 - @k) + @k))
16
+ end
17
+
18
+ def to_hsv
19
+ self.to_rgb.to_hsv
20
+ end
21
+ end
data/lib/colour.rb ADDED
@@ -0,0 +1,141 @@
1
+ # $Id$
2
+
3
+ # Equivalent to a header guard in C/C++
4
+ # Used to prevent the class/module from being loaded more than once
5
+ unless defined? Colour
6
+
7
+ module Colour
8
+ def to_rgb
9
+ self
10
+ end
11
+
12
+ def to_cmyk
13
+ self
14
+ end
15
+
16
+ def to_hsv
17
+ self
18
+ end
19
+
20
+ def web_hex
21
+ self.to_rgb.web_hex
22
+ end
23
+
24
+ def hex
25
+ self.to_rgb.hex
26
+ end
27
+
28
+ def web_safe(depth=1)
29
+ self.to_rgb.web_safe(depth)
30
+ end
31
+
32
+ def to_s
33
+ self.to_rgb.web_hex
34
+ end
35
+
36
+ # Return the complementary colour
37
+ def complementary
38
+ rotate_hue[180]
39
+ end
40
+
41
+ # Return two colours spread distance apart opposite
42
+ # the colour wheel
43
+ def split_complementary(spread=60)
44
+ c = self.class.name.downcase
45
+ hsv = self.to_hsv
46
+ v = [HSV.new(((hsv.h + 540 - spread / 2) % 360),hsv.s,hsv.v).send("to_" + c),
47
+ HSV.new(((hsv.h + 540 + spread / 2) % 360),hsv.s,hsv.v).send("to_" + c)]
48
+ if block_given? then
49
+ v.each do |color| yield color end
50
+ end
51
+ v
52
+ end
53
+
54
+ # Move the specified number of degrees, for the
55
+ # specified number of steps
56
+ def rotate_hue(degrees=180, steps=1)
57
+ c = self.class.name.downcase
58
+ hsv = self.to_hsv
59
+ v = []
60
+ (1..steps).each do |i|
61
+ v << HSV.new((hsv.h + (degrees * i) + 360 * i) % 360, hsv.s, hsv.v).send("to_" + c)
62
+ end
63
+ if block_given? then
64
+ v.each do |color| yield color end
65
+ end
66
+ v
67
+ end
68
+
69
+ def analogous(degrees=30, steps=5, &block)
70
+ if block_given? then
71
+ rotate_hue(degrees, steps) do |c|
72
+ block.call(c)
73
+ end
74
+ else
75
+ rotate_hue(degrees, steps)
76
+ end
77
+ end
78
+
79
+ def triadic(&block)
80
+ if block_given? then
81
+ rotate_hue(120, 2) do |c|
82
+ block.call(c)
83
+ end
84
+ else
85
+ rotate_hue(120,2)
86
+ end
87
+ end
88
+
89
+ #Bones specific stuff
90
+
91
+ # :stopdoc:
92
+ VERSION = '0.1.0'
93
+ LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
94
+ PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
95
+ # :startdoc:
96
+
97
+ # Returns the version string for the library.
98
+ #
99
+ def self.version
100
+ VERSION
101
+ end
102
+
103
+ # Returns the library path for the module. If any arguments are given,
104
+ # they will be joined to the end of the libray path using
105
+ # <tt>File.join</tt>.
106
+ #
107
+ def self.libpath( *args )
108
+ args.empty? ? LIBPATH : ::File.join(LIBPATH, *args)
109
+ end
110
+
111
+ # Returns the lpath for the module. If any arguments are given,
112
+ # they will be joined to the end of the path using
113
+ # <tt>File.join</tt>.
114
+ #
115
+ def self.path( *args )
116
+ args.empty? ? PATH : ::File.join(PATH, *args)
117
+ end
118
+
119
+ # Utility method used to rquire all files ending in .rb that lie in the
120
+ # directory below this file that has the same name as the filename passed
121
+ # in. Optionally, a specific _directory_ name can be passed in such that
122
+ # the _filename_ does not have to be equivalent to the directory.
123
+ #
124
+ def self.require_all_libs_relative_to( fname, dir = nil )
125
+ dir ||= ::File.basename(fname, '.*')
126
+ search_me = ::File.expand_path(
127
+ ::File.join(::File.dirname(fname), dir, '**', '*.rb'))
128
+
129
+ Dir.glob(search_me).sort.each {|rb| require rb}
130
+ end
131
+ end # module Colour
132
+
133
+ Colour.require_all_libs_relative_to __FILE__
134
+ require 'rgb'
135
+ require 'cmyk'
136
+ require 'standard_colours'
137
+ require 'hsv'
138
+
139
+ end # unless defined?
140
+
141
+ # EOF
data/lib/hsv.rb ADDED
@@ -0,0 +1,44 @@
1
+ # Hue Saturation and Value. Hue can range from [0,360). Saturation and
2
+ # Value are [0,1]
3
+
4
+ class HSV
5
+ attr_accessor :h, :s, :v
6
+ include Colour
7
+
8
+ def initialize(h=0.0, s=0.0, v=0.0)
9
+ @h = h.abs.to_f % 360
10
+ @s = s.abs.to_f
11
+ @v = v.abs.to_f
12
+ end
13
+
14
+ def to_rgb
15
+ if (@s == 0) then #Shade of grey
16
+ RGB.new(@v, @v, @v)
17
+ else
18
+ @h /= 60
19
+ i = @h.floor
20
+ f = @h - i
21
+ p = @v * (1 - @s)
22
+ q = @v * (1 - @s * f)
23
+ t = @v * (1 - @s * (1 - f))
24
+ case i
25
+ when 0:
26
+ RGB.new(v,t,p)
27
+ when 1:
28
+ RGB.new(q,v,p)
29
+ when 2:
30
+ RGB.new(p,v,t)
31
+ when 3:
32
+ RGB.new(p,q,v)
33
+ when 4:
34
+ RGB.new(t,p,v)
35
+ else
36
+ RGB.new(v,p,q)
37
+ end
38
+ end
39
+ end
40
+
41
+ def to_cmyk
42
+ self.to_rgb.to_cmyk
43
+ end
44
+ end
data/lib/rgb.rb ADDED
@@ -0,0 +1,63 @@
1
+ # A representation of a colour in the RGB colour space
2
+ #
3
+ # Stores the numbers internally as floats between 0 and 1
4
+ class RGB
5
+ attr_accessor :r, :g, :b
6
+ include Colour
7
+
8
+ def initialize(r=0.0, g=0.0, b=0.0)
9
+ @r = r.abs.to_f
10
+ @g = g.abs.to_f
11
+ @b = b.abs.to_f
12
+ end
13
+
14
+ def to_cmyk
15
+ min = [@r, @g, @b].min
16
+ if(min == 1) then
17
+ CMYK.new(0,0,0,1)
18
+ else
19
+ CMYK.new(((1-@r) - min)/(1-min),
20
+ ((1-@g) - min)/(1-min),
21
+ ((1-@b) - min)/(1-min),
22
+ min)
23
+ end
24
+ end
25
+
26
+ def to_hsv
27
+ min = [@r, @g, @b].min
28
+ max = [@r, @g, @b].max
29
+ delta = max - min
30
+
31
+ if(max == 0) then
32
+ s = 0 #Techically if s = 0, then v is undefined
33
+ else
34
+ s = delta / max
35
+ end
36
+ if(@r == max) then #Yellow and Magenta
37
+ h = (@g - @b) / delta
38
+ elsif (g == max) then #Cyan and Yellow
39
+ h = 2 + (@b - @r) / delta
40
+ else #Magenta and Cyan
41
+ h = 4 + (@r - @g) / delta
42
+ end
43
+
44
+ h *= 60
45
+
46
+ HSV.new((h + 360) % 360,s,max)
47
+ end
48
+
49
+ def web_hex
50
+ sprintf("#%02X%02X%02X", r*255, g*255, b*255)
51
+ end
52
+
53
+ def hex
54
+ eval("0x%02X%02X%02X", r*255, g*255, b*255)
55
+ end
56
+
57
+ def web_safe(depth=1)
58
+ "#" +
59
+ sprintf("%X", r*15) * depth +
60
+ sprintf("%X", g*15) * depth +
61
+ sprintf("%X", b*15) * depth
62
+ end
63
+ end
@@ -0,0 +1,791 @@
1
+ module StandardColoursRGB
2
+ def alice_blue
3
+ RGB.new(0.941176, 0.972549, 1.000000)
4
+ end
5
+ def alizarin
6
+ RGB.new(0.890196, 0.149020, 0.211765)
7
+ end
8
+ def amaranth
9
+ RGB.new(0.898039, 0.168627, 0.313725)
10
+ end
11
+ def amber
12
+ RGB.new(1.000000, 0.749020, 0.000000)
13
+ end
14
+ def amethyst
15
+ RGB.new(0.600000, 0.400000, 0.800000)
16
+ end
17
+ def apricot
18
+ RGB.new(0.984314, 0.807843, 0.694118)
19
+ end
20
+ def aqua
21
+ RGB.new(0.000000, 1.000000, 1.000000)
22
+ end
23
+ def aquamarine
24
+ RGB.new(0.498039, 1.000000, 0.831373)
25
+ end
26
+ def asparagus
27
+ RGB.new(0.482353, 0.627451, 0.356863)
28
+ end
29
+ def auburn
30
+ RGB.new(0.435294, 0.207843, 0.101961)
31
+ end
32
+ def azure_web
33
+ RGB.new(0.941176, 1.000000, 1.000000)
34
+ end
35
+ def web_azure
36
+ RGB.new(0.941176, 1.000000, 1.000000)
37
+ end
38
+ def azure
39
+ RGB.new(0.000000, 0.498039, 1.000000)
40
+ end
41
+ def baby_blue
42
+ RGB.new(0.435294, 1.000000, 1.000000)
43
+ end
44
+ def beige
45
+ RGB.new(0.960784, 0.960784, 0.862745)
46
+ end
47
+ def bistre
48
+ RGB.new(0.239216, 0.168627, 0.121569)
49
+ end
50
+ def black
51
+ RGB.new(0.000000, 0.000000, 0.000000)
52
+ end
53
+ def blue
54
+ RGB.new(0.000000, 0.000000, 1.000000)
55
+ end
56
+ def blue_green
57
+ RGB.new(0.000000, 0.874510, 0.874510)
58
+ end
59
+ def blue_violet
60
+ RGB.new(0.541176, 0.168627, 0.886275)
61
+ end
62
+ def bondi_blue
63
+ RGB.new(0.000000, 0.584314, 0.713725)
64
+ end
65
+ def brass
66
+ RGB.new(0.709804, 0.650980, 0.258824)
67
+ end
68
+ def bright_green
69
+ RGB.new(0.400000, 1.000000, 0.000000)
70
+ end
71
+ def bright_turquoise
72
+ RGB.new(0.031373, 0.909804, 0.870588)
73
+ end
74
+ def brilliant_rose
75
+ RGB.new(1.000000, 0.333333, 0.639216)
76
+ end
77
+ def bronze
78
+ RGB.new(0.803922, 0.498039, 0.196078)
79
+ end
80
+ def brown
81
+ RGB.new(0.588235, 0.294118, 0.000000)
82
+ end
83
+ def buff
84
+ RGB.new(0.941176, 0.862745, 0.509804)
85
+ end
86
+ def burgundy
87
+ RGB.new(0.501961, 0.000000, 0.125490)
88
+ end
89
+ def burnt_orange
90
+ RGB.new(0.800000, 0.333333, 0.000000)
91
+ end
92
+ def burnt_sienna
93
+ RGB.new(0.913725, 0.454902, 0.317647)
94
+ end
95
+ def burnt_umber
96
+ RGB.new(0.541176, 0.200000, 0.141176)
97
+ end
98
+ def camouflage_green
99
+ RGB.new(0.470588, 0.525490, 0.419608)
100
+ end
101
+ def caput_mortuum
102
+ RGB.new(0.349020, 0.152941, 0.125490)
103
+ end
104
+ def cardinal
105
+ RGB.new(0.768627, 0.117647, 0.227451)
106
+ end
107
+ def carmine
108
+ RGB.new(0.588235, 0.000000, 0.094118)
109
+ end
110
+ def carnation_pink
111
+ RGB.new(1.000000, 0.650980, 0.788235)
112
+ end
113
+ def carrot_orange
114
+ RGB.new(0.929412, 0.568627, 0.129412)
115
+ end
116
+ def celadon
117
+ RGB.new(0.674510, 0.882353, 0.686275)
118
+ end
119
+ def cerise
120
+ RGB.new(0.870588, 0.192157, 0.388235)
121
+ end
122
+ def cerulean_blue
123
+ RGB.new(0.164706, 0.321569, 0.745098)
124
+ end
125
+ def cerulean
126
+ RGB.new(0.000000, 0.482353, 0.654902)
127
+ end
128
+ def chartreuse_yellow
129
+ RGB.new(0.874510, 1.000000, 0.000000)
130
+ end
131
+ def chartreuse
132
+ RGB.new(0.498039, 1.000000, 0.000000)
133
+ end
134
+ def chestnut
135
+ RGB.new(0.803922, 0.360784, 0.360784)
136
+ end
137
+ def chocolate
138
+ RGB.new(0.482353, 0.247059, 0.000000)
139
+ end
140
+ def cinnabar
141
+ RGB.new(0.890196, 0.258824, 0.203922)
142
+ end
143
+ def cinnamon
144
+ RGB.new(0.823529, 0.411765, 0.117647)
145
+ end
146
+ def cobalt
147
+ RGB.new(0.000000, 0.278431, 0.670588)
148
+ end
149
+ def copper_rose
150
+ RGB.new(0.600000, 0.400000, 0.400000)
151
+ end
152
+ def copper
153
+ RGB.new(0.721569, 0.450980, 0.200000)
154
+ end
155
+ def coral_red
156
+ RGB.new(1.000000, 0.250980, 0.250980)
157
+ end
158
+ def coral
159
+ RGB.new(1.000000, 0.498039, 0.313725)
160
+ end
161
+ def corn
162
+ RGB.new(0.984314, 0.925490, 0.364706)
163
+ end
164
+ def cornflower_blue
165
+ RGB.new(0.392157, 0.584314, 0.929412)
166
+ end
167
+ def cosmic_latte
168
+ RGB.new(0.882353, 0.972549, 0.905882)
169
+ end
170
+ def cream
171
+ RGB.new(1.000000, 0.992157, 0.815686)
172
+ end
173
+ def crimson
174
+ RGB.new(0.862745, 0.078431, 0.235294)
175
+ end
176
+ def cyan
177
+ RGB.new(0.000000, 1.000000, 1.000000)
178
+ end
179
+ def dark_blue
180
+ RGB.new(0.000000, 0.000000, 0.545098)
181
+ end
182
+ def dark_brown
183
+ RGB.new(0.396078, 0.262745, 0.129412)
184
+ end
185
+ def dark_cerulean
186
+ RGB.new(0.031373, 0.270588, 0.494118)
187
+ end
188
+ def dark_chestnut
189
+ RGB.new(0.596078, 0.411765, 0.376471)
190
+ end
191
+ def dark_coral
192
+ RGB.new(0.803922, 0.356863, 0.270588)
193
+ end
194
+ def dark_goldenrod
195
+ RGB.new(0.721569, 0.525490, 0.043137)
196
+ end
197
+ def dark_green
198
+ RGB.new(0.003922, 0.196078, 0.125490)
199
+ end
200
+ def dark_khaki
201
+ RGB.new(0.741176, 0.717647, 0.419608)
202
+ end
203
+ def dark_pastel_green
204
+ RGB.new(0.011765, 0.752941, 0.235294)
205
+ end
206
+ def dark_pink
207
+ RGB.new(0.905882, 0.329412, 0.501961)
208
+ end
209
+ def dark_powder_blue
210
+ RGB.new(0.000000, 0.200000, 0.600000)
211
+ end
212
+ def dark_salmon
213
+ RGB.new(0.913725, 0.588235, 0.478431)
214
+ end
215
+ def dark_slate_gray
216
+ RGB.new(0.184314, 0.309804, 0.309804)
217
+ end
218
+ def dark_spring_green
219
+ RGB.new(0.090196, 0.447059, 0.270588)
220
+ end
221
+ def dark_tan
222
+ RGB.new(0.568627, 0.505882, 0.317647)
223
+ end
224
+ def dark_tangerine
225
+ RGB.new(1.000000, 0.658824, 0.070588)
226
+ end
227
+ def dark_turquoise
228
+ RGB.new(0.066667, 0.376471, 0.384314)
229
+ end
230
+ def dark_violet
231
+ RGB.new(0.258824, 0.192157, 0.537255)
232
+ end
233
+ def deep_cerise
234
+ RGB.new(0.854902, 0.196078, 0.529412)
235
+ end
236
+ def deep_fuchsia
237
+ RGB.new(0.756863, 0.329412, 0.756863)
238
+ end
239
+ def deep_lilac
240
+ RGB.new(0.600000, 0.333333, 0.733333)
241
+ end
242
+ def deep_magenta
243
+ RGB.new(0.800000, 0.000000, 0.800000)
244
+ end
245
+ def deep_peach
246
+ RGB.new(1.000000, 0.796078, 0.643137)
247
+ end
248
+ def denim
249
+ RGB.new(0.082353, 0.376471, 0.741176)
250
+ end
251
+ def dodger_blue
252
+ RGB.new(0.117647, 0.564706, 1.000000)
253
+ end
254
+ def ecru
255
+ RGB.new(0.760784, 0.698039, 0.501961)
256
+ end
257
+ def eggplant
258
+ RGB.new(0.600000, 0.000000, 0.400000)
259
+ end
260
+ def electric_blue
261
+ RGB.new(0.490196, 0.976471, 1.000000)
262
+ end
263
+ def electric_green
264
+ RGB.new(0.000000, 1.000000, 0.000000)
265
+ end
266
+ def electric_indigo
267
+ RGB.new(0.400000, 0.000000, 1.000000)
268
+ end
269
+ def electric_lime
270
+ RGB.new(0.800000, 1.000000, 0.000000)
271
+ end
272
+ def electric_purple
273
+ RGB.new(0.749020, 0.000000, 1.000000)
274
+ end
275
+ def emerald
276
+ RGB.new(0.313725, 0.784314, 0.470588)
277
+ end
278
+ def falu_red
279
+ RGB.new(0.501961, 0.094118, 0.094118)
280
+ end
281
+ def fern_green
282
+ RGB.new(0.309804, 0.474510, 0.258824)
283
+ end
284
+ def flax
285
+ RGB.new(0.933333, 0.862745, 0.509804)
286
+ end
287
+ def forest_green
288
+ RGB.new(0.133333, 0.545098, 0.133333)
289
+ end
290
+ def french_rose
291
+ RGB.new(0.964706, 0.290196, 0.541176)
292
+ end
293
+ def fuchsia_pink
294
+ RGB.new(1.000000, 0.466667, 1.000000)
295
+ end
296
+ def fuchsia
297
+ RGB.new(1.000000, 0.000000, 1.000000)
298
+ end
299
+ def gamboge
300
+ RGB.new(0.894118, 0.607843, 0.058824)
301
+ end
302
+ def gold_metallic
303
+ RGB.new(0.831373, 0.686275, 0.215686)
304
+ end
305
+ def gold_web
306
+ RGB.new(1.000000, 0.843137, 0.000000)
307
+ end
308
+ def web_gold
309
+ RGB.new(1.000000, 0.843137, 0.000000)
310
+ end
311
+ def gold
312
+ RGB.new(1.000000, 0.843137, 0.000000)
313
+ end
314
+ def golden_brown
315
+ RGB.new(0.600000, 0.396078, 0.082353)
316
+ end
317
+ def golden_yellow
318
+ RGB.new(1.000000, 0.874510, 0.000000)
319
+ end
320
+ def goldenrod
321
+ RGB.new(0.854902, 0.647059, 0.125490)
322
+ end
323
+ def green
324
+ RGB.new(0.000000, 0.501961, 0.000000)
325
+ end
326
+ def green_yellow
327
+ RGB.new(0.678431, 1.000000, 0.184314)
328
+ end
329
+ def grey
330
+ RGB.new(0.501961, 0.501961, 0.501961)
331
+ end
332
+ def grey_asparagus
333
+ RGB.new(0.274510, 0.349020, 0.270588)
334
+ end
335
+ def han_purple
336
+ RGB.new(0.321569, 0.094118, 0.980392)
337
+ end
338
+ def harlequin
339
+ RGB.new(0.247059, 1.000000, 0.000000)
340
+ end
341
+ def heliotrope
342
+ RGB.new(0.874510, 0.450980, 1.000000)
343
+ end
344
+ def hollywood_cerise
345
+ RGB.new(0.956863, 0.000000, 0.631373)
346
+ end
347
+ def hot_magenta
348
+ RGB.new(1.000000, 0.000000, 0.800000)
349
+ end
350
+ def hot_pink
351
+ RGB.new(1.000000, 0.411765, 0.705882)
352
+ end
353
+ def indigo
354
+ RGB.new(0.294118, 0.000000, 0.509804)
355
+ end
356
+ def international_klein_blue
357
+ RGB.new(0.000000, 0.184314, 0.654902)
358
+ end
359
+ def international_orange
360
+ RGB.new(1.000000, 0.309804, 0.000000)
361
+ end
362
+ def islamic_green
363
+ RGB.new(0.000000, 0.600000, 0.000000)
364
+ end
365
+ def ivory
366
+ RGB.new(1.000000, 1.000000, 0.941176)
367
+ end
368
+ def jade
369
+ RGB.new(0.000000, 0.658824, 0.419608)
370
+ end
371
+ def kelly_green
372
+ RGB.new(0.298039, 0.733333, 0.090196)
373
+ end
374
+ def khaki
375
+ RGB.new(0.764706, 0.690196, 0.568627)
376
+ end
377
+ def web_lavender
378
+ RGB.new(0.901961, 0.901961, 0.980392)
379
+ end
380
+ def lavender_web
381
+ RGB.new(0.901961, 0.901961, 0.980392)
382
+ end
383
+ def lavender_blue
384
+ RGB.new(0.800000, 0.800000, 1.000000)
385
+ end
386
+ def lavender_blush
387
+ RGB.new(1.000000, 0.941176, 0.960784)
388
+ end
389
+ def lavender_grey
390
+ RGB.new(0.768627, 0.764706, 0.866667)
391
+ end
392
+ def lavender_magenta
393
+ RGB.new(0.933333, 0.509804, 0.933333)
394
+ end
395
+ def lavender_pink
396
+ RGB.new(0.984314, 0.682353, 0.823529)
397
+ end
398
+ def lavender_purple
399
+ RGB.new(0.588235, 0.470588, 0.713725)
400
+ end
401
+ def lavender_rose
402
+ RGB.new(0.984314, 0.627451, 0.890196)
403
+ end
404
+ def lemon_chiffon
405
+ RGB.new(1.000000, 0.980392, 0.803922)
406
+ end
407
+ def lemon
408
+ RGB.new(0.992157, 0.913725, 0.062745)
409
+ end
410
+ def light_blue
411
+ RGB.new(0.678431, 0.847059, 0.901961)
412
+ end
413
+ def lilac
414
+ RGB.new(0.784314, 0.635294, 0.784314)
415
+ end
416
+ def lime_color_wheel
417
+ RGB.new(0.749020, 1.000000, 0.000000)
418
+ end
419
+ def lime
420
+ RGB.new(0.000000, 1.000000, 0.000000)
421
+ end
422
+ def linen
423
+ RGB.new(0.980392, 0.941176, 0.901961)
424
+ end
425
+ def magenta
426
+ RGB.new(1.000000, 0.000000, 1.000000)
427
+ end
428
+ def malachite
429
+ RGB.new(0.043137, 0.854902, 0.317647)
430
+ end
431
+ def maroon
432
+ RGB.new(0.501961, 0.000000, 0.000000)
433
+ end
434
+ def mauve_taupe
435
+ RGB.new(0.568627, 0.372549, 0.427451)
436
+ end
437
+ def mauve
438
+ RGB.new(0.878431, 0.690196, 1.000000)
439
+ end
440
+ def maya_blue
441
+ RGB.new(0.450980, 0.760784, 0.984314)
442
+ end
443
+ def medium_blue
444
+ RGB.new(0.000000, 0.000000, 0.803922)
445
+ end
446
+ def medium_carmine
447
+ RGB.new(0.686275, 0.250980, 0.207843)
448
+ end
449
+ def medium_purple
450
+ RGB.new(0.576471, 0.439216, 0.858824)
451
+ end
452
+ def midnight_blue
453
+ RGB.new(0.000000, 0.200000, 0.400000)
454
+ end
455
+ def mint_green
456
+ RGB.new(0.596078, 1.000000, 0.596078)
457
+ end
458
+ def misty_rose
459
+ RGB.new(1.000000, 0.894118, 0.882353)
460
+ end
461
+ def moss_green
462
+ RGB.new(0.678431, 0.874510, 0.678431)
463
+ end
464
+ def mountbatten_pink
465
+ RGB.new(0.600000, 0.478431, 0.552941)
466
+ end
467
+ def mustard
468
+ RGB.new(1.000000, 0.858824, 0.345098)
469
+ end
470
+ def navajo_white
471
+ RGB.new(1.000000, 0.870588, 0.678431)
472
+ end
473
+ def navy_blue
474
+ RGB.new(0.000000, 0.000000, 0.501961)
475
+ end
476
+ def ochre
477
+ RGB.new(0.800000, 0.466667, 0.133333)
478
+ end
479
+ def office_green
480
+ RGB.new(0.000000, 0.501961, 0.000000)
481
+ end
482
+ def old_gold
483
+ RGB.new(0.811765, 0.709804, 0.231373)
484
+ end
485
+ def old_lace
486
+ RGB.new(0.992157, 0.960784, 0.901961)
487
+ end
488
+ def old_lavender
489
+ RGB.new(0.474510, 0.407843, 0.470588)
490
+ end
491
+ def old_rose
492
+ RGB.new(0.752941, 0.180392, 0.298039)
493
+ end
494
+ def olive_drab
495
+ RGB.new(0.419608, 0.556863, 0.137255)
496
+ end
497
+ def olive
498
+ RGB.new(0.501961, 0.501961, 0.000000)
499
+ end
500
+ def olivine
501
+ RGB.new(0.603922, 0.725490, 0.450980)
502
+ end
503
+ def orange_color_wheel
504
+ RGB.new(1.000000, 0.498039, 0.000000)
505
+ end
506
+ def orange_web
507
+ RGB.new(1.000000, 0.647059, 0.000000)
508
+ end
509
+ def web_orange
510
+ RGB.new(1.000000, 0.647059, 0.000000)
511
+ end
512
+ def orange_peel
513
+ RGB.new(1.000000, 0.627451, 0.000000)
514
+ end
515
+ def orange_red
516
+ RGB.new(1.000000, 0.270588, 0.000000)
517
+ end
518
+ def orchid
519
+ RGB.new(0.854902, 0.439216, 0.839216)
520
+ end
521
+ def pale_blue
522
+ RGB.new(0.686275, 0.933333, 0.933333)
523
+ end
524
+ def pale_brown
525
+ RGB.new(0.596078, 0.462745, 0.329412)
526
+ end
527
+ def pale_carmine
528
+ RGB.new(0.686275, 0.250980, 0.207843)
529
+ end
530
+ def pale_chestnut
531
+ RGB.new(0.866667, 0.678431, 0.686275)
532
+ end
533
+ def pale_cornflower_blue
534
+ RGB.new(0.670588, 0.803922, 0.937255)
535
+ end
536
+ def pale_magenta
537
+ RGB.new(0.976471, 0.517647, 0.898039)
538
+ end
539
+ def pale_pink
540
+ RGB.new(0.980392, 0.854902, 0.866667)
541
+ end
542
+ def pale_red_violet
543
+ RGB.new(0.858824, 0.439216, 0.576471)
544
+ end
545
+ def papaya_whip
546
+ RGB.new(1.000000, 0.937255, 0.835294)
547
+ end
548
+ def pastel_green
549
+ RGB.new(0.466667, 0.866667, 0.466667)
550
+ end
551
+ def pastel_pink
552
+ RGB.new(1.000000, 0.819608, 0.862745)
553
+ end
554
+ def peach
555
+ RGB.new(1.000000, 0.898039, 0.705882)
556
+ end
557
+ def peach_orange
558
+ RGB.new(1.000000, 0.800000, 0.600000)
559
+ end
560
+ def peach_yellow
561
+ RGB.new(0.980392, 0.874510, 0.678431)
562
+ end
563
+ def pear
564
+ RGB.new(0.819608, 0.886275, 0.192157)
565
+ end
566
+ def periwinkle
567
+ RGB.new(0.800000, 0.800000, 1.000000)
568
+ end
569
+ def persian_blue
570
+ RGB.new(0.109804, 0.223529, 0.733333)
571
+ end
572
+ def persian_green
573
+ RGB.new(0.000000, 0.650980, 0.576471)
574
+ end
575
+ def persian_indigo
576
+ RGB.new(0.196078, 0.070588, 0.478431)
577
+ end
578
+ def persian_pink
579
+ RGB.new(0.968627, 0.498039, 0.745098)
580
+ end
581
+ def persian_red
582
+ RGB.new(0.800000, 0.200000, 0.200000)
583
+ end
584
+ def persian_rose
585
+ RGB.new(0.996078, 0.156863, 0.635294)
586
+ end
587
+ def persimmon
588
+ RGB.new(0.925490, 0.345098, 0.000000)
589
+ end
590
+ def pine_green
591
+ RGB.new(0.003922, 0.474510, 0.435294)
592
+ end
593
+ def pink
594
+ RGB.new(1.000000, 0.752941, 0.796078)
595
+ end
596
+ def pink_orange
597
+ RGB.new(1.000000, 0.600000, 0.400000)
598
+ end
599
+ def powder_blue
600
+ RGB.new(0.690196, 0.878431, 0.901961)
601
+ end
602
+ def prussian_blue
603
+ RGB.new(0.000000, 0.192157, 0.325490)
604
+ end
605
+ def psychedelic_purple
606
+ RGB.new(0.866667, 0.000000, 1.000000)
607
+ end
608
+ def puce
609
+ RGB.new(0.800000, 0.533333, 0.600000)
610
+ end
611
+ def pumpkin
612
+ RGB.new(1.000000, 0.458824, 0.094118)
613
+ end
614
+ def purple_taupe
615
+ RGB.new(0.313725, 0.250980, 0.301961)
616
+ end
617
+ def purple
618
+ RGB.new(0.501961, 0.000000, 0.501961)
619
+ end
620
+ def raw_umber
621
+ RGB.new(0.450980, 0.290196, 0.070588)
622
+ end
623
+ def red
624
+ RGB.new(1.000000, 0.000000, 0.000000)
625
+ end
626
+ def red_violet
627
+ RGB.new(0.780392, 0.082353, 0.521569)
628
+ end
629
+ def rich_carmine
630
+ RGB.new(0.843137, 0.000000, 0.250980)
631
+ end
632
+ def rich_magenta
633
+ RGB.new(0.792157, 0.121569, 0.090196)
634
+ end
635
+ def robin_egg_blue
636
+ RGB.new(0.000000, 0.800000, 0.800000)
637
+ end
638
+ def rose_taupe
639
+ RGB.new(0.564706, 0.364706, 0.364706)
640
+ end
641
+ def rose
642
+ RGB.new(1.000000, 0.000000, 0.498039)
643
+ end
644
+ def royal_blue
645
+ RGB.new(0.254902, 0.411765, 0.882353)
646
+ end
647
+ def royal_purple
648
+ RGB.new(0.419608, 0.247059, 0.627451)
649
+ end
650
+ def russet
651
+ RGB.new(0.501961, 0.274510, 0.105882)
652
+ end
653
+ def rust
654
+ RGB.new(0.717647, 0.254902, 0.054902)
655
+ end
656
+ def safety_orange
657
+ RGB.new(1.000000, 0.400000, 0.000000)
658
+ end
659
+ def blaze_orange
660
+ RGB.new(1.000000, 0.400000, 0.000000)
661
+ end
662
+ def saffron
663
+ RGB.new(0.956863, 0.768627, 0.188235)
664
+ end
665
+ def salmon
666
+ RGB.new(1.000000, 0.549020, 0.411765)
667
+ end
668
+ def sandy_brown
669
+ RGB.new(0.956863, 0.643137, 0.376471)
670
+ end
671
+ def sangria
672
+ RGB.new(0.572549, 0.000000, 0.039216)
673
+ end
674
+ def sapphire
675
+ RGB.new(0.031373, 0.145098, 0.403922)
676
+ end
677
+ def scarlet
678
+ RGB.new(1.000000, 0.141176, 0.000000)
679
+ end
680
+ def school_bus_yellow
681
+ RGB.new(1.000000, 0.847059, 0.000000)
682
+ end
683
+ def sea_green
684
+ RGB.new(0.180392, 0.545098, 0.341176)
685
+ end
686
+ def seashell
687
+ RGB.new(1.000000, 0.960784, 0.933333)
688
+ end
689
+ def selective_yellow
690
+ RGB.new(1.000000, 0.729412, 0.000000)
691
+ end
692
+ def sepia
693
+ RGB.new(0.439216, 0.258824, 0.078431)
694
+ end
695
+ def shamrock_green
696
+ RGB.new(0.000000, 0.619608, 0.376471)
697
+ end
698
+ def shocking_pink
699
+ RGB.new(0.988235, 0.058824, 0.752941)
700
+ end
701
+ def silver
702
+ RGB.new(0.752941, 0.752941, 0.752941)
703
+ end
704
+ def sky_blue
705
+ RGB.new(0.529412, 0.807843, 0.921569)
706
+ end
707
+ def slate_grey
708
+ RGB.new(0.439216, 0.501961, 0.564706)
709
+ end
710
+ def smalt
711
+ RGB.new(0.000000, 0.200000, 0.600000)
712
+ end
713
+ def spring_bud
714
+ RGB.new(0.000000, 0.654902, 0.988235)
715
+ end
716
+ def spring_green
717
+ RGB.new(0.000000, 1.000000, 0.498039)
718
+ end
719
+ def steel_blue
720
+ RGB.new(0.274510, 0.509804, 0.705882)
721
+ end
722
+ def tan
723
+ RGB.new(0.823529, 0.705882, 0.549020)
724
+ end
725
+ def tangerine_yellow
726
+ RGB.new(1.000000, 0.800000, 0.000000)
727
+ end
728
+ def tangerine
729
+ RGB.new(0.949020, 0.521569, 0.000000)
730
+ end
731
+ def taupe
732
+ RGB.new(0.282353, 0.235294, 0.196078)
733
+ end
734
+ def tea_green
735
+ RGB.new(0.815686, 0.941176, 0.752941)
736
+ end
737
+ def tea_rose_orange
738
+ RGB.new(0.972549, 0.513725, 0.760784)
739
+ end
740
+ def tea_rose
741
+ RGB.new(0.956863, 0.760784, 0.760784)
742
+ end
743
+ def teal
744
+ RGB.new(0.000000, 0.501961, 0.501961)
745
+ end
746
+ def terra_cotta
747
+ RGB.new(0.886275, 0.447059, 0.356863)
748
+ end
749
+ def thistle
750
+ RGB.new(0.847059, 0.749020, 0.847059)
751
+ end
752
+ def turquoise
753
+ RGB.new(0.188235, 0.835294, 0.784314)
754
+ end
755
+ def tyrian_purple
756
+ RGB.new(0.400000, 0.007843, 0.235294)
757
+ end
758
+ def ultramarine
759
+ RGB.new(0.070588, 0.039216, 0.560784)
760
+ end
761
+ def vermilion
762
+ RGB.new(1.000000, 0.301961, 0.000000)
763
+ end
764
+ def violet_web
765
+ RGB.new(0.933333, 0.509804, 0.933333)
766
+ end
767
+ def web_violet
768
+ RGB.new(0.933333, 0.509804, 0.933333)
769
+ end
770
+ def violet
771
+ RGB.new(0.545098, 0.000000, 1.000000)
772
+ end
773
+ def viridian
774
+ RGB.new(0.250980, 0.509804, 0.427451)
775
+ end
776
+ def wheat
777
+ RGB.new(0.960784, 0.870588, 0.701961)
778
+ end
779
+ def white
780
+ RGB.new(1.000000, 1.000000, 1.000000)
781
+ end
782
+ def wisteria
783
+ RGB.new(0.788235, 0.627451, 0.862745)
784
+ end
785
+ def yellow
786
+ RGB.new(1.000000, 1.000000, 0.000000)
787
+ end
788
+ def zinnwaldite
789
+ RGB.new(0.921569, 0.760784, 0.686275)
790
+ end
791
+ end