As a follow up on my Bash scripting efforts that I started this year I wrote a script that resizes a photo to a specified width in pixels. The script should work both on Linux and OSX (tested on OSX, will test on Linux later). For this script to work ImageMagick needs to be installed. The script tests if an argument is specified (the original photo of course), if ImageMagick has been installed and if the file output.jpg exists. If output.jpg exists the user gets the option to overwrite the existing file or exit the script. Finally the user needs to specify the width in pixels of the output.jpg.
If you want to use this script, copy the code below and paste it into an editor like vim, vi or Geany. Save it e.g under the name resize and make this file executable by typing.
chmod 755 resize
Now if the photo is in the same folder as the script just type.
./resize yourphoto.jpg
Cheers.
The script
#!/bin/bash # written by Eric Buijs 12 january 2019 if [ $# -eq 0 ] then echo You need to specify a file. echo e.g: resize photo.jpg exit 1 fi if [ ! $(which convert) ] then echo This script requires Imagemagick! echo You can download it at http://www.imagemagick.org/ exit 1 fi if [ -e output.jpg ] then echo output.jpg already exists. read -p "Do you want to overwrite it? (Y/N) " answer echo $answer if [ $answer = "N" ] then exit 1 fi fi read -p "What is the desired width in px: " width convert $1 -resize $width output.jpg
Thanks for reading!