Images from your digital camera tend to be big. Really big. Even with our broadband connections having a slideshow of 5mb images does not make a lot of sense. If you want to email images you probably want to resize them all before you send them. There are also situations where you have images of many different sizes and you want to resize them uniformly. With a quick Google search I couldn’t find any way to do this that didn’t involve a command line. I set out to create a batch image resizer with a GUI similar to the ones I’ve used on Windows.
Its called BIR for Batch Image Resizer. It came out looking like this:
Along with resizing it will also rotate your images and crop them. It has plenty of options for fine tuning. It can resize a directory recursively and preserve your directory structure in the destination folder. I coded this so it looks at all the images and finds the first parent folder that all of the files share. Alternatively, you can also set it so all of the resized files end up on the same folder with no subdirectories. I’ve tested it with hundreds of files and it seems to work fine no matter how much you throw at it.
It can resize almost any type of file you would need to resize. The list of formates are:
- BMP Windows Bitmap
- JPG Joint Photographic Experts Group
- JPEG Joint Photographic Experts Group
- PNG Portable Network Graphics
- PPM Portable Pixmap
- TIFF Tagged Image File Format
- XBM X11 Bitmap
- XPM X11 Pixmap
Thanks to some helpful people on Reddit people have tested it and helped me iron out any issues they discovered
The source code is available here:
Version 2.0 fixes some issues with Ubuntu and all the code is updated for Qt5. If you need to compile it you use the same exact steps you used for qt4 except the qmake command might be qmake-qt5.
Compiling the Batch Image Resizer
If you rather not deal with resolving dependencies yourself you can download Qt from the Qt website. You can also download Qt-Creator which is the IDE I used to create this program.
If there are no precompiled release for your distro you can compile a release very easy. You just need the dependencies for Qt5. The development package will probably have a suffix like -dev. With a command like this you can search for packages with the letters “qt5” in them that also has the string “-dev”. This works for Ubuntu.
sudo apt-cache search qt5 | grep "dev"
So anyways, once you get the sources and dependencies compiling and installing is very easy.
$ mkdir build $ cd BIR/build $ qmake-qt5 ../ $ make $ sudo make install
Thats all there is to it. The program should appear in whatever launcher you use.