@valeraisrock

Рекурсивно применить ко всем картинкам в папке скрипт наложения водяного знака?

Есть вот такой скрипт, он норм и наносит водяной знак на изображение, мне нужно пройти и рекурсивно внутри папки по папкам, чет я туплю, хелп, аларм.
for image in *png *jpg *gif
do
 if [ -s $image ] ; then   # ненулевой размер файла
    width=$(identify -format %w $image)
    convert -background '#0008' -fill white -gravity center \
       -size ${width}x30 caption:AskDaveTaylor.com \
       $image +swap -gravity south -composite new-$image
     mv $image $savedir
     mv new-$image $image
    echo "На изображение $image успешно нанесен водяной знак"
  fi
done
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@valeraisrock Автор вопроса
Короче сам же и ответил на свой вопрос
vodyanoy - это что написать
/tmp - путь

for i in `ls /tmp -ld $(find . -regex ".*\(jpg\|jpeg\|JPG\|JPEG\|png\|PNG\)")`
do
echo $i
      if [ -s $i ] ; then   # ненулевой размер файла
          width=$(identify -format %w $i)
          convert -background '#0008' -fill white -gravity center \
             -size ${width}x30 caption:vodyanoy \
             $i +swap -gravity south -composite new-$image
           mv new-$image $i
          echo "На изображение $i успешно нанесен водяной знак"
        fi
     
      done
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
find /tmp -type f -regex ".*\(jpg\|jpeg\|JPG\|JPEG\)" -exec jpegoptim --preserve --preserve-perms --max=85 {} \;

вот так по аналогии сделай

где /tmp
find искать рекурсивно от текущего каталога
-type f - отображать только файлы
-regex ".*\(jpg\|jpeg\|JPG\|JPEG\)" - ну регулярка тут короче
-exec выполнить с найденым
jpegoptim --preserve --preserve-perms --max=85 -моя команда
{} - то место где ты подставляешь найденный файл,
\; конец
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы