Nautilus Image Converter is a popular extension among Ubuntu users to batch resize and rotate images. While it’s handy, it’s tied to the Nautilus file manager and is not available for users who use other flavours of Ubuntu e.g. Xubuntu or Lubuntu. imgd (read imaged) is a multiprocessing command-line alternative written in Python3. It uses the PIL (Pillow) library and has many more additional features.
Nautilus Image Converter uses a roundabout mechanism to do what it does. It is a GTK+ front-end to a shared library. This library internally calls the convert utility from ImageMagick (which is again a heavy package) with the parameters passed by the user. The convert utility calls ImageMagick library APIs and does the job of resize or rotation.
imgd, on the other hand, depends only on the Python3 PIL imaging library. To share an example of its performance: imgd could resize 8823 images (~4.5GB in size) of mixed resolutions (high to regular) stored in an external USB 2.0 hard disk at an adaptive resolution of 1366×1000 in around 8 minutes. The resulting size was 897MB (~ 20%).
By default imgd resizes images to the same resolution as Nautilus. However, it is powered with an additional adaptive resize algorithm that resizes the images to a resolution which fits the specified resolution better. For example, if an image has a resolution of 2048×1365 and is being resized to 1366×768:
- In regular mode (default, same as Nautilus Image Converter), output image resolution will be 1152×768.
- In adaptive mode, output image resolution will be 1366×910 (making the resulting image a better fit at a higher resolution for laptop monitors with a resolution of 1366×768).
imgd has a lot of additional perks as you’ll see in the features below.
- resize by percentage or resolution
- rotate clockwise by specified angle
- adaptive resize considering orientation
- brute force to a resolution
- optimize images to save more space
- convert PNG to JPEG
- erase exif metadata
- force smaller to larger resize
- process directories recursively
- overwrite source image option
- include hidden files
- minimal dependencies
To install imgd on Ubuntu, download the Ubuntu family package from the releases page and run:
$ sudo apt-get install python3-pil $ sudo dpkg -i imgd_version_all.deb
The options are quite self-explanatory:
$ imgd -h -h, --help show this help message and exit -s %, --scale % scale image by percentage -x HxV, --res HxV output resolution in HxV representation -o deg, --rotate deg rotate clockwise by specified angle -a, --adapt adapt to resolution by orientation [default: off] -c, --convert convert PNG to JPG format [default: off] -d, --dot include hidden files (on Linux) [default: off] -e, --eraseexif erase exif metadata [default: off] -f, --force force to exact specified resolution [default: off] -i, --processimgd re-process generated files. * RISKY: refer to docs -n, --enlarge enlarge smaller images [default: off] -p, --optimize optimize the output images [default: off] -q, --quiet operate silently [default: verbose] -r, --recursive process directories recursively [default: off] -w, --overwrite overwrite source images [default: off] -z, --debug enable debug logs [default: off]
Both the manpage and online readme has examples of imgd use cases. It can do a lot more than that though.
On GitHub: imgd