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.ext
y sips --getProperty pixelWidth filename.ext
utilí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