¿Cómo se utilizan "sorbos" en la terminal para cambiar el tamaño de una imagen, sin escalarla?

¿Cómo se utilizan "sorbos" en la terminal para cambiar el tamaño de una imagen, sin escalarla?

Tengo un código que he estado usando para cambiar el tamaño de las imágenes en Mac OS X a través del símbolo del sistema (y/o Quicksilver), hasta un ancho o alto máximo de 500 px. El único problema es que si la imagen original tiene menos de 500 píxeles de ancho o alto, sips la ampliará. Me gustaría que simplemente omitiera estas imágenes.

¿Cómo puedo hacer que eso suceda?

Este es mi código:

#!/bin/bash

para ARG en "$@"
    hacer
        sorbos -Z 500 -s formato jpeg "$ARG" --out "${ARG%.*}.jpg"
hecho

Respuesta1

Procese la salida de sips --getProperty pixelHeight filename.exty sips --getProperty pixelWidth filename.extutilícela en una condición, realizando solo la operación de cambio de tamaño si lo desea.


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

Puedes hacer el resto por tu cuenta.

Respuesta2

Esto lee el ancho y el alto de la imagen en un solo comando.

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

información relacionada