
Tenho um servidor Node.js (irrelevante) que faz manipulação de imagens com ImageMagick. Basicamente, posso POSTAR uma imagem no servidor e ele responderá com a imagem transformada.
No momento, estou apenas gravando a imagem POST em um arquivo e iniciando o ImageMagick como um processo filho que grava a imagem transformada em um novo arquivo e então envio esse novo arquivo para o POSTer. Eu gostaria de evitar gravar no disco para acelerar as coisas. Este processo do ImageMagick pode aceitar entrada de streaming e fornecer um fluxo como saída?
Por exemplo, este é um dos comandos mais complicados que uso atualmente:
/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'
Isso depende de /Users/shawn/Work/vigour-img/originals/7ajy06
e /Users/shawn/Work/vigour-img/images/avatarMask.png
existe no disco e grava o resultado em /Users/shawn/Work/vigour-img/out/1bl6jm9.png
.
Se, em vez disso, eu pudesse transmitir os arquivos de entrada e obter o resultado como um fluxo, não haveria necessidade de gravar no disco, melhorando muito o desempenho (eu acho).