Gimp将所有图层保存为具有图层大小的文件

时间:2013-12-11 14:54:20

标签: gimp script-fu python-fu xcf

我有一个包含20多个图层的.xcf文件,用于制作精灵文件。

我想将所有这些图层保存为单独的文件,只包含每个图层的内容和大小。

我为gimp找到了这个脚本:https://github.com/jiilee/gimp

不幸的是,脚本会创建具有图像完整大小的文件,而不是每个图层的大小。

举个例子: 图像宽700像素,高400像素。 一层放置在x:100px,y:29px,宽度:72px,高度:21px; 我找到的脚本生成一个700px x 400px的文件,而不是因为我需要72px x 21px。

是否可以自动执行此操作?

1 个答案:

答案 0 :(得分:7)

是的,但我建议在这种情况下使用Python作为脚本语言,而不是脚本fu。 对于这样的东西,你甚至不需要插件,只需在过滤器上键入类似下面的东西 - > python-fu-> console

>>> img = gimp.image_list()[0]
>>> img.layers[0].name
'C'
>>> folder = "/tmp/"
>>> for layer in img.layers:
...   name = folder + layer.name + ".png"
...   pdb.gimp_file_save(img, layer, name, name)
... 
>>> 

完成!此代码段假定在GIMP中打开一个图像(它需要最后打开 默认情况下,列表中的图片为[0]。)

导出图像的调用将drawable(可以是图层,蒙版或其他项)作为输入,并使用默认参数保存通过文件扩展名猜测类型的文件。

当然,您可以通过为文件创建更精细的命名方案来改进它,等等。要将这个核心变成一个自动化的python-fu插件,你只需将它放在一个函数中,放在个人插件目录的.py文件中。 (如果在Unix / Mac OS / Linux上你必须将其设置为可执行文件) - 并在同一文件中调用GIMP-fu的寄存器和主要功能 - 在这里选择一个示例http://www.ibm.com/developerworks/opensource/library/os-autogimp/,了解如何安排文件并进行这些调用。 (你可以直接进入清单6)。