colour 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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