Code

-added some checks for the existence of Inkscape.app and a better way to check for...
[inkscape.git] / share / extensions / export_gimp_palette.py
1 #!/usr/bin/env python \r
2 '''\r
3 Author: Jos Hirth, kaioa.com\r
4 License: GNU General Public License - http://www.gnu.org/licenses/gpl.html\r
5 Warranty: see above\r
6 '''\r
7 \r
8 DOCNAME='sodipodi:docname'\r
9 \r
10 import sys, simplestyle\r
11 try:\r
12     from xml.dom.minidom import parse\r
13 except:\r
14     sys.exit('The export_gpl.py module requires PyXML. Please download the latest version from <http://pyxml.sourceforge.net/>.')\r
15 \r
16 colortags=(u'fill',u'stroke',u'stop-color',u'flood-color',u'lighting-color')\r
17 colors={}\r
18 \r
19 def walk(node):\r
20     checkStyle(node)\r
21     if node.hasChildNodes():\r
22         childs=node.childNodes\r
23         for child in childs:\r
24             walk(child)\r
25 \r
26 def checkStyle(node):\r
27     if node.hasAttributes():\r
28         sa=node.getAttribute('style')\r
29         if sa!='':\r
30             styles=simplestyle.parseStyle(sa)\r
31             for c in range(len(colortags)):\r
32                 if colortags[c] in styles.keys():\r
33                     addColor(styles[colortags[c]])\r
34 \r
35 def addColor(col):\r
36     if simplestyle.isColor(col):\r
37         c=simplestyle.parseColor(col)\r
38         colors['%3i %3i %3i ' % (c[0],c[1],c[2])]=simplestyle.formatColoria(c).upper()\r
39 \r
40 stream = open(sys.argv[-1:][0],'r')\r
41 dom = parse(stream)\r
42 stream.close()\r
43 walk(dom)\r
44 print 'GIMP Palette\nName: %s\n#' % (dom.getElementsByTagName('svg')[0].getAttribute(DOCNAME).split('.')[0])\r
45 \r
46 for k,v in sorted(colors.items()):\r
47     print k+v