如何在終端機上使用“sips”來調整影像大小而不放大?

如何在終端機上使用“sips”來調整影像大小而不放大?

我有一些程式碼,我一直在使用這些程式碼透過命令提示字元(和/或quicksilver)將Mac OS X中的圖像大小調整為最大寬度或高度500px。唯一的問題是,如果原始影像的寬度或高度小於 500px,sips 會將其放大。我希望它跳過這些圖像。

我怎樣才能做到這一點?

這是我的程式碼:

#!/bin/bash

對於“$@”中的 ARG
        sips -Z 500 -s 格式 jpeg "$ARG" --out "${ARG%.*}.jpg"
完畢

答案1

sips --getProperty pixelHeight filename.ext處理and的輸出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

相關內容