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 中的文件和文件夹),里面有图像(只有当我选择图像时才有效)。

我的第二个问题是,如何修改此代码以制作 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 回答