我有许多输入图像,其中包含多个较小的图像,所有这些图像都在一行中。所有包含的图像大小相同。因此,例如,图片input.png
可能是480x48
并且包含10张48x48
张图片,所有这些图片都在一行中。
使用imagemagick convert
工具(或defaul imagemagick套件提供的任何其他工具),我想写一个bash脚本,它接受输入图像,要剪切的图像数量,然后将它们全部剪切掉到单个图像。
我可以做的用户互动,但我无法让convert
进行实际切割。谁能提出建议?从阅读手册页,我认为这应该有效:
convert 'input.png[0x0+48+48]' output.png
但是我收到了错误:
转换:没有在缓存中定义的像素
tb_icons_l.png' @ magick/cache.c/OpenCache/3572. convert: No IDATs written into file
1.png'@ 编码器/ png.c / PNGErrorHandler / 1391。
有什么想法吗?
答案 0 :(得分:9)
我会这样做:
convert input.png -crop 48x48 +repage +adjoin output_%02d.gif
答案 1 :(得分:5)
我相信你已经交换了位置和大小。尝试:
convert 'input.png[48x48+0+0]' output.png
第三张图片是:
convert 'input.png[48x48+96+0]' output.png
或者
convert 'input.png[48x48+0+96]' output.png