这是Apple's Automator: compression settings for jpg?
的后续内容有效。但是我没有修改它以使其更灵活。
我将Sips整合到Automator中,尝试创建一个将图像文件更改为具有特定质量和尺寸的jpeg的墨滴。 automator应用程序要求压缩级别和像素宽度,然后吐出请求的文件。除了......我没有。脚本(我缺乏编程知识)是我的薄弱环节。
这就是我所做的那些不起作用的......请参阅:
答案 0 :(得分:0)
编写代码的海报在代码中有两个错误。
在shell中调用变量时。你必须在前面添加“$”
所以,错过了这个是什么阻止代码按预期工作。
没有$的行是:compressionLevel = file
和
sips -s format jpeg -s formatOptions compressionLevel $ file --out $ {filename%。*}。jpg
更正后的代码: 应该: compressionLevel = $文件
和
sips -s format 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脚本进行一些阅读以获得一些基础知识。
网上有参考工厂。 Apple已经this。
我相信如果你问其他人可以给你一些好的起点问题,首先在这个网站上搜索类似的问题,因为我确信这个基础已被问了一千次。