1

我有一个很好的工作文件夹操作,它为文件夹中的每张图片添加水印并将它们放入文件夹中。

watermark=~/Dropbox/Business/mihalko_logo_bw.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"
  rm $f
done
~/imageoptim-cli/bin/imageOptim --jpeg-mini --image-alpha --quit --directory "$d"

不幸的是,FA 只在一个目录中工作。我试图从这段代码创建一个服务,但没有成功。有谁知道在这种情况下需要哪些修改/自动化操作?

4

2 回答 2

0

不幸的是,FA 只在一个目录中工作。我试图从这段代码创建一个服务,但没有成功。有谁知道在这种情况下需要哪些修改/自动化操作?

如果您设置了文件夹操作,您应该能够通过以下方式将文件夹操作附加到其他文件夹

  1. 进入 Finder
  2. 右键单击要将文件夹操作附加到的文件夹。
  3. 从上下文菜单中选择第一项“文件夹操作设置”:

文件夹操作设置

  1. 选择此菜单项将打开一个窗口,您可以在其中将文件夹操作附加到其他文件夹。

如果您需要使用 Automator 创建服务,您可以执行以下操作:

  1. 运行 Automator 应用程序
  2. 创建新服务
  3. 将名为“运行 Shell 脚本”的操作添加到您的 wokflow。
  4. 将您的代码复制并粘贴到 shell 脚本操作中。
  5. 选择服务可以使用的输入类型和应用程序。

我希望这对你有帮助。

如果我能提供进一步的帮助,您可以发送电子邮件至:kaydell@yahoo.com。

于 2013-09-03T21:52:12.473 回答
0

使用关联数组:

watermark=~/Dropbox/Business/mihalko_logo_bw.png
shopt -s nocasematch

declare -A dirs

for f; do
  [[ $f =~ .*\.(jpe?g|png)$ ]] || continue
  d="${f%/*}/wm_$(date +%Y_%m_%d)"
  mkdir -p "$d"
  dirs["$d"]="$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"
  rm "$f"
done

for d in "${dirs[@]}"; do
  ~/imageoptim-cli/bin/imageOptim --jpeg-mini --image-alpha --quit --directory "$d"
done
于 2013-09-03T19:44:50.917 回答