Batch image format conversion using SIPS (Scriptable Image Processing System) in OS X.
#!/bin/bash
echo ""
read -e -p "Target folder name: " folder
echo "Duplicate folder structure of $folder.."
if [ -d "Compressed-${folder}" ]; then
	echo ""
	read -r -p "\"Compressed-${folder}\" exist, overwrite? [y/n] " response
	if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]] 
	then
		rm -rf ./Compressed-${folder}
	else
		echo "Program terminated.."
		echo ""		
		exit
	fi
fi
mkdir ./Compressed-${folder}
cd ./Compressed-${folder}
(cd ../${folder}; find . -depth -type d ! -name . -print0) | xargs -0 mkdir -p
cd ..
echo ""
read -p "Target file extension (jpg,jpeg,tiff...): " extension
echo "Target file extension is \"$extension\".."
echo ""
read -e -p "Set the compression ratio (1-100%): " ratio
original="./${folder}"
replaced="./Compressed-${folder}"
find ./${folder} -iname "*.$extension" | while read file; do
	echo "Processing $file"
	newpath="${file/$original/$replaced}"
#	sips -s format tiff -s formatOptions $ratio -s formatOptions lzw "$file" --out "${newpath}" &> /dev/null
	sips -s format jpeg -s formatOptions $ratio "$file" --out "${newpath}" &> /dev/null
done
echo "\nProcess complete..\n"