Skip to content

Instantly share code, notes, and snippets.

@h2onda
Created February 13, 2012 00:15
Show Gist options
  • Select an option

  • Save h2onda/1811997 to your computer and use it in GitHub Desktop.

Select an option

Save h2onda/1811997 to your computer and use it in GitHub Desktop.
#!/bin/bash
OUTPUTDIR=.
MAXSIZE=2048
usage(){
echo Usage: $(basename $0) [-s maxsize] [-o outputdir] jpg_file [...]
echo -s: max resolution [default: 2048]
echo -o: output directory [defalut: ./ ]
}
while getopts 's:o:h' args $*
do
case $args in
s)
SIZE=$OPTARG
;;
o)
OUTPUTDIR=$OPTARG
;;
h|?)
usage
exit 1
;;
esac
done
shift $(($OPTIND - 1))
for i in $*
do
BASENAME=$(basename $i)
BASENAME=${BASENAME%.*}
IDENTIFY=$(identify $i)
FILETYPE=$(echo $IDENTIFY|awk '{print $2}')
GEOMETRY=$(echo $IDENTIFY|awk '{print $3}')
WIDTH=$(echo $GEOMETRY|awk 'BEGIN{ FS="x";}{print $1}')
HEIGHT=$(echo $GEOMETRY|awk 'BEGIN{ FS="x";}{print $2}')
if [ "JPEG" != $FILETYPE ]; then
continue
fi
#echo "GEOMETRY=$GEOMETRY WIDTH=$WIDTH HEIGHT=$HEIGHT"
if [ $(( $WIDTH <= $MAXSIZE && $HEIGHT <= $MAXSIZE)) -eq 0 ]; then
echo convert $i to $OUTPUTDIR/$BASENAME.jpg
convert -adaptive-resize ${MAXSIZE}x${MAXSIZE} $i $OUTPUTDIR/$BASENAME.jpg
else
echo copy $i to $OUTPUTDIR/$BASENAME.jpg
cp $i $OUTPUTDIR/$BASENAME.jpg
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment