我有许多input图像包含多个较小的图像,他们都在一个单一的行。 所有包含的图像是相同的大小。 因此,例如,图像input.png
可以是480x48
并且包含10个48x48
图像,全部在一行中。
使用imagemagick convert
工具(或默认的imagemagick套件提供的任何其他工具),我想编写一个bash脚本,它需要一个input图像,剪切的图像数量,然后将它们全部切成单个图像。
我可以做的用户交互,但我还没有能够得到convert
来做实际的切割。 任何人都可以提出build议 从阅读手册页,我认为这应该工作:
convert 'input.png[0x0+48+48]' output.png
但我得到一个错误:
转换:在caching
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
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文档中了解更多信息 。