У меня есть сервер 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
.
Если бы вместо этого я мог транслировать входные файлы и получать результат в виде потока, не было бы необходимости записывать на диск, что значительно улучшало производительность (я думаю).