index f0540ac507f8fc1e35758d0872228f91cde85fd9..4093b94a7e97727c9ef0d7c70cc71ccf7712ba72 100644 (file)
'''
import inkex, base64, os
+import gettext
+_ = gettext.gettext
class MyEffect(inkex.Effect):
def __init__(self):
'icon':'.ico',
'gif' :'.gif'
}
- #ctx = inkex.xml.xpath.Context.Context(self.document,processorNss=inkex.NSS)
# exbed the first embedded image
path = self.options.filepath
if (path != ''):
if (self.options.ids):
for id, node in self.selected.iteritems():
- if node.tagName == 'image':
- xlink = node.attributes.getNamedItemNS(inkex.NSS[u'xlink'],'href')
- if (xlink.value[:4]=='data'):
- comma = xlink.value.find(',')
+ if node.tag == inkex.addNS('image','svg'):
+ xlink = node.get(inkex.addNS('href','xlink'))
+ if (xlink[:4]=='data'):
+ comma = xlink.find(',')
if comma>0:
#get extension
fileext=''
- semicolon = xlink.value.find(';')
+ semicolon = xlink.find(';')
if semicolon>0:
for sub in mimesubext.keys():
- if sub in xlink.value[5:semicolon]:
+ if sub in xlink[5:semicolon].lower():
fileext=mimesubext[sub]
path=path+fileext;
- break
+ if (not os.path.isabs(path)):
+ if os.name == 'nt':
+ path = os.path.join(os.environ['USERPROFILE'],path)
+ else:
+ path = os.path.join(os.path.expanduser("~"),path)
+ inkex.errormsg(_('Image extracted to: %s') % path)
+ break
#save
- data = base64.decodestring(xlink.value[comma:])
+ data = base64.decodestring(xlink[comma:])
open(path,'wb').write(data)
- xlink.value = os.path.realpath(path) #absolute for making in-mem cycles work
+ node.set(inkex.addNS('href','xlink'),os.path.realpath(path)) #absolute for making in-mem cycles work
else:
- inkex.debug('Difficulty finding the image data.')
+ inkex.errormsg(_('Unable to find image data.'))
break
-e = MyEffect()
-e.affect()
+if __name__ == '__main__':
+ e = MyEffect()
+ e.affect()
+
+
+# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 encoding=utf-8 textwidth=99