2

我有一个 .xcf 文件,它有 20 多个层,用于制作 sprite 文件。

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

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

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

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

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

4

1 回答 1

7

是的,但在这种情况下,我建议使用 Python 作为脚本语言,而不是 script-fu。对于这样的事情,您甚至不需要插件,您只需在 filters->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]。)

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

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

于 2013-12-11T22:20:19.487 回答