我有 200 张大小相同的 jpg。我需要将它们成对组合,并排放置。
所以
1.jpg
2.jpg
3.jpg
4.jpg
应该制作2个新的jpg,一个包含1和2,另一个包含3和4。并排。
将每张图片想象成一本书的一页。
无论如何使用 imageMagick 蒙太奇来自动化这个?
我有 200 张大小相同的 jpg。我需要将它们成对组合,并排放置。
所以
1.jpg
2.jpg
3.jpg
4.jpg
应该制作2个新的jpg,一个包含1和2,另一个包含3和4。并排。
将每张图片想象成一本书的一页。
无论如何使用 imageMagick 蒙太奇来自动化这个?
我最终在 .NET 控制台应用程序中使用了ImageMagick NuGet 包并执行了以下操作:
using (MagickImageCollection images = new MagickImageCollection())
{
for (var i = 2; i <= 210; i=i+2)
{
var first =
new MagickImage(string.Format("PATH-TO-IMAGE-FOLDER_{0}.jpg", i.ToString().PadLeft(3, '0')));
var second =
new MagickImage(string.Format("PATH-TO-IMAGE-FOLDER_{0}.jpg", (i+1).ToString().PadLeft(3, '0')));
images.Add(first);
images.Add(second);
using (MagickImage result = images.SmushHorizontal(0))
{
result.Write(string.Format("{0}.png", i));
}
images.Clear();
}
}
您可以通过创建bash脚本快速自动执行此操作。
#!/bin/bash
for index in $(seq 1 2 200)
do
left="$index.jpg"
right="$((index + 1)).jpg"
montage $left $right "page-$index.jpg"
done
该seq
实用程序将生成一个从 1 到 200(即1,3,5,7...199
)相互跳过的数字列表。
这是一种解决方法,但经过数小时的研究,我确定这是最好的方法。
您需要创建一个仅包含要合并的图片的备份工作文件夹。此技术将删除所有以前的文件名。
然后按以下方式重命名所有文件 [1]:
打开文件资源管理器并导航到包含所有照片的文件夹
选择所有照片(使用'ctrl+a')
找到系列中的第一张照片并右键单击它,然后单击重命名 将
其命名为:Myphoto (101) 或 Myphoto (1001)
'space + (101)' 或 'space + (1001)' 很重要
按回车键并观察您的文件全部自动重命名
您的照片现在应该按升序命名
例如:[ Myphoto (1001) )、Myphoto (1002)、Myphoto (1003) 等]
您必须执行上述步骤,因为 Imagemagick 处理文件名的方式与 Windows 文件资源管理器呈现它们的方式不同
>Windows 将名称排序如下:1、2、3、4、5、6、7、8、9、10、11 等重命名并导航到包含所有照片的(备份)文件夹后,您可以运行此命令,imagemagick 将发挥它的魔力!>其中 Imagemagick 排序为:1、11、2、22、3、33、4、44 等
魔术蒙太奇 -tile 2x1 -geometry +5+5 -border 5 *.png out@_%d.png
如果您不想要任何空白,可以删除边框和几何标签,
2x1可以更改为适合您需要的任何尺寸!(行 x 列)
以下是您可以使用的一些附加配置,而不是 2x1!
一乘二蒙太奇 - (1x2)
一乘三蒙太奇 - (1x3) 二乘
一蒙太奇 - (2x1) 二乘
二蒙太奇 - (2x2)
二乘三蒙太奇 - (2x3)
三乘一蒙太奇 - (3x1)
三乘两个蒙太奇 - (3x2)
三乘三蒙太奇 - (3x3)
非常感谢此线程中的 [@fmw42] 为我指明了正确的方向!
在 ImageMagick 蒙太奇中,如果您使用前导零重命名图像,以便它们按字母顺序排列并将它们放入一个目录并 cd 到该目录,那么您可以这样做
montage *.jpg -tile 2x -background white -geometry +2+2 result.jpg
-tile 2x 将它们成对地依次水平放置 1_2、3_4 等,背景颜色有 2 个像素的间隙。您可以根据需要调整间距。如果您想使用 -label "%f" 作为文件名,您可以添加标签。见http://www.imagemagick.org/Usage/montage/