2

画像を含む数百のフォルダを含むフォルダがあります。各フォルダ内にはランダムな名前の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つの画像を1つに結合しようとしています。ありがとう!

4

2 に答える 2

4

これを試して:

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
于 2012-11-11T23:38:14.507 に答える
2

最初のアプローチはほとんど問題ありませんでしたが、いくつかの変更がありました。

for dir in $(find . -type d); do
    echo $dir; 
done
于 2012-11-11T23:47:16.803 に答える