diff options
| author | C??dric Gemy <cedric@le-radar.com> | 2006-11-03 23:24:15 +0000 |
|---|---|---|
| committer | gemy_c <gemy_c@users.sourceforge.net> | 2006-11-03 23:24:15 +0000 |
| commit | 204d4e65e0611a8ab6b8c435d6359b52e38613ed (patch) | |
| tree | 493291944ea211d79a9a2c7afb1f22fed9728964 | |
| parent | patch 1590039, whitespace (diff) | |
| download | inkscape-204d4e65e0611a8ab6b8c435d6359b52e38613ed.tar.gz inkscape-204d4e65e0611a8ab6b8c435d6359b52e38613ed.zip | |
a script to export any groups as independant png file
(bzr r1892)
| -rw-r--r-- | share/extensions/G2Pngs.inx | 22 | ||||
| -rw-r--r-- | share/extensions/G2Pngs.py | 80 |
2 files changed, 102 insertions, 0 deletions
diff --git a/share/extensions/G2Pngs.inx b/share/extensions/G2Pngs.inx new file mode 100644 index 000000000..cd81bea16 --- /dev/null +++ b/share/extensions/G2Pngs.inx @@ -0,0 +1,22 @@ +<inkscape-extension> + <_name>Groups to Pngs</_name> + <id>org.ekips.filter.G2Pngs</id> + <dependency type="extension">org.inkscape.output.svg.inkscape</dependency> + <dependency type="executable" location="extensions">G2Pngs.py</dependency> + <dependency type="executable" location="extensions">inkex.py</dependency> + <param name="directory" type="string" _gui-text="Directory">/home/</param> + <param name="layers" type="boolean" _gui-text="Save layers only"></param> + <effect> + <extension>.png</extension> + <mimetype>application/x-png</mimetype> + <_filetypename>Export each group to a png</_filetypename> + <_filetypetooltip>Export each group to a png</_filetypetooltip> + <dataloss>TRUE</dataloss> + <effects-menu> + <submenu _name="Recursive actions"/> + </effects-menu> + </effect> + <script> + <command reldir="extensions" interpreter="python">G2Pngs.py</command> + </script> +</inkscape-extension> diff --git a/share/extensions/G2Pngs.py b/share/extensions/G2Pngs.py new file mode 100644 index 000000000..8c4c5d973 --- /dev/null +++ b/share/extensions/G2Pngs.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python +''' +Copyright (C) 2006 Aaron Spike, aaron@ekips.org + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +TODO : +specify save format, scale, and if it is a layer or g export + +RELEASE NOTE +- accepte l'export des calques +- dossier par défaut = dossier utilisateur +- crée le dossier spécifié s'il n'existe pas + +''' +import inkex +import sys, os, tempfile + +class MyEffect(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + self.OptionParser.add_option("-d", "--directory", + action="store", type="string", + dest="directory", default=os.path.expanduser("~"), + help="Existing destination directory") + self.OptionParser.add_option("-l", "--layers", + action="store", type="inkbool", + dest="layers", default=False, + help="Save layers with their groups") + '''self.OptionParser.add_option("-s", "--scale", + action="store", type="float", + dest="scale", default=100, + help="Scales the group at the specified value") + self.OptionParser.add_option("-f", "--format", + action="store", type="string", + dest="format", default="png", + help="Save at the specified format [only PNG implemented yet]") + ''' + def output(self): + pass + + def effect(self): + svg_file = self.args[-1] + node = inkex.xml.xpath.Evaluate('/svg',self.document)[0] + '''docname = node.attributes.getNamedItemNS(inkex.NSS[u'sodipodi'],'docname').value[:-4]''' + + #create os temp dir + '''tmp_dir = tempfile.mkdtemp()''' + directory = self.options.directory + """area = '--export-area-canvas'""" + pngs = [] + if self.options.layers: + path = "/svg/*[name()='g' or @style][@id]" + else: + path = "/svg/g/*[name()='g' or @style][@id]" + + for node in inkex.xml.xpath.Evaluate(path,self.document): + id = node.attributes.getNamedItem('id').value + name = "%s.png" % id + filename = os.path.join(directory, name) + command = "inkscape -i %s -e %s %s " % (id, filename, svg_file) + f = os.popen(command,'r') + f.read() + f.close() + pngs.append(filename) + +e = MyEffect() +e.affect()
\ No newline at end of file |
