Яку бібліотеку я повинен використовувати для обробки зображень на стороні сервера на Node.JS? [зачинено]


117

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

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

Великий плюс, якщо пакет вузлів працює і в Linux, і в Windows .


Питання вже відповідав тут: stackoverflow.com/questions/4541332 / ...
DjebbZ

2
2015: це також здається законним: github.com/oliver-moran/jimp
jmunsch

@jm_____ stackoverflow - це і запитання, і вікі. не соромтесь редагувати відповідь, щоб більше людей помічали її.
Андрій Андрей Листочкин

Відповіді:


184

Відповідаючи на власне запитання

Я два дні копав графічні бібліотеки Node.js.

вузол-полотно

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

нім

  • зрілий
  • працює в Windows безперебійно
  • Документи в порядку, але не досконалі: мені довелося шукати вихідний код, щоб зрозуміти, який API доступний
  • на жаль, немає простого способу поєднання зображень із GM. Можливо, є якийсь спосіб досягти цього, але я не знайшов жодного після двох годин, проведених з цим.

вузол-іміджемагік

  • Офіційне репо містить дуже мало основних команд ImageMagick, але я використовував цю вилку (добре, що NPM може перетягувати бібліотеки безпосередньо з репозиторіїв git). Він має прив'язки, для montageяких робить саме те, що мені потрібно.
  • ImageMagick досить повільний , хоча працює і в Windows.

Вузол-віпс

  • Величезний плюс: він використовує неймовірну бібліотеку VIPS, з якою я знайомий. VIPS дуже швидкий і оптимізований для великих зображень. Дуже розумно використовувати апаратні ресурси: якщо на вашій машині багато оперативної пам’яті, вона виконає всю обробку в пам'яті, але перейде до кеш-пам'яті жорсткого диска, якщо пам’яті бракує або потрібно для інших програм.
  • як і вузол-полотно, йому потрібен Node-Waf, тому він ще не доступний для Windows.

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


44
Дякуємо, що повернулися, щоб відповісти на власне запитання. Чудово запишіть!
1313

У Windows gm здався мені трохи повільним, хоча, я думаю, це частково залежить від того, скільки часу знадобилося, щоб нерестувати екземпляри виконуваного файлу GM.
Гарет Оуклі

11
Час змінився, і для NODE-Vips було оновлено 1yr + оновлення. Рекомендую замість цього додати Sharp у список. Він також використовує VIPS і активно підтримується: github.com/lovell/sharp
Simon Fakir

5
Для тих, хто сьогодні переходить до цього питання, LWIP - це ще одна хороша альтернатива. Ніяких зовнішніх залежностей, він покладається на додаток n ++ node.js.
MaxArt

1
github.com/lovell/sharp , інший прив'язок вузла для libvips, зараз працює у Windows.
jcupitt

6

Настійно раджу перевірити gm за допомогою GraphicsMagick. Стабільний, багатофункціональний, чистий API, чудові документи та швидкий доступ.

І він працює як у Windows та Linux / MacOS / BSD / ...


3

Її посилання на реалізацію полотна на основі GDI +


1
Я взагалі не можу змусити цю справу запуститись. Я просто отримую "% 1 не є дійсною програмою Win32", як тільки я цього вимагаю.
1313
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.