I'm working with images of scanned books, so hundreds of high resolution pictures. I'm doing conversion work with Photoshop Elements - I can quickly save them to uncompressed TIFF, but converting to compressed PNG using a single thread takes ages.

Do you know a software, ideally simple and free, that would batch convert those TIFFs to PNG in a multi-threaded manner (4 to 8 simultaneous files) to take advantage of those cores and cut converting times? I'm not too worried in slight variations in final size.


If you're converting a large number of files, you could use GNU parallel in combination with imagemagick to perform multiple jobs simultaneously.

parallel -j 8 convert {} {.}.png ::: *.tiff

...will convert every img.tiff in a directory to an img.png, performing 8 jobs at a time. If you ditch the -j 8, parallel will default to one job per CPU core.

To convert recursively, combine find with parallel:

find . -type f -name "*.tiff" | parallel -j 8 convert {} {.}.png

ImageMagick is an excellent free piece of software that is able to do what you ask via the command line. Here is an excerpt from the multithread information.

Using it is as simple as typing convert image.tif image.png but can be used with all kinds of options enabled to suit your needs. Check the documentation for more info on this.

  • Thanks, that may be workable. Is the command-line multithreaded by default or do I need to use an argument switch? – mtone Nov 12 '12 at 17:11
  • multithreaded by default. It will not be doing multiple files at the time, but rather split the tasks within the one file into multiple threads speeding things up. – Henrik Söderlund Nov 12 '12 at 18:42

Writing (i.e., compressing) a single PNG file as multithreaded is possible, but hairy. An open source implementation is https://github.com/anvio/png-parallel, linked from https://stackoverflow.com/questions/10827247/parallelization-of-png-file-creation-with-c-libpng-and-openmp .

If possible, instead compress multiple PNG's, one per thread, as evilsoup suggests.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.