用于转换 jpeg 图像的 Automator Apple 脚本
Automator Apple Script to convert jpeg image
我使用下面的自动函数将 png 图像批量转换为 jpeg。它工作正常并一次转换文件夹中的所有图像。但是 jpeg 图像的质量并不完整。
图 1:Automator 函数
图片 2:预览应用程序显示图像质量。我们如何在自动机上面的功能中做同样的事情?
您好,您可能必须安装 ImageMagick,因为我不确定您是否可以编写 AppleScript 或其他东西来使预览使用更好的质量,而且我在用户默认数据库中找不到任何用户首选项设置质量.它可能存在,但我没有找到它。
这是一个 link,其中包含一些关于 ImageMagick: Command-line Tools: Convert 的信息 我认为您最好的选择是使用执行 unix 脚本操作,在从 finder 转换路径或从 finder 转换文件夹之后,并在操作中有一个 shell 脚本,它以您想要的质量执行转换。
New(对于无法使 CRGreens 解决方案起作用的情况,请参阅下面的评论)
我们需要有一个文件夹,您的图像将在这个过程中被转换到,所以我建议您将下面的 AppleScript 放入新工作流程中的 "run applescript action",然后 select 在 Finder 中进行转换的文件夹,在 运行 刚刚创建的工作流程之前,然后在新的 TextEdit 文档中点击 "Cmd-V",以便稍后使用。
on run {input, parameters}
tell application "Finder"
if selection is not {} then
set theSel to selection as alias list
end if
end tell
if theSel is not {} then
set theFol to item 1 of theSel
set the clipboard to "cd " & quoted form of POSIX path of theFol
else
beep
end if
end run
保存并关闭 Automator 工作流程,以防您在其他场合需要它。
不幸的是,此功能在该操作中不可用(奇怪)。我建议使用 "Run Shell Script" 操作。
[编辑:我用新的图形和详尽的解释替换了这里的所有内容。]
解释:
红框内:
这些是操作。有 5 个。有 2 个 运行 Shell 脚本操作,一个紧接着另一个。
绿框内:
这些是操作的详细信息。
1:询问 Finder 项目:
Type: Folders
Do NOT Allow Multiple Selection
2:获取文件夹内容:
You may use "Repeat for each subfolder found" if you wish
3: 运行 Shell 脚本:
Pass Input: as arguments
剧本:
for f in "$@"
do
sips -s format jpeg -s formatOptions 100 "$f" --out "${f%.png}.jpg";
#rm "$f";
echo "${f%.png}.jpg"
done
4: 运行 Shell 脚本:
Pass Input: as arguments
剧本:
for f in "$@"
do
echo "$f" | grep .jpg
done
5:移动查找器项目:
To: [select your folder]
NOTE: 为了安全起见,我在第一个运行 Shell Script脚本中注释掉了"rm"行(在它前面放一个“#”)用于测试.这是删除 PNG 文件的行。如果测试后一切正常,您可以删除“#”。
我使用下面的自动函数将 png 图像批量转换为 jpeg。它工作正常并一次转换文件夹中的所有图像。但是 jpeg 图像的质量并不完整。
图 1:Automator 函数
图片 2:预览应用程序显示图像质量。我们如何在自动机上面的功能中做同样的事情?
您好,您可能必须安装 ImageMagick,因为我不确定您是否可以编写 AppleScript 或其他东西来使预览使用更好的质量,而且我在用户默认数据库中找不到任何用户首选项设置质量.它可能存在,但我没有找到它。
这是一个 link,其中包含一些关于 ImageMagick: Command-line Tools: Convert 的信息 我认为您最好的选择是使用执行 unix 脚本操作,在从 finder 转换路径或从 finder 转换文件夹之后,并在操作中有一个 shell 脚本,它以您想要的质量执行转换。
New(对于无法使 CRGreens 解决方案起作用的情况,请参阅下面的评论)
我们需要有一个文件夹,您的图像将在这个过程中被转换到,所以我建议您将下面的 AppleScript 放入新工作流程中的 "run applescript action",然后 select 在 Finder 中进行转换的文件夹,在 运行 刚刚创建的工作流程之前,然后在新的 TextEdit 文档中点击 "Cmd-V",以便稍后使用。
on run {input, parameters}
tell application "Finder"
if selection is not {} then
set theSel to selection as alias list
end if
end tell
if theSel is not {} then
set theFol to item 1 of theSel
set the clipboard to "cd " & quoted form of POSIX path of theFol
else
beep
end if
end run
保存并关闭 Automator 工作流程,以防您在其他场合需要它。
不幸的是,此功能在该操作中不可用(奇怪)。我建议使用 "Run Shell Script" 操作。
[编辑:我用新的图形和详尽的解释替换了这里的所有内容。]
解释:
红框内:
这些是操作。有 5 个。有 2 个 运行 Shell 脚本操作,一个紧接着另一个。
绿框内:
这些是操作的详细信息。
1:询问 Finder 项目:
Type: Folders
Do NOT Allow Multiple Selection
2:获取文件夹内容:
You may use "Repeat for each subfolder found" if you wish
3: 运行 Shell 脚本:
Pass Input: as arguments
剧本:
for f in "$@"
do
sips -s format jpeg -s formatOptions 100 "$f" --out "${f%.png}.jpg";
#rm "$f";
echo "${f%.png}.jpg"
done
4: 运行 Shell 脚本:
Pass Input: as arguments
剧本:
for f in "$@"
do
echo "$f" | grep .jpg
done
5:移动查找器项目:
To: [select your folder]
NOTE: 为了安全起见,我在第一个运行 Shell Script脚本中注释掉了"rm"行(在它前面放一个“#”)用于测试.这是删除 PNG 文件的行。如果测试后一切正常,您可以删除“#”。