这是Apple 的 Automator 的后续:jpg 的压缩设置?
有用。但是,我未能对其进行修改以使其更灵活。
我正在将 Sips 合并到 Automator 中,以尝试创建一个液滴,将图像文件更改为 jpeg,具有特定的质量和尺寸。automator 应用程序会询问压缩级别和像素宽度,然后输出请求的文件。除了......我的没有。脚本(我缺乏编程知识)是我的薄弱环节。
这就是我所做的不起作用...请参阅:
这是Apple 的 Automator 的后续:jpg 的压缩设置?
有用。但是,我未能对其进行修改以使其更灵活。
我正在将 Sips 合并到 Automator 中,以尝试创建一个液滴,将图像文件更改为 jpeg,具有特定的质量和尺寸。automator 应用程序会询问压缩级别和像素宽度,然后输出请求的文件。除了......我的没有。脚本(我缺乏编程知识)是我的薄弱环节。
这就是我所做的不起作用...请参阅:
写代码的发帖人的代码有两个错误。
在 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 脚本的内容,以了解一些基础知识。
网上有植物的参考资料。而苹果有这个。
我敢肯定,如果你问其他人可以给你一些很好的起点的问题,首先在这个网站上搜索类似的问题,因为我相信它被问了一千次。