如何在终端使用“sips”来调整图像大小,而不进行放大?

如何在终端使用“sips”来调整图像大小,而不进行放大?

我有一些代码,用于通过命令提示符(和/或 quicksilver)调整 Mac OS X 中的图像大小,最大宽度或高度为 500px。唯一的问题是,如果原始图像的宽度或高度小于 500px,sips 会将其放大。我希望它跳过这些图像。

我怎样才能实现这一点?

这是我的代码:

/bin/bash #!/bin/bash

在“$@”中查找 ARG
        sips -Z 500 -s 格式 jpeg“$ARG”--out“${ARG%.*}.jpg”
完毕

答案1

sips --getProperty pixelHeight filename.ext处理和的输出sips --getProperty pixelWidth filename.ext并在条件中使用它,仅在需要时执行调整大小操作。


#!/bin/bash
height=`sips --getProperty pixelHeight url.png | sed -E "s/.*pixelHeight: ([0-9]+)/\1/g" | tail -1`
width=`sips --getProperty pixelWidth url.png | sed -E "s/.*pixelWidth: ([0-9]+)/\1/g" | tail -1`

if [[ $height -gt 500 || $width -gt 500 ]]; then
    growlnotify -m "large file needs reducing"
fi

剩下的事你可以自己做。

答案2

这将通过一个命令读取图像的宽度和高度

#!/bin/bash
size=($(sips -g pixelWidth -g pixelHeight $theFile | grep -o '[0-9]*$'))

if [[ ${size[0]} -gt 500 || ${size[1]} -gt 500 ]]; then
    growlnotify -m "large file needs reducing"
fi

相关内容