1

У меня есть сервер 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 .

Если бы вместо этого я мог транслировать входные файлы и получать результат в виде потока, не было бы необходимости записывать на диск, что значительно улучшало производительность (я думаю).

1 ответ1

0

Есть https://www.npmjs.com/package/imagemagick-stream, который предлагает Node.js Stream интерфейсы для imagemagick.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .