Я работаю над веб-скриптом, который обрабатывает изображения с помощью ImageMagick. Он принимает соответствующие параметры, выполняет команду ImageMagick в командной строке или оболочке в зависимости от ОС и передает необработанные данные изображения обратно в сценарий. Язык веб-скрипта явно не подходит.
Простые варианты использования включают: convert -resize 750 H:/221136.png -
, который просто изменяет размер входного изображения до ширины 750 и выводит необработанные данные на консоль. Более сложные варианты использования включают поворот, изменение размера, обрезку / панорамирование и рисование.
Скрипт отлично работает и довольно быстро работает с входными данными PNG, GIF и JPEG даже при довольно больших размерах (разрешение 4000x5000). К сожалению, мои входные данные также включают JPEG-2000. Обработка 10–15-мегабайтного JPEG2000 занимает безумное количество времени, порядка 10–15 секунд. Он не подходит для преобразования "на лету".
Я знаю, что быстрое преобразование JPEG-2000 в JPEG для вывода в Интернет возможно, потому что часть программного обеспечения Enterprise, с которым я работаю, делает это довольно быстро. Я не уверен, какую библиотеку они используют - DLL / поэтому они используют DL80JP2KLib.dll / .so. Глядя на это, кажется, что это делает компания под названием DataLogic, но у них, похоже, нет никаких явно подходящих программ на их сайтах.
В идеале я ищу решение (плагин?), Которое позволило бы ImageMagick конвертировать эти изображения JPEG-2000 с высоким разрешением на лету, как это происходит с PNG, GIF или JPEG ... или отдельной командой утилиту, которую я могу запустить до ImageMagick, чтобы преобразовать JPEG-2000 в промежуточный формат, который ImageMagick может быстро обработать.
Серверы, на которых будет запускаться этот скрипт, имеют 32 гигабайта оперативной памяти и мощные процессоры. Предположим, что скорость преобразования важнее эффективности использования ресурсов. Предположим также, что, хотя мне нужно некоторое подобие качества, потеря изображения не является актуальной проблемой. Лицензионные требования и / или цена не важны, за исключением того, что мне нужно самому протестировать его на скорость на нескольких образцах файлов, прежде чем мы купим. Идеальное решение также (относительно) не зависит от ОС.
Я попробовал приложение от Kakadu Software, оно довольно быстрое, порядка 3-4 секунд, но этого все еще недостаточно. Если нет возможности получить ниже, скажем, одну секунду, я заранее посмотрю на пакетное преобразование файлов.
Я загрузил в MediaFire типичный файл (JPEG-2000, ~ 8 МБ): http://www.mediafire.com/?yxv0j6vdwx0k996