ImageMagick使用流命令附加大文件

时间:2018-07-07 17:01:38

标签: image-processing imagemagick

我们需要使用ImageMagick垂直附加两个非常大的TIF文件,但是由于我们试图在AWS Lambda上执行此操作,因此内存和磁盘资源非常有限。

我们目前在这里使用非常简单的方法...

magick convert image1.tif image2.tif -append result.tif

这可行,但是由于每个图像的大小,内存和磁盘消耗太高,我们遇到了资源问题。

ImageMagick有一个“流”命令(https://www.imagemagick.org/script/stream.php),但我找不到任何示例说明如何将其用于尝试做的事情。

我们尝试了其他方法,例如-limit选项,但是仍然遇到问题。如果可能的话,我试图确定如何使用“ stream”命令来完成此操作。我已经看到此用例建议使用“ stream”,但没有示例。

任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:1)

我不是要进行测试的机器,但是我怀疑您可以使用vips使用更少的内存和更少的时间来实现。

我认为您希望在命令行中使用它:

vips join input1.tif input2.tif result.tif vertical

添加最终参数--vips-leak来检查已使用的总内存。

join操作在此处记录:

http://libvips.github.io/libvips/API/current/libvips-conversion.html#vips-join

还有节点,PHP,Python,Ruby等绑定。


我创建了两个10,000x10,000像素的TIF文件,并对ImageMagick和vips进行了相同的追加操作:

ImageMagick: 11 seconds and 4.86GB memory used
vips:         4 seconds and 157 MB memory used