如何使用GraphicsMagick裁剪为多个图像

use*_*086 4 graphicsmagick

根据GraphicsMagick手册页,我可以通过使用-crop没有偏移量从图像创建多个图块:

如果省略x和y偏移,则生成覆盖整个输入图像的指定几何图形的一组图块.如果指定的几何图形超出输入图像的尺寸,则最右边的图块和底部图块会更小.

所以我运行了以下命令(在Linux下):

gm convert -crop 256x256 input.png tile      # => a single file called tile
gm convert -crop 256x256 input.png tile.png  # => a single file called tile.png
Run Code Online (Sandbox Code Playgroud)

如何指定输出以创建多个图像?

use*_*086 5

gm convert -crop 256x256 input.png +adjoin tile%04d.png
Run Code Online (Sandbox Code Playgroud)

+毗是关键.

从手册的" 文件和格式"部分:

单个图像使用您指定的文件名写入.然而,可以使用包括作为文件​​名的一部分的场景编号来编写多部分图像(例如,具有+ adjoin指定的多页PostScript文档 ).为了在文件名中包含场景编号,必须在文件名中包含printf样式的%d格式规范,并使用+ adjoin选项.例如,

 image%02d.miff
Run Code Online (Sandbox Code Playgroud)

写入文件image00.miff,image01.miff等等.只有一个单一的规范被一个输出文件名内允许的.如果存在多个规范,则将忽略该规范.最好将场景编号嵌入文件名的基本部分,而不是在扩展名中,因为扩展名不是可识别的图像类型.

相邻部分:

使用+ adjoin强制将多个帧保存到多个编号的文件.如果使用+ adjoin,则输出文件名必须包含文件名数字部分的printf样式格式规范.例如,

image%02d.miff
Run Code Online (Sandbox Code Playgroud)