web-dev-qa-db-ja.com

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

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

どうすればそれを実現できますか?

これは私のコードです:

#!/ bin/bash 
 
 for ARG in "$ @" 
 do 
 sips -Z 500 -s format jpeg "$ ARG "--out" $ {ARG%。*}。jpg "
 done 
5
cwd

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

残りは自分で行うことができます。

4
Daniel Beck

これにより、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
0
Gianfranco P.