我有一个包含几百个图像文件夹的文件夹,每个文件夹里面都有4个随机名称的图像,我需要做的是遍历所有子文件夹,读取每个子文件夹的4个图像名称,对它们运行此命令:
convert \( $subdir/$file1.jpg $subdir/$file2.jpg -append \) \( $subdir/$file3.jpg $subdir/$file4.jpg -append \) +append $subdir.jpg
这是它应该如何运作的:
foreach(subdirectory in directory){
$img_arr[] = new Array();
foreach(file in subdirectory){
$img_arr[] = file;
}
exec("convert \( $subdirectory /$img_arr[0].jpg $subdirectory /$img_arr[1].jpg -append \) \( $subdirectory/$img_arr[2].jpg $subdirectory/$img_arr[3].jpg -append \) +append $subdirectory.jpg");
}
这是我到目前为止所得到的:
#!/bin/bash
img=0;
IFS=$'\n'
for NAME in $(find -type f)
do
echo "Found a file: \"$NAME\""
done
我正在尝试使用imagemagick将4张图片合并为一张。谢谢!
答案 0 :(得分:2)
试试这个:
for dir in *
do
test -d $dir || continue
files=($dir/*.jpg)
convert \( ${files[0]} ${files[1]} -append \) \( ${files[2]} ${files[3]} -append \) +append $dir.jpg
done
答案 1 :(得分:1)
您的初步方法几乎没有问题,只需进行一些更改:
for dir in $(find . -type d); do
echo $dir;
done