如何编写一个bash脚本,使用图像magick将图像剪切成碎片?

我有许多input图像包含多个较小的图像,他们都在一个单一的行。 所有包含的图像是相同的大小。 因此,例如,图像input.png可以是480x48并且包含10个48x48图像,全部在一行中。

使用imagemagick convert工具(或默认的imagemagick套件提供的任何其他工具),我想编写一个bash脚本,它需要一个input图像,剪切的图像数量,然后将它们全部切成单个图像。

我可以做的用户交互,但我还没有能够得到convert来做实际的切割。 任何人都可以提出build议 从阅读手册页,我认为这应该工作:

convert 'input.png[0x0+48+48]' output.png

但我得到一个错误:

转换:在cachingtb_icons_l.png' @ magick/cache.c/OpenCache/3572. convert: No IDATs written into file没有定义像素tb_icons_l.png' @ magick/cache.c/OpenCache/3572. convert: No IDATs written into file tb_icons_l.png' @ magick/cache.c/OpenCache/3572. convert: No IDATs written into file 1.png'@coders / png.c / PNGErrorHandler / 1391。

有任何想法吗?

我相信你已经把位置和大小交换了。 尝试:

 convert 'input.png[48x48+0+0]' output.png 

第三个图像是:

 convert 'input.png[48x48+96+0]' output.png 

要么

 convert 'input.png[48x48+0+96]' output.png 

我会这样做:

 convert input.png -crop 48x48 +repage +adjoin output_%02d.gif 

在ImageMagick文档中了解更多信息 。