我有一个 Node.js 服务器(无关紧要),它使用 ImageMagick 进行图像处理。基本上,我可以将图像发布到服务器,它会以转换后的图像进行响应。
现在我只是将 POST 后的图像写入文件,并启动 ImageMagick 作为子进程,将转换后的图像写入新文件,然后将该新文件发送给 POSTer。为了加快速度,我想避免写入磁盘。这个 ImageMagick 进程可以接受流式输入并给我一个流作为输出吗?
举个例子,这是我现在使用的最复杂的命令之一:
/usr/local/opt/imagemagick/bin/convert \( '/Users/shawn/Work/vigour-img/originals/7ajy06' -resize '150x150^' -gravity 'Center' -crop '150x150+0+0' \) \( '/Users/shawn/Work/vigour-img/images/avatarMask.png' -resize '150x150' -gravity 'Center' \) -compose 'CopyOpacity' -composite '/Users/shawn/Work/vigour-img/out/1bl6jm9.png'
这依赖于磁盘上存在的/Users/shawn/Work/vigour-img/originals/7ajy06
并将/Users/shawn/Work/vigour-img/images/avatarMask.png
结果写入/Users/shawn/Work/vigour-img/out/1bl6jm9.png
。
如果我可以流式传输输入文件并以流的形式获取结果,就无需写入磁盘,从而大大提高性能(我认为)。