我为非常具体的情况道歉,我不知道解决方案对其他人有多大帮助。我正在为图像获取和拼接任务寻找自动化解决方案。我有来自Web源的图像,这些图像存储在定期递增的文件夹中,并具有可预测的文件名。我想下载这些文件,根据原始文件夹将它们存放在文件夹中,最后用简单的网格将每个文件夹中的文件拼接在一起。
以下是这两个步骤的具体内容。
第1步
图像以这种格式存储在常规递增的命名文件夹中。
http://website.url/XX_[1-339][v/r]/XX/images.jpg
因此数字将从001增加到339,每个数字都会有一个' r'和' v'版本,例如。
//XX_256r/XX/images.jpg or //XX_075v/XX/images.jpg
这些网址始终相同。现在在文件夹本身内容的图像分为131 256x256 .jpg' s。这些文件也是高度规则的,并根据网格图案命名为[0-9] _ [0-12] .jpg,第一个图像为0_0.jpg,最后一个为9_12.jpg。
通过使用简单的AppleScript,我可以毫不费力地按文件夹下载这些文件。然而,它仍然有点参与〜600次。下一步是我无法弄清楚即使是一次性自动化解决方案的部分。
第2步
图像存在于自己的文件夹中,图像本身是分成256x256像素部分的单个较大图像。我接下来要做的就是将这些图像组装成网格。图像以其在网格中的位置命名,因此0_0.jpg从左上角开始,1_0.jpg是下一个位置。网格宽9个,高12个,因此第一行图像将从0_0.jpg增加到9_0.jpg,最后一行将是0_12.jpg到9_12.jpg。我希望自动将这些图像拼接成单个图像,以便可以批量应用于整个集合。
这是我的目标。为此,我有X个问题:
如果我正在运行OS X,我可以使用Automator中的脚本执行第一步吗?我能够用简单的
获取单个文件夹curl -O http://website.url/.../XX/[0-9]_[0-12].jpg
但我无法弄清楚如何创建一个脚本,根据原始文件夹将图像存入文件夹。例如,我可以
curl -O http://website.url/XX_[001-339]v/XX/[0-9]_[0-12].jpg
使用v后缀运行一次,使用r运行一次以获取每个图像,但是这将在同一文件夹中放置几百个具有相同名称的文件。我不确定如何分开它们。
任何关于从哪里开始的建议将不胜感激,我意识到这是一个非常具体的问题。
答案 0 :(得分:0)
关于您的#1问题,curl的手册页有一个“-o”选项,因此您可以指定保存文件的位置。如果您阅读(如下所示),您可以看到它在使用“#”获取多个文档时同时使用“--create-dirs”选项。
-o, --output <file>
Write output to <file> instead of stdout. If you are using {} or
[] to fetch multiple documents, you can use '#' followed by a
number in the <file> specifier. That variable will be replaced
with the current string for the URL being fetched. Like in:
curl http://{one,two}.site.com -o "file_#1.txt"
or use several variables like:
curl http://{site,host}.host[1-5].com -o "#1_#2"
You may use this option as many times as the number of URLs you
have.
See also the --create-dirs option to create the local directo-
ries dynamically. Specifying the output as '-' (a single dash)
will force the output to be done to stdout.
关于问题#2,请参阅this link。请参阅“Jonik”的答案,他提到使用ImageMagick的蒙太奇命令。
而且我确信你已经知道了,你可以使用applescript中的“do shell script”命令运行你的curl和montage命令并创建一个applescript来自动完成所有这些。
答案 1 :(得分:0)
我会使用shell脚本和ImageMagick执行curl
和图像蒙太奇,而无需使用Applescript。
如果您不了解或拥有ImageMagick,我建议您使用homebrew
进行安装,如下所示:
brew install imagemagick
您需要知道的是+append
将并排添加输入图像,没有间隙,-append
会将图像添加到彼此之下,没有间隙。
#!/bin/bash
for r in {0..12}; do
convert {0..9}_$r.jpg +append row$r.jpg
done
convert row{0..12}.jpg -append whole.jpg
因此,如果将上述内容保存在登录目录($ HOME)中名为rebuild
的脚本中,并使其可执行
chmod +x $HOME/rebuild
然后你需要做的就是进入一个文件夹并输入
$HOME/rebuild
脚本将执行的命令如下所示完全展开:
convert 0_0.jpg 1_0.jpg 2_0.jpg 3_0.jpg 4_0.jpg 5_0.jpg 6_0.jpg 7_0.jpg 8_0.jpg 9_0.jpg +append row0.jpg
convert 0_1.jpg 1_1.jpg 2_1.jpg 3_1.jpg 4_1.jpg 5_1.jpg 6_1.jpg 7_1.jpg 8_1.jpg 9_1.jpg +append row1.jpg
convert 0_2.jpg 1_2.jpg 2_2.jpg 3_2.jpg 4_2.jpg 5_2.jpg 6_2.jpg 7_2.jpg 8_2.jpg 9_2.jpg +append row2.jpg
convert 0_3.jpg 1_3.jpg 2_3.jpg 3_3.jpg 4_3.jpg 5_3.jpg 6_3.jpg 7_3.jpg 8_3.jpg 9_3.jpg +append row3.jpg
convert 0_4.jpg 1_4.jpg 2_4.jpg 3_4.jpg 4_4.jpg 5_4.jpg 6_4.jpg 7_4.jpg 8_4.jpg 9_4.jpg +append row4.jpg
convert 0_5.jpg 1_5.jpg 2_5.jpg 3_5.jpg 4_5.jpg 5_5.jpg 6_5.jpg 7_5.jpg 8_5.jpg 9_5.jpg +append row5.jpg
convert 0_6.jpg 1_6.jpg 2_6.jpg 3_6.jpg 4_6.jpg 5_6.jpg 6_6.jpg 7_6.jpg 8_6.jpg 9_6.jpg +append row6.jpg
convert 0_7.jpg 1_7.jpg 2_7.jpg 3_7.jpg 4_7.jpg 5_7.jpg 6_7.jpg 7_7.jpg 8_7.jpg 9_7.jpg +append row7.jpg
convert 0_8.jpg 1_8.jpg 2_8.jpg 3_8.jpg 4_8.jpg 5_8.jpg 6_8.jpg 7_8.jpg 8_8.jpg 9_8.jpg +append row8.jpg
convert 0_9.jpg 1_9.jpg 2_9.jpg 3_9.jpg 4_9.jpg 5_9.jpg 6_9.jpg 7_9.jpg 8_9.jpg 9_9.jpg +append row9.jpg
convert 0_10.jpg 1_10.jpg 2_10.jpg 3_10.jpg 4_10.jpg 5_10.jpg 6_10.jpg 7_10.jpg 8_10.jpg 9_10.jpg +append row10.jpg
convert 0_11.jpg 1_11.jpg 2_11.jpg 3_11.jpg 4_11.jpg 5_11.jpg 6_11.jpg 7_11.jpg 8_11.jpg 9_11.jpg +append row11.jpg
convert 0_12.jpg 1_12.jpg 2_12.jpg 3_12.jpg 4_12.jpg 5_12.jpg 6_12.jpg 7_12.jpg 8_12.jpg 9_12.jpg +append row12.jpg
convert row0.jpg row1.jpg row2.jpg row3.jpg row4.jpg row5.jpg row6.jpg row7.jpg row8.jpg row9.jpg row10.jpg row11.jpg row12.jpg -append whole.jpg