有没有办法在 GIMP 中将精灵表切割成单个图像?

Posted

技术标签:

【中文标题】有没有办法在 GIMP 中将精灵表切割成单个图像?【英文标题】:Is there a way to cut a sprite sheet into individual images in GIMP? 【发布时间】:2019-03-05 13:00:39 【问题描述】:

我正在使用精灵表,我想为每一帧生成单独的图像,希望使用一些方便的命名约定。

我已经设置了图像网格,以便每个单独的帧都在网格的矩形中,我希望 GIMP 可以使用此间距和偏移量自动生成文件列表,并在行和列之后命名图像他们在里面。但是,如果我有文件列表,使用简单的脚本正确命名它们将是微不足道的,因此文件的命名只是一个方便的添加。

我目前正在使用裁剪工具手动剪切每一帧,然后将其导出为 PNG,重新加载工作表文件并重复。由于我将使用大量 sprite 进行此操作,每个 sprite 的帧数都比我目前使用的要多得多,因此这种方法很快就会变得不可持续。

【问题讨论】:

关于一般使用软件(而不是编程)的问题可能更适合SuperUser。也就是说,谷歌建议使用 Gimp 的Guillotine 命令。如果图像大小相同,您还可以使用 Netpbm 的 pnmcut 或 ImageMagick 的 convert 为其编写一个 shell 脚本。 【参考方案1】:

ofn-tiles script 会这样做,但它没有考虑间距。

要删除间距,您可以使用ofn-shred-layer script 的unshred 函数,一次是垂直的,一次是水平的(注意:您给它的是条带的宽度,而不是图块的宽度)。

【讨论】:

【参考方案2】:

GIMP 附带的“py-slice”插件具有类似的功能,尽管它依赖于图像指南 - https://gitlab.gnome.org/GNOME/gimp/blob/master/plug-ins/pygimp/plug-ins/py-slice.py

更改该脚本以使用固定大小的矩形和内部填充应该相对容易,而不是从手动定位的指南中创建其矩形。

特别是,您几乎不需要for 循环中的任何代码,这些代码在水平和垂直参考线、第 90-127 行等上进行交互,也不需要任何生成 html 的东西 -

相反,添加“精灵宽度、高度、内部填充”作为输入,并迭代矩形 - 并更改“注册”调用中的一些参数,以便您的文件将自己注册为另一个插件,而不是现有的一。

【讨论】:

以上是关于有没有办法在 GIMP 中将精灵表切割成单个图像?的主要内容,如果未能解决你的问题,请参考以下文章

你必须使用带有 CCSpriteFrameCache 的精灵表吗?

纹理包装动画图像/精灵表有效-Libgdx

如何区分ios中的动画和单个精灵表?

精灵与单个图像

PySide:分离精灵表/将图像分离成连续的颜色区域

在 Sprite Kit iOS 中使用一个图像精灵表