用于转换 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 文件的行。如果测试后一切正常,您可以删除“#”。