Ищете более быструю альтернативу ImageIO

Я пытаюсь кодировать большое количество BufferedImages в JPEG, используя класс ImageWriter в javax.imageio. К сожалению, операция кодирования довольно медленная (от 80 до 250 мс на изображение, не считая записи на диск). Этот этап кодирования становится самой медленной частью моего приложения, поэтому я надеюсь оптимизировать его.

Кто-нибудь знает альтернативу пакету ImageIO, который может быть быстрее?

Ответ 1

ImageMagick может работать. Для ImageMagick существуют различные Java-обертки, которые представляют собой библиотеку обработки изображений выдающегося качества (и скорости).

JMagick - одна из таких оболочек, есть и другие:

http://sourceforge.net/projects/jmagick/

Тогда некоторые советы людей, использующие ProcessBuilder для непосредственного создания "родных" вызовов, по-видимому, являются лучшими, и меньше риск сбоев (обертки ImageMagick могут быть не такими великолепными с точки зрения производительности и использования памяти).

Если скорость и качество JPEG являются проблемой, вы не можете ошибиться с ImageMagick: вам решать, хотите ли вы использовать оболочку или напрямую вызывать исполняемые файлы ImageMagick из вашей программы Java.

Теперь, конечно, это будет работать, только если запись файла без потерь из вашего приложения (например, файлов PNG) выполняется достаточно быстро.

Ответ 2

Вы можете посмотреть JAI. Этот парень, казалось, имел успех с TIFF.