我有一些代码,用于通过命令提示符(和/或 quicksilver)调整 Mac OS X 中的图像大小,最大宽度或高度为 500px。唯一的问题是,如果原始图像的宽度或高度小于 500px,sips 会将其放大。我希望它跳过这些图像。
我怎样才能实现这一点?
这是我的代码:
/bin/bash #!/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