
ImageMagick を使用して画像操作を行う Node.js サーバー (無関係) があります。基本的に、画像をサーバーに POST すると、変換された画像が返されます。
現在は、POST された画像をファイルに書き込み、ImageMagick を子プロセスとして起動して、変換された画像を新しいファイルに書き込み、その新しいファイルを POSTer に送信しています。処理速度を上げるために、ディスクへの書き込みは避けたいのですが。この ImageMagick プロセスは、ストリーミング入力を受け入れ、ストリームを出力として提供できますか?
たとえば、これは私が現在使用している最も複雑なコマンドの 1 つです。
/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
。
代わりに入力ファイルをストリーミングし、結果をストリームとして取得できれば、ディスクに書き込む必要がなくなり、パフォーマンスが大幅に向上すると思います。