Какую библиотеку следует использовать для обработки изображений на стороне сервера на узле.Джей? [закрытый]


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

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

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

3 111

3 ответа:

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

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

узел-холст

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

gm

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

node-imagemagick

  • в официальном РЕПО очень мало базовых команд ImageMagick, но я использовал эта вилка (хорошо, что NPM может извлекать библиотеки непосредственно из репозиториев git). Он имеет привязки для montage что делает именно то, что мне нужно.
  • ImageMagick довольно медленно, хотя она работает на Окна.

Node-Vips

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

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

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

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

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