확대하지 않고 이미지 크기를 조정하기 위해 터미널에서 "sips"를 어떻게 사용합니까?

확대하지 않고 이미지 크기를 조정하기 위해 터미널에서 "sips"를 어떻게 사용합니까?

Mac OS X에서 명령 프롬프트(및/또는 Quicksilver)를 통해 이미지 크기를 최대 너비 또는 높이 500px로 조정하는 데 사용한 일부 코드가 있습니다. 유일한 문제는 원본 이미지가 너비나 높이가 500px보다 작은 경우 sips가 이미지를 확대한다는 것입니다. 이 이미지를 건너 뛰기를 원합니다.

어떻게 하면 그렇게 할 수 있나요?

이것은 내 코드입니다.

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

관련 정보