【问题标题】:Gimp save all layers to files with the layers sizeGimp 将所有图层保存到具有图层大小的文件中
【发布时间】:2013-12-11 14:54:19
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: gimp script-fu python-fu xcf


    【解决方案1】:

    是的,但在这种情况下,我建议使用 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)
    ... 
    >>> 
    

    完成!这个 sn-p 假设在 GIMP 中打开单个图像(它需要最后一个打开 列表中的图像默认使用[0]。)

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

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

    【讨论】:

    • 谢谢,这正是我所需要的。
    • 保存文件会很慢有什么原因吗?在 Windows 8、64 位、i5、8GB RAM 上,每个文件大约需要 10 分钟。还是只是文件大小? (7 个文件,每个文件约 30MB?)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多