diff options
author | Jakub Steiner <jimmac@gmail.com> | 2008-08-20 13:28:11 +0200 |
---|---|---|
committer | Jakub Steiner <jimmac@gmail.com> | 2008-08-20 13:28:32 +0200 |
commit | 94e459e03a81f2a521169e37416fdc52f3881ca9 (patch) | |
tree | 7207681a3c8f7be6c6e1a378f9bdfdae4752ef1f | |
parent | 223201ded727f6e3715f329ab5e522b0750cf2c9 (diff) |
rendering script implemented in python. seems to have a glitch. Contibuted by muks.
-rwxr-xr-x | contrib/render-bitmaps.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/contrib/render-bitmaps.py b/contrib/render-bitmaps.py new file mode 100755 index 0000000..7d8aa50 --- /dev/null +++ b/contrib/render-bitmaps.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python + +import glob, os, sys, dircache, xml.dom.minidom +import new + +INKSCAPE = "/usr/bin/inkscape" +SRC = "./svg" + +# getText() by Mark Pilgrim +def getText(self): + def isTextNode(node): + return isinstance(node, xml.dom.minidom.Text) + def getData(node): + return node.data + try: + return "".join(map(getData, filter(isTextNode, self.childNodes))) + except: + return "" + +def render(file): + print "\t%s" % (file) + svg = xml.dom.minidom.parse(SRC + "/" + file) + for icon in svg.getElementsByTagName("g"): + if icon.getAttribute("inkscape:label") != "plate": + continue + for in_node in icon.getElementsByTagName("text"): + if in_node.getAttribute("inkscape:label") == "icon-name": + icon_name = getText(in_node.getElementsByTagName("tspan")[0]) + if in_node.getAttribute("inkscape:label") == "context": + context = getText(in_node.getElementsByTagName("tspan")[0]) + print "\t\t%s/%s" % (context, icon_name) + for box in icon.getElementsByTagName("rect"): + bid = box.getAttribute("id") + size = "%sx%s" % (box.getAttribute("width"), + box.getAttribute("height")) + destdir = "%s/%s" % (size, context) + src = "%s/%s" % (SRC, file) + dest = "%s/%s.png" % (destdir, icon_name) + cmd = INKSCAPE + " -i " + bid + " -e " + dest + " " + src + " > /dev/null 2>&1" + if not os.path.isdir(destdir): + os.makedirs(destdir) + print "\t\t\t%s/%s" % (destdir, icon_name) + os.system(cmd) + return + +if len(sys.argv) < 2: + print "Rendering from SVGs in %s" % (SRC) + for file in dircache.listdir(SRC): + if file.endswith(".svg"): + render(file) +else: + for svgname in sys.argv[1:]: + file = svgname + ".svg" + if os.path.isfile(SRC + "/" + file): + render(file) + else: + print "Error: No such file: %s" % (file) + |