苹果Automator制作JPEG,要求压缩级别和尺寸

时间:2013-09-17 08:16:50

标签: automator sips

这是Apple's Automator: compression settings for jpg?

的后续内容

有效。但是我没有修改它以使其更灵活。

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

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

1 个答案:

答案 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


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

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

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

enter image description here

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

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