![アップスケールせずに、ターミナルで「sips」を使用して画像のサイズを変更するにはどうすればよいですか?](https://rvso.com/image/1264203/%E3%82%A2%E3%83%83%E3%83%97%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E3%81%9B%E3%81%9A%E3%81%AB%E3%80%81%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%A7%E3%80%8Csips%E3%80%8D%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E7%94%BB%E5%83%8F%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
私は、コマンド プロンプト (および/またはクイックシルバー) を介して 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