Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用imagemagick将图像裁剪成多个矩形网格_Image_Imagemagick_Imagemagick Convert - Fatal编程技术网

如何使用imagemagick将图像裁剪成多个矩形网格

如何使用imagemagick将图像裁剪成多个矩形网格,image,imagemagick,imagemagick-convert,Image,Imagemagick,Imagemagick Convert,如何将大图像切割成网格,以便将较小的图像上载到Instagram,从而在网格视图中组成大图像 我认为imagemagick可以用于此。我不知道Instagram网格是什么,也不知道它可能有什么大小限制,但如果您有这样的图像: magick input.jpg -crop 3x2@ tile-%d.png 您可以将其划分为一个网格,3块宽2块高,如下所示: magick input.jpg -crop 3x2@ tile-%d.png 以下是6块瓷砖: -rw-r--r--@ 1 mark

如何将大图像切割成网格,以便将较小的图像上载到Instagram,从而在网格视图中组成大图像


我认为imagemagick可以用于此。

我不知道Instagram网格是什么,也不知道它可能有什么大小限制,但如果您有这样的图像:

magick input.jpg -crop 3x2@ tile-%d.png

您可以将其划分为一个网格,3块宽2块高,如下所示:

magick input.jpg -crop 3x2@ tile-%d.png
以下是6块瓷砖:

-rw-r--r--@ 1 mark  staff   62199  2 Jun 16:26 tile-0.png
-rw-r--r--@ 1 mark  staff   75180  2 Jun 16:26 tile-1.png
-rw-r--r--@ 1 mark  staff   69615  2 Jun 16:26 tile-2.png
-rw-r--r--@ 1 mark  staff  108443  2 Jun 16:26 tile-3.png
-rw-r--r--@ 1 mark  staff  121714  2 Jun 16:26 tile-4.png
-rw-r--r--@ 1 mark  staff  121384  2 Jun 16:26 tile-5.png

如果要裁剪成许多较小的部分,最好使用这样的零填充平铺名称,以便它们按顺序出现,如果您希望重新组装它们:

magick input.jpg -crop 5x4@ tile-%04d.png


要使用ImageMagick将任何图像制作成正方形网格,您需要事先确定单位数。像这样的命令首先将输入图像裁剪成一个精确的正方形,然后将该正方形裁剪成一个3x3的小正方形网格

convert in.png -gravity center -extent 1:1 -crop 3x3@ out%02d.png
该“-extent”将输入裁剪为最大可能的正方形,因此当它被切割成3x3网格时,完成的图像也是正方形。要将图像裁剪成3x4网格,您将使用更像这样的命令

convert in.png -gravity center -extent 3:4 -crop 3x4@ out%02d.png
在该示例中,“-extent”将输入图像裁剪为3:4的精确纵横比,因此当您将其裁剪为3乘4块时,它们都将是正方形

这两个示例都将生成具有顺序编号文件名的输出图像,如“out01.png”、“out02.png”等

如果您想要按照上传图像的顺序对输出图像进行编号,那么您可能需要反向编号。您可以在写入输出之前将“-reverse-scene 1”添加到命令中,以获得按上载顺序编号的裁剪方块的文件名

如果您使用的是IM7,请将这些命令中的“convert”改为“magick”


注意:允许“-extent”使用“3:4”等纵横比的语法仅在2018年初才可用。使用旧版本的ImageMagick可能需要手动计算第一次裁剪以将输入图像获得适当的纵横比(…或使用FX表达式设置视口并“-扭曲”以模拟裁剪)。

对于不使用Instagram的人,是否存在一些限制或需要上传的内容?也许你应该提供一个Instagram需要如何突破网格的例子。我的答案或其他答案解决了你的问题吗?如果是这样,请考虑接受它作为您的答案-点击空心蜱/支票旁边的选票计数。如果没有,请说出什么不起作用,以便我或其他人可以进一步帮助您。谢谢回答得好!在线命令选项中没有提到
-extent 3:4
,这真是太遗憾了。。。我可以在
geometry
下看到它,但是“-extent 1:1”是一种较新的语法。我不知道哪一个版本号是第一个使用它的,但它可能从2018年6月就开始使用了。它也适用于“-crop”。我编辑了我的文章来提到这一点。它是作为几何的一个选项引入的,作为IM 6.9.9-34中的纵横比,最初用于-crop。但它也在一定程度上起了作用。看
@GeeMack
,很好地使用了带纵横比的-extent,这是一种简单的方法,可以在裁剪之前使图像成为正方形或任何纵横比。