As I ramp up my blogging output, I need to deal with more and more images, mostly screenshots. On Ubuntu, the screenshot tool saves in PNG format. This is a great image format for lossless compression, but most of the time I do not care all that much about pristine image quality. I just want small images suitable for web content documenting procedures etc. So, I need a utility that can quickly and easily convert the PNGs to a format with a higher compression ratio.
ImageMagick is attractive for this purpose, but I have had a hell of a time figuring out how to batch convert my PNGs to JPEG. Here’s the solution I came up with.
~/images I have a bunch of PNG images. I want to convert all the PNG images to JPEG format, and I do not want to overwrite the original PNGs. Instead, I want to output the JPEG images to a destination directory
~/images/jpeg-conversion. Furthermore, I want all the output JPEG filenames to be the same as their corresponding PNG filenames — just with a
.jpg extension instead of
The following command accomplishes this.
$ mogrify -format jpg -path ~/images/jpeg-conversion/ *.png
You might initially be fooled, as I was, into thinking that the
convert program would logically be the correct one to do a batch image format conversion. However, I was not able to find a way to very simply convert and carry forward the input filenames to the corresponding output filenames. With
mogrify, this was simple.
The ImageMagick documentation appears to be pretty comprehensive, yet it was very difficult to parse out a solution to this batch conversion problem. I eventually landed on the solution on a page discussing thumbnail creation:
For example, this converts JPG images into GIF thumbnails in a
"thumbs"sub-directory that was just created.
mogrify -format gif -path thumbs -thumbnail 100x100 *.jpg
Interestingly, the author goes on to state the following:
The other methods will require you to either, first make a copy of the original image, before running “
mogrify“, create a special script to process the images, or some other DIY method. A number of the simpler non-IM techniques are detailed at the end of the example section for Batch Processing – Without using “