0

这是Apple 的 Automator 的后续:jpg 的压缩设置?

有用。但是,我未能对其进行修改以使其更灵活。

我正在将 Sips 合并到 Automator 中,以尝试创建一个液滴,将图像文件更改为 jpeg,具有特定的质量和尺寸。automator 应用程序会询问压缩级别和像素宽度,然后输出请求的文件。除了......我的没有。脚本(我缺乏编程知识)是我的薄弱环节。

这就是我所做的不起作用...请参阅:http://i.imgur.com/6cofqi7.png

4

1 回答 1

0

写代码的发帖人的代码有两个错误。

在 shell 中调用变量时。你必须在它前面加上“$”

所以错过了这一点的地方就是阻止代码正常工作。

没有 $ 的行是:compressionLevel=file

sips -s format jpeg -s formatOptions compressionLevel $file --out ${filename%.*}.jpg

更正后的代码:应该是:compressionLevel=$file

sips -s 格式 jpeg -s formatOptions $compressionLevel $file --out ${filename%.*}.jpg


更新的答案*我注意到你有像素宽度。

所以我更改了代码以适应它。

我还在输出文件的末尾添加了一个“_”,您可以根据需要将其删除。我把它放在那里的原因是我不会覆盖原件并创建有效的副本。

在此处输入图像描述

compressionLevel=$1
pixalWidth=$2


i=1 # index of item

for item    # A for loop by default loop through $1, $2, ...
do

if [ $i -gt 2 ]; then # start at index 3  #-- array indexes start at 0. 0 is just a "-" in this case so we totally ignor it. we are using items 1 & 2 for the sip options, the rest for file paths. the index "i" is used to keep track of the array item indexes.

     echo "Processing $item"

 sips -s format jpeg -s formatOptions $compressionLevel --resampleWidth $pixalWidth $item --out ${item%.*}_.jpg

fi

    ((i++))
done

osascript -e 'tell app "Automator" to display dialog "Done." buttons {"OK"}'

我建议您阅读一些有关 shell 脚本的内容,以了解一些基础知识。

网上有植物的参考资料。而苹果有这个

我敢肯定,如果你问其他人可以给你一些很好的起点的问题,首先在这个网站上搜索类似的问题,因为我相信它被问了一千次。

于 2013-09-19T14:53:45.327 回答