Code

69c952bfc585e464e9fee47eed42d2edcc65544b
[inkscape.git] / PaletteGen.py
1 import colorsys\r
2 \r
3 print '''GIMP Palette\r
4 Name: Inkscape default\r
5 Columns: 3\r
6 # generated by PaletteGen.py'''\r
7 \r
8 \r
9 # grays\r
10 \r
11 g_steps = 10\r
12 g_step_size = 1.0 / g_steps\r
13 \r
14 for i in range(0, g_steps + 1):\r
15     level = i * g_step_size\r
16     r, g, b = colorsys.hls_to_rgb(0, level, 0)\r
17     \r
18     rval = int(round(r * 255))\r
19     gval = int(round(g * 255))\r
20     bval = int(round(b * 255))\r
21     \r
22     if i == 0:\r
23         line = "%3s %3s %3s  Black" % (rval, gval, bval)\r
24     elif i == g_steps:\r
25         line = "%3s %3s %3s  White" % (rval, gval, bval)\r
26     else:\r
27         line = "%3s %3s %3s  %s%% Gray" % (rval, gval, bval, 100 - int(level * 100))\r
28     print line\r
29 \r
30     # add three more steps near white\r
31     if i == g_steps - 1:\r
32         level_m = level + 0.25 * g_step_size\r
33         r, g, b = colorsys.hls_to_rgb(0, level_m, 0)\r
34         rval = int(round(r * 255))\r
35         gval = int(round(g * 255))\r
36         bval = int(round(b * 255))\r
37         print "%3s %3s %3s  %s%% Gray" % (rval, gval, bval, 100 - (level_m * 100))\r
38 \r
39         level_m = level + 0.5 * g_step_size\r
40         r, g, b = colorsys.hls_to_rgb(0, level_m, 0)\r
41         rval = int(round(r * 255))\r
42         gval = int(round(g * 255))\r
43         bval = int(round(b * 255))\r
44         print "%3s %3s %3s  %s%% Gray" % (rval, gval, bval, 100 - int(level_m * 100))\r
45 \r
46         level_mm = level + 0.75 * g_step_size\r
47         r, g, b = colorsys.hls_to_rgb(0, level_mm, 0)\r
48         rval = int(round(r * 255))\r
49         gval = int(round(g * 255))\r
50         bval = int(round(b * 255))\r
51         print "%3s %3s %3s  %s%% Gray" % (rval, gval, bval, 100 - (level_mm * 100))\r
52 \r
53 \r
54 # standard HTML colors\r
55 print '''128   0   0  Maroon (#800000)\r
56 255   0   0  Red (#FF0000)\r
57 128 128   0  Olive (#808000)\r
58 255 255   0  Yellow (#FFFF00)\r
59   0 128   0  Green (#008000)\r
60   0 255   0  Lime (#00FF00)\r
61   0 128 128  Teal (#008080)\r
62   0 255 255  Aqua (#00FFFF)\r
63   0   0 128  Navy (#000080)\r
64   0   0 255  Blue (#0000FF)\r
65 128   0 128  Purple (#800080)\r
66 255   0 255  Fuchsia (#FF00FF)'''\r
67 \r
68 # HSL palette\r
69 h_steps = 15\r
70 s_steps = 3\r
71 l_steps = 14\r
72 h_step_size = 1.0 / h_steps\r
73 s_step_size = 1.3 / s_steps\r
74 \r
75 for h in range(0, h_steps):\r
76     for s in range(0, s_steps):\r
77         l_range = int(round(l_steps - (s*6/s_steps))) - 2\r
78         l_step_size = 1.0 / l_range\r
79         for l in range(1, l_range):\r
80             hval = h * h_step_size\r
81             sval = 1 - (s * s_step_size)\r
82             lval = l * l_step_size\r
83             \r
84             r, g, b = colorsys.hls_to_rgb(hval, lval, sval)\r
85             \r
86             rval = int(round(r * 255))\r
87             gval = int(round(g * 255))\r
88             bval = int(round(b * 255))\r
89             \r
90             line = "%3s %3s %3s  #%02X%02X%02X" % (rval, gval, bval, rval, gval, bval)\r
91             print line\r