Ответ 1
ImageMagick может работать. Для ImageMagick существуют различные Java-обертки, которые представляют собой библиотеку обработки изображений выдающегося качества (и скорости).
JMagick - одна из таких оболочек, есть и другие:
http://sourceforge.net/projects/jmagick/
Тогда некоторые советы людей, использующие ProcessBuilder для непосредственного создания "родных" вызовов, по-видимому, являются лучшими, и меньше риск сбоев (обертки ImageMagick могут быть не такими великолепными с точки зрения производительности и использования памяти).
Если скорость и качество JPEG являются проблемой, вы не можете ошибиться с ImageMagick: вам решать, хотите ли вы использовать оболочку или напрямую вызывать исполняемые файлы ImageMagick из вашей программы Java.
Теперь, конечно, это будет работать, только если запись файла без потерь из вашего приложения (например, файлов PNG) выполняется достаточно быстро.