アップスケールせずに、ターミナルで「sips」を使用して画像のサイズを変更するにはどうすればよいですか?

アップスケールせずに、ターミナルで「sips」を使用して画像のサイズを変更するにはどうすればよいですか?

私は、コマンド プロンプト (および/またはクイックシルバー) を介して Mac OS X で画像のサイズを最大幅または高さ 500 ピクセルに変更するために使用しているコードがあります。唯一の問題は、元の画像の幅または高さが 500 ピクセルより小さい場合、sips によって拡大されることです。これらの画像はスキップするようにしたいと思います。

どうすればそれが実現できるでしょうか?

これが私のコードです:

#!/bin/bash

「$@」のARG
    する
        sips -Z 500 -s format 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

これは画像の幅と高さを1つのコマンドで読み取ります

#!/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

関連情報