ฉันควรใช้ไลบรารีใดสำหรับการจัดการอิมเมจฝั่งเซิร์ฟเวอร์บน Node.JS [ปิด]


117

ฉันพบรายการไลบรารีที่มีอยู่ค่อนข้างมากใน Node.JS wiki แต่ฉันไม่แน่ใจว่าอันไหนเป็นผู้ใหญ่มากกว่าและให้ประสิทธิภาพที่ดีกว่า โดยทั่วไปฉันต้องการทำสิ่งต่อไปนี้:

  1. โหลดภาพบางภาพไปยังเซิร์ฟเวอร์จากแหล่งภายนอก
  2. วางลงบนผืนผ้าใบขนาดใหญ่
  3. ครอบตัดและปิดบังไว้เล็กน้อย
  4. ใช้ตัวกรองหรือสองตัว
  5. ปรับขนาดภาพสุดท้ายและให้ลิงก์ไป

บวกใหญ่ถ้าแพคเกจโหนดทำงานได้ทั้งบน Linux และ Windows


ตอบคำถามแล้วที่นี่: stackoverflow.com/questions/4541332/…
DjebbZ

2
2015: ดูเหมือนว่า Legit: github.com/oliver-moran/jimp
jmunsch

@jm_____ stackoverflow เป็นทั้ง Q&A และ wiki อย่าลังเลที่จะแก้ไขคำตอบเพื่อให้มีคนสังเกตเห็นมากขึ้น
Andrew АндрейЛисточкин

คำตอบ:


184

ตอบคำถามของตัวเอง

ฉันใช้เวลาสองวันในการขุดผ่านไลบรารีกราฟิก Node.js

โหนดผ้าใบ

  • ฉันลองใช้ครั้งแรกเนื่องจากฉันค่อนข้างคุ้นเคยกับ<canvas>API เป็นข้อดีอย่างมากสำหรับห้องสมุด
  • ต้องใช้ไคโรซึ่งไม่มีการดาวน์โหลด Windows ที่ง่าย ฉันพบมันในการกระจาย GTK + แม้ว่า
  • ยิ่งไปกว่านั้นจำเป็นต้องมีการคอมไพล์โค้ดการผูกไลบรารีดั้งเดิมในการติดตั้งโมดูล ใช้ Node-Waf ซึ่งยังไม่ได้ย้ายไปยัง Windows

กรัม

  • เป็นผู้ใหญ่
  • ทำงานบน Windows ได้อย่างราบรื่น
  • เอกสารเป็นokแต่ไม่อย่างละเอียด: ผมมองขึ้นไปรหัสที่มาจะคิดออกว่า API มีให้บริการ
  • น่าเสียดายที่ไม่มีวิธีง่ายๆในการรวมภาพกับ gm อาจมีบางวิธีที่จะบรรลุเป้าหมายนั้นได้ แต่ฉันไม่พบสักสองชั่วโมงหลังจากใช้ไป

โหนด ImageMagick

  • repo อย่างเป็นทางการมีคำสั่ง ImageMagick พื้นฐานเพียงไม่กี่คำที่ครอบคลุม แต่ฉันใช้ส้อมนี้ (สิ่งที่ดีที่ NPM สามารถดึงไลบรารีได้โดยตรงจากที่เก็บ git) มันมีการผูกmontageที่ทำในสิ่งที่ฉันต้องการ
  • ImageMagick ค่อนข้างช้าแม้ว่าจะทำงานบน Windows

โหนดวีไอพี

  • ข้อดีอย่างมาก: มันใช้ไลบรารี VIPS ที่น่าทึ่งซึ่งฉันคุ้นเคย VIPS เร็วมากและเหมาะสำหรับภาพขนาดใหญ่ ฉลาดมากในการใช้ทรัพยากรฮาร์ดแวร์: หากเครื่องของคุณมี RAM มากเครื่องจะประมวลผลทั้งหมดในหน่วยความจำ แต่จะเปลี่ยนไปใช้แคชฮาร์ดไดรฟ์หากหน่วยความจำขาดแคลนหรือจำเป็นสำหรับแอปพลิเคชันอื่น ๆ
  • เช่นเดียวกับ node-canvas ต้องใช้ Node-Waf ดังนั้นจึงยังไม่พร้อมใช้งานสำหรับ Windows

ฉันดูห้องสมุดอื่น ๆ จากรายการด้วย แต่ส่วนใหญ่ยังไม่บรรลุนิติภาวะหรือไม่เหมาะกับกรณีการใช้งานของฉัน ฉันอยากจะลองย้ายไปที่ Node-Canvas หรือ Node-Vips จริงๆเมื่อ Node-Waf ถูกย้ายไปยัง Windows แต่จนถึงตอนนั้นฉันจะใช้ node-imagemagick


44
ขอบคุณที่กลับมาตอบคำถามของตัวเอง เขียนได้ดีมาก!
mpen

ใน Windows gm ดูเหมือนจะช้าไปหน่อยสำหรับฉัน - แม้ว่าฉันคิดว่านี่เป็นส่วนหนึ่งของระยะเวลาที่ใช้ในการวางไข่อินสแตนซ์ของโปรแกรม gm
Gareth Oakley

11
เวลาเปลี่ยนไปและ NODE-Vips มี 1 ปี + ไม่มีการอัปเดต ฉันแนะนำให้เพิ่มSharpเข้าไปในรายการแทน นอกจากนี้ยังใช้ VIPS และได้รับการบำรุงรักษา: github.com/lovell/sharp
Simon Fakir

5
สำหรับผู้ที่ก้าวเข้าสู่คำถามนี้ในทุกวันนี้LWIPเป็นอีกทางเลือกหนึ่งที่ดี ไม่มีการอ้างอิงภายนอก แต่ต้องอาศัย addon C ++ ของ node.js
MaxArt

1
github.com/lovell/sharpซึ่งเป็นโหนดอื่นที่เชื่อมโยงกับ libvips ทำงานบน Windows ได้แล้ว
jcupitt

6

เราขอแนะนำให้คุณตรวจสอบgmด้วย GraphicsMagick มีเสถียรภาพคุณลักษณะที่สมบูรณ์ API ที่สะอาดเอกสารที่ยอดเยี่ยมและรวดเร็ว

และใช้งานได้ทั้งบน Windows และ Linux / MacOS / BSD / ...


3

เธอคือลิงก์ไปยังการใช้งานแคนวาสตาม GDI +


1
ฉันไม่สามารถทำให้สิ่งนี้ทำงานได้เลย ฉันเพิ่งได้รับ "% 1 ไม่ใช่แอปพลิเคชัน Win32 ที่ถูกต้อง" ทันทีที่ฉันต้องการ
mpen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.