如果您在 shell 中为单个精灵的宽度和高度、起始精灵的 X 和 Y 偏移量以及要使用的精灵数量设置变量,像这样的 ImageMagick 命令将从工作表并将它们变成动画 GIF。
这是在 Windows CMD 语法中...
set WIDE=100
set HIGH=100
set XCOORD=100
set YCOORD=300
set FRAMES=5
convert spritesheet.png ^
-set option:distort:viewport %[fx:%FRAMES%*%WIDE%]x%HIGH% ^
-set option:slider %[fx:%YCOORD%*(w/%WIDE%)+%XCOORD%] ^
-crop %WIDE%x%HIGH% +append +repage ^
-distort affine "%[slider],0 0,0" ^
-crop %WIDE%x%HIGH% +repage ^
-set delay 50 -loop 0 result.gif
变量 %WIDE% 和 %HIGH% 是单个精灵的尺寸。
变量 %XCOORD% 和 %YCOORD% 是您需要的第一个精灵从页面左侧和顶部的偏移量。
变量 %FRAMES% 是要提取的精灵总数。
该命令从读取输入表开始。它使用输入图像尺寸和您提供的变量来定义 IM 稍后使用的一些设置。首先是隔离请求数量的精灵所需的视口尺寸。其次,它计算第一个精灵将在 表被裁剪成单个精灵并附加到一个水平行之后的偏移量。
接下来它将图像“-crop”成单独的精灵,并将它们“+append”成一个水平行。
然后它使用“-distort affine”将整行精灵滑动所需的距离 - “%[slider]” - 向左,如果需要,一些量超出视口,并缩小视口以仅显示适当数量的精灵。
之后,它再次将该图像裁剪为单独的精灵,为动画设置延迟,并写入输出 GIF。
对于 Windows BAT 脚本,您需要在 IM 变量和 FX 表达式上加倍百分号“%%”,而不是像 %WIDE% 这样的 shell 变量。
对于 *nix shell 或脚本,您需要设置这些变量并以不同的方式访问它们。此外,您还需要用反斜杠“\”替换连续的插入符号“^”。
对于 ImageMagick 版本 7,以“magick”而不是“convert”开始命令。
在编写输出 GIF 之前,您需要设置所需的处理方法、延迟,可能还有“-loop 0”。