如何使用imagemagick将图像裁剪为几个矩形网格

时间:2019-06-02 11:40:38

标签: image imagemagick imagemagick-convert

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

我认为可以使用imagemagick。

2 个答案:

答案 0 :(得分:3)

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

enter image description here

您可以将其划分为网格,如下所示: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

enter image description here

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

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

enter image description here

-rw-r--r--  1 mark  staff   5976  2 Jun 16:33 tile-0000.png
-rw-r--r--  1 mark  staff  15138  2 Jun 16:33 tile-0001.png
-rw-r--r--  1 mark  staff  17625  2 Jun 16:33 tile-0002.png
-rw-r--r--  1 mark  staff  15640  2 Jun 16:33 tile-0003.png
-rw-r--r--  1 mark  staff  12695  2 Jun 16:33 tile-0004.png
-rw-r--r--  1 mark  staff  30138  2 Jun 16:33 tile-0005.png
-rw-r--r--  1 mark  staff  32371  2 Jun 16:33 tile-0006.png
-rw-r--r--  1 mark  staff  30280  2 Jun 16:33 tile-0007.png
-rw-r--r--  1 mark  staff  33469  2 Jun 16:33 tile-0008.png
-rw-r--r--  1 mark  staff  29507  2 Jun 16:33 tile-0009.png
-rw-r--r--  1 mark  staff  34697  2 Jun 16:33 tile-0010.png
-rw-r--r--  1 mark  staff  36322  2 Jun 16:33 tile-0011.png
-rw-r--r--  1 mark  staff  36616  2 Jun 16:33 tile-0012.png
-rw-r--r--  1 mark  staff  40337  2 Jun 16:33 tile-0013.png
-rw-r--r--  1 mark  staff  37466  2 Jun 16:33 tile-0014.png
-rw-r--r--  1 mark  staff  30444  2 Jun 16:33 tile-0015.png
-rw-r--r--  1 mark  staff  36170  2 Jun 16:33 tile-0016.png
-rw-r--r--  1 mark  staff  39400  2 Jun 16:33 tile-0017.png
-rw-r--r--  1 mark  staff  38850  2 Jun 16:33 tile-0018.png
-rw-r--r--  1 mark  staff  36439  2 Jun 16:33 tile-0019.png

答案 1 :(得分:2)

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

convert in.png -gravity center -extent 1:1 -crop 3x3@ out%02d.png

该“范围”将输入裁剪为最大可能的正方形,因此当将其切成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,请在这些命令中将“转换”更改为“魔术”。

注意:允许“ -extent”使用“ 3:4”之类的宽高比的语法自2018年初以来才可用。使用旧版本的ImageMagick可能需要手动计算该第一批作物以获取输入图像设置为适当的宽高比(...或使用FX表达式设置视口,并使用“-变形”来模拟裁剪)。