我正在开发一个使用 ImageMagick 处理图像处理的 Web 脚本。它采用相关参数,根据操作系统在命令行或 shell 执行 ImageMagick 命令,并将原始图像数据传回脚本。网络脚本的语言显然是不相关的。
简单的用例包括:
convert -resize 750 H:/221136.png -
将输入图像的大小调整为 750 宽度并将原始数据输出到控制台。更复杂的用例涉及旋转、调整大小、裁剪/平移和绘图。
该脚本运行良好,并且对于 PNG、GIF 和 JPEG 输入非常快,即使在相当大的情况下(4000x5000 分辨率)也是如此。不幸的是,我的输入数据还包括 JPEG-2000。ImageMagick 处理一个 10-15 兆字节的 JPEG2000 需要非常多的时间,大约需要 10-15 秒。它不适合现场直播转换。
我知道将 JPEG-2000 快速转换为 JPEG 以用于 Web 输出是可能的,因为我使用的一个企业软件可以快速转换。我不确定他们使用哪个库——他们使用的 DLL/so 是 DL80JP2KLib.dll/.so。查了一下,似乎是一家名为 DataLogic 的公司制作了这个,但他们的网站上似乎没有任何明显相关的程序。
理想情况下,我正在寻找一种解决方案(插件?),它可以让 ImageMagick 像使用 PNG、GIF 或 JPEG 一样即时转换这些高分辨率 JPEG-2000 图像......或者单独的命令我可以在 ImageMagick 之前运行以将 JPEG-2000 转换为 ImageMagick 可以快速处理的中间格式的实用程序。
将运行此脚本的服务器具有 32 GB 的 RAM 和强大的处理器。假设转换速度比资源使用效率更重要。还假设虽然我需要一些表面上的质量,但图像丢失并不是一件紧迫的事情。许可要求和/或价格并不重要,只是在购买之前我需要能够自己测试几个示例文件的速度。理想的解决方案也(相对)独立于操作系统
我尝试了来自 Kakadu Software 的应用程序,它相当快,大约 3-4 秒,但这仍然不够快。如果不可能低于,比如说一秒钟,我会提前看一下批量转换文件。
我已将代表文件(JPEG-2000,~8MB)上传到 MediaFire: http ://www.mediafire.com/?yxv0j6vdwx0k996