Какую библиотеку следует использовать для обработки изображений на стороне сервера на узле.Джей? [закрытый]
Я нашел довольно большой список доступных библиотек на узел.JS wiki, но я не уверен, какие из них более зрелые и обеспечивают лучшую производительность. В основном я хочу сделать следующее:
- загрузите некоторые изображения на сервер из внешних источников
- поставить их на один большой холст
- обрезать и замаскировать их немного
- применить фильтр или два
- изменить размер конечного изображения и дать ссылку на это
большой плюс, если пакет узла работает на обоих Linux и Windows.
3 ответа:
отвечая на мой собственный вопрос
Я провел два дня, копаясь в узле.графические библиотеки js.
- я попробовал сначала, так как я хорошо знаком с
<canvas>
API. Это огромный плюс для библиотеки.- для этого требуется Каир, который не имеет легкой загрузки Windows. Однако я нашел его в дистрибутиве GTK+.
- кроме того, он нуждается в привязке родной библиотеки код для компиляции при установке модуля. Он использует Node-Waf, который еще не портирован в Windows.
- зрелые
- работает на ОС Windows.
- документы ОК но не досконально: мне пришлось заглянуть в исходный код, чтобы выяснить, какой API доступен
- к сожалению, нет простого способа объединить изображения с gm. Может быть, есть какой-то способ достичь но я не нашел его после двух часов, проведенных с ним.
- в официальном РЕПО очень мало базовых команд ImageMagick, но я использовал эта вилка (хорошо, что NPM может извлекать библиотеки непосредственно из репозиториев git). Он имеет привязки для
montage
что делает именно то, что мне нужно.- ImageMagick довольно медленно, хотя она работает на Окна.
- огромный плюс: он использует невероятное VIP библиотека С которым я знаком. VIPS очень быстрый и оптимизирован для больших изображений. Это очень разумно использовать аппаратные ресурсы: если ваша машина имеет много оперативной памяти, она будет выполнять всю обработку в памяти, но переключится на Кеши жесткого диска, если память недостаточна или требуется для других приложений.
- так же, как узел-холст для этого требуется Node-Waf, поэтому он пока недоступен для Windows.
Я также посмотрел на другие библиотеки из списка, но большинство из них либо очень незрелые, либо не подходят для моего случая использования. Я бы очень хотел попробовать перейти на Node-Canvas или Node-Vips, когда Node-Waf переносится в Windows, но до тех пор я буду придерживаться node-imagemagick.
Я бы настоятельно советовал вам проверить gm С GraphicsMagick. Стабильный, многофункциональный, чистый API, отличные документы и быстро.
и он работает как на Windows, так и на Linux / MacOS / BSD/...
Ее ссылке для реализации холста на основе GDI+