it-swarm.com.ru

Какую библиотеку я должен использовать для работы с изображениями на стороне сервера в Node.JS?

Я нашел довольно большой список доступных библиотек на вики Node.JS, но я не уверен, какие из них являются более зрелыми и обеспечивают более высокую производительность. В основном я хочу сделать следующее:

  1. загрузить некоторые изображения на сервер из внешних источников
  2. положить их на один большой холст
  3. обрезать и замаскировать их немного
  4. применить фильтр или два
  5. Изменить размер окончательного изображения и дать ссылку на него

Большой плюс, если пакет узла работает как в Linux , так и в Windows .

Отвечая на мой вопрос

Я провел два дня, копаясь в графических библиотеках Node.js.

узел-холст

  • Я попробовал это сначала, так как я хорошо знаком с API <canvas>. Это огромный плюс для библиотеки.
  • это требует Каира, который не имеет легкой загрузки Windows. Я нашел это в распределении GTK + все же.
  • более того, он требует компиляции собственного кода библиотеки при установке модуля. Он использует Node-Waf, который еще не был перенесен на Windows.

г

  • зрелый
  • работает на Windows гладко
  • документы в порядке , но не исчерпывающие: мне пришлось искать исходный код, чтобы выяснить, какой API доступен
  • к сожалению, нет простого способа объединить изображения с GM. Может быть, есть какой-то способ достичь этого, но я не нашел один после двух часов, проведенных с ним.

узел-ImageMagick

  • В официальном репозитории очень мало базовых команд ImageMagick, но я использовал этот форк (хорошо, что NPM может извлекать библиотеки напрямую из репозиториев git). У него есть привязки для montage, который делает именно то, что мне нужно.
  • ImageMagick довольно медленный , хотя он работает на Windows.

Узел-Випс

  • Огромный плюс: он использует невероятное библиотека VIPS , с которым я знаком. VIPS очень быстр и оптимизирован для больших изображений. Он очень умен в использовании аппаратных ресурсов: если у вашей машины много RAM, она будет выполнять всю обработку в памяти, но переключится на кеши жесткого диска, если памяти мало или требуется для других приложений.
  • так же, как node-canvas, требуется Node-Waf, поэтому он пока недоступен для Windows.

Я также посмотрел на другие библиотеки из списка, но большинство из них либо очень незрелые, либо не соответствуют моему сценарию использования Я действительно хотел бы попробовать перейти на Node-Canvas или Node-Vips, когда Node-Waf будет портирован на Windows, но до тех пор я буду придерживаться node-imagemagick.

Я настоятельно рекомендую вам проверить gm с GraphicsMagick. Стабильный, многофункциональный, чистый API, отличные документы и быстрый.

И это работает как на Windows, так и на Linux/MacOS/BSD/...

6
Pierre

Ее является ссылка для реализации холста на основе GDI +

3
pastorgluk