5

У меня есть некоторый код, который я использовал, чтобы изменить размеры изображений в Mac OS X через командную строку (и / или quicksilver), до максимальной ширины или высоты 500 пикселей. Единственная проблема заключается в том, что если исходное изображение меньше 500 пикселей в ширину или высоту, глотки увеличат его масштаб. Я хотел бы просто пропустить эти изображения.

Как я могу это сделать?

Это мой код:

#!/bin/bash

for ARG in "$@"
    do
        sips -Z 500 -s format jpeg "$ARG" --out "${ARG%.*}.jpg"
done

2 ответа2

4

Обработайте вывод 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

Вы можете сделать все остальное самостоятельно.

0

Это читает ширину и высоту изображения в одной команде

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .