Batch image resize using Linux command line

Question

How can I batch resize multiple images using Linux command line? Is there any tool which would help me with this and/or is there GUI application which makes image resizing easy. I have hundreds of images and therefore I’m in the need for such a tool which I also can use in combination with shell scripting.

Answer

The best and the easiest way to resize multiple images using linux command line is to use imagemagick tools. First you need to install imagemagick package:

# apt-get install imagemagick

Once installed, you will have multiple image processing tools available to our disposal, such as convert, identify and etc.
identify command will help you to get some image information and convert will help you to convert images between hundreds of different image formats as well as it will easily resize any image submitted as an argument.

Let’s suppose that our current working directory contains multiple image files with extension *.jpg . To resize all images to a half size of their original size we can combine bash for loop and convert command together in a following manner:

$ for i in $( ls *.jpg); do convert -resize 50% $i re_$i; done

The command above will resize all images to half of its original size. New resized images will be saved with a prefix “re_”. It is also possible to resize all images and at the same time convert them to gif format:

$ for i in $( ls *.jpg); do convert -resize 50% $i $i.gif; done

When it comes to GUI application which are able of batch image resizing you might look at Converseen .



Comments and Discussions
Linux Forum