XML导出器,xml导出,一个GIMP插件,为当前
XML导出器,xml导出,一个GIMP插件,为当前
一个GIMP插件,为当前image的每一个图层保存成一个单独的文件,并且每个图层可以让用户输入一个自定义属性值,然后导出成为一个xml文件
#!/usr/bin/env python# _*_ coding: utf-8 _*_import os,sysfrom gimpfu import *from gimpenums import *from xml.etree.ElementTree import ElementTreefrom xml.etree.ElementTree import Elementfrom xml.etree.ElementTree import SubElementfrom xml.etree.ElementTree import dumpfrom xml.etree.ElementTree import Commentfrom xml.etree.ElementTree import tostring#创建xml对象book = ElementTree()#创建根节点my_root = Element('root')book._setroot(my_root)#定义添加节点函数def addElement(element,img): #只能在这里获取原图的名字了 #分离layer_name和component_name layer_name,component_name = splitName(element) component_name = str(component_name).split("'")[0] layer_name = str(layer_name).split("'")[1] + ".jpg" item = Element('mask',{'componentName':component_name,'diffuseName':str(img),'name':layer_name}) #添加到根节点下 my_root.append(item)#获取原图名字def getImageName(image): lay = image.layers for i in lay: if i.visible: return str(i.name)#输出message函数def gprint(msg): pdb.gimp_message(msg) return#美化xml文件函数def indent(elem, level=0): i = "\\n" + level*" " if len(elem): if not elem.text or not elem.text.strip(): elem.text = i + " " for e in elem: indent(e, level+1) if not e.tail or not e.tail.strip(): e.tail = i if level and (not elem.tail or not elem.tail.strip()): elem.tail = i return elem#获取layer列表def getImage(image): img = gimp.image_list()[0] layer = img.layers return layer#分离layer_name和component_namedef splitName(layerName): return str(layerName).split('$')#判断layer_name是否含有'$'符号def judgeName(layer_name): if str(layer_name).find('$') == -1: return False else: return True#保存所有图层为jpg文件def save_all_layers(image,fileName,filePath): for layer in image.layers: #如果这个是图层而不是原图 if judgeName(layer.name): #获得图层名:mask1.jpg layer_name = splitName(layer.name)[0] + '.jpg' #获取保存路径 save_layer_path = filePath + os.sep + layer_name pdb.gimp_file_save(image,layer,save_layer_path,layer_name)#导出函数def export_file(image,drawable,fileName,filePath): save_all_layers(image,fileName,filePath) layer_list= getImage(image) img = getImageName(image) #循环整个layer_list() for l in layer_list: #如果名字含有'$',也就是非原图: if judgeName(l): #调用添加节点函数 addElement(l,img) else: mask_name = l.name gprint(mask_name) #美化xml文件,并写入 dump(indent(my_root)) target_file = filePath + os.sep + fileName book.write(target_file,'utf-8')#注册函数 register( "export-file", "export-file-title", "export file", "MingL_Wang", "Glue", "2012", "<Image>/MyScripts/exportFile", "*", [ (PF_STRING, "file_name", "FileName ", "layout.xml"), (PF_DIRNAME, "file_path", "FilePath ", None) ], [], export_file )main()#该片段来自于http://byrx.net
相关内容
- Python 获取服务器信息,python获取服务器,[Python]代码sU
- Python 简单的可逆加密程序,python可逆加密,[Python]代码
- python对文件夹的一些操作,,复制文件夹def Cop
- Python 版的 PinkTrace 示例 pink-simple-strace-linux.py,,pink-si
- Python 版的 PinkTrace 示例 pink-fork-linux.py,,pink-fork-li
- 支持GAE本地运行的Unit test基类,gaeunit,GaeTestCase#
- 显示距离下班还有多长时间的Python版,多长时间python
- 各种排序方法,排序方法,最近找工作,很是郁闷,回
- python编写的一个通过多线程扫描端口的代码,python多线
- 用wxpython开发的批量在图片上生成水印文字的可视化小
评论关闭