Ich habe Code, den ich verwendet habe, um Bilder in Mac OS X über die Eingabeaufforderung (und/oder Quicksilver) auf eine maximale Breite oder Höhe von 500 Pixel zu skalieren. Das einzige Problem ist, dass Sips das Originalbild hochskaliert, wenn es kleiner als 500 Pixel Breite oder Höhe ist. Ich möchte, dass diese Bilder einfach übersprungen werden.
Wie kann ich das erreichen?
Dies ist mein Code:
#!/bin/bash für ARG in "$@" Tun sips -Z 500 -s format jpeg "$ARG" --out "${ARG%.*}.jpg" Erledigt
Antwort1
Verarbeiten Sie die Ausgabe von sips --getProperty pixelHeight filename.ext
und sips --getProperty pixelWidth filename.ext
und verwenden Sie sie in einer Bedingung. Führen Sie den Größenänderungsvorgang nur bei Bedarf aus.
#!/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
Den Rest können Sie alleine erledigen.
Antwort2
Dies liest die Breite und Höhe des Bildes in einem Befehl
#!/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