0

私は、選択したすべてのファイルに透かしを入れるこの作業 Automator/bash スクリプトを持っています。

watermark=~/Dropbox/watermark.png
shopt -s nocasematch
for f; do
  [[ $f =~ .*\.(jpe?g|png)$ ]] || continue
  d="${f%/*}/wm_$(date +%Y_%m_%d)"
  mkdir -p "$d"
  target="$d/${f##*/}"
  size=$(/usr/local/bin/identify -format '%[fx:w/4,279]' "$f")
  /usr/local/bin/composite -dissolve 10% -gravity SouthEast\
  \( $watermark -geometry $size \) "$f" -quality 100 "$target"
done

自動化 このセットアップの問題は、フォルダーを選択すると機能しません (もちろん、この場合、Automator でタイプをファイルとフォルダーに設定します)。内部に画像が含まれています (画像を選択した場合にのみ機能します)。

2 番目の質問は、このコードを変更して selectedfolder_watermarked フォルダーを作成する方法です。

4

1 に答える 1

1

このスクリプトはフォルダーでのみ機能し、たとえば次の場所に保存し~/Desktop/dir1/file1.pngます~/Desktop/dir1_watermarked/file1.png

watermark=~/Dropbox/watermark.png
shopt -s nocasematch extglob
for dir; do
  mkdir "$dir"_watermarked
  for f in "$dir"/*.@(png|jpg|jpeg); do
    size=$(/usr/local/bin/identify -format '%[fx:w/4,279]' "$f")
    /usr/local/bin/composite -dissolve 10% -gravity SouthEast \
    \( $watermark -geometry $size \) "$f" -quality 100 "$dir"_watermarked/"${f##*/}"
  done
done
于 2013-10-25T17:50:26.430 に答える