แคนวาส-gif
npm i canvas-gif
canvas-gif คืออะไร
canvas-gif เป็นไลบรารี NPM ที่ให้คุณจัดการเฟรมของ GIF โดยใช้ node-canvas
canvas-gif เลิกใช้แล้ว ฉันไม่ค่อยได้ใช้ Node.js นับประสาอะไรกับที่ฉันใช้กับแพ็คเกจแบบนี้ หากคุณสนใจที่จะรับช่วงต่อการพัฒนา อย่าลังเลที่จะแยกมันและเผยแพร่ด้วยตัวคุณเอง เวลาของฉันกับห้องสมุดแห่งนี้ต้องหยุดชะงักลง
มันทำงานอย่างไร?
มันทำงานโดยทำตามคำแนะนำเหล่านี้:
- อ่าน GIF อินพุตเป็นบัฟเฟอร์ (ทางเลือก: รวม GIF หากเปิดใช้งานตัวเลือกและมีกราฟิคเมจิก)
- ถอดรหัส GIF เป็น UInt8Array
- สำหรับแต่ละเฟรมใน GIF ให้สร้างอินสแตนซ์แคนวาส
- แปลง UInt8Array ให้เป็นข้อมูลภาพแคนวาสและใส่ลงในบริบท
- ส่งต่อบริบทและข้อมูลอื่นๆ ที่เกี่ยวข้องไปยังฟังก์ชัน editFrame ที่ผู้ใช้กำหนด ซึ่งจะดำเนินการจัดการบริบทต่อไป
- เพิ่มบริบทของเฟรมที่แก้ไขใหม่ลงในตัวเข้ารหัส
- ส่งออกข้อมูลของตัวเข้ารหัสเป็นบัฟเฟอร์แล้วส่งคืน
ฉันจะใช้มันได้อย่างไร?
คุณสามารถดาวน์โหลดได้โดยใช้ npm โดยเรียกใช้
จากนั้นคุณสามารถใช้มันในโค้ดของคุณต่อไปได้ สำหรับตัวอย่างวิธีการ โปรดดูที่โฟลเดอร์ตัวอย่าง
ตัวเลือก
ตัวเลือกทั้งหมดเหล่านี้เป็นทางเลือก! ว้าว
- Coalesce - ไม่ว่า GIF ควรถูกรวมเข้าด้วยกันโดย GraphicsMagick ก่อนที่จะถูกประมวลผลโดยเอ็นจิ้นหรือไม่ จำเป็นต้องติดตั้ง GraphicsMagick - หากไม่ใช่และตัวเลือกเป็นจริงและข้อผิดพลาดจะเกิดขึ้นและโค้ดจะดำเนินต่อไปด้วยบัฟเฟอร์ไฟล์ต้นฉบับ ค่าเริ่มต้นเป็น เท็จ
- ความล่าช้า - จำนวนความล่าช้าระหว่างแต่ละเฟรมในหน่วยมิลลิวินาที ค่าเริ่มต้นเป็น 0
- ทำซ้ำ - GIF ควรทำซ้ำกี่ครั้ง หากค่าเป็น 0 มันจะทำซ้ำตลอดไป ค่าเริ่มต้นเป็น 0
- อัลกอริทึม - อัลกอริทึมที่ตัวเข้ารหัสควรใช้ สามารถเป็นหนึ่งใน neuquant และ octree ได้ ค่าเริ่มต้นเป็นค่า ที่ไม่สมดุล
- เครื่องมือเพิ่มประสิทธิภาพ - ไม่ว่าตัวเข้ารหัสควรใช้เครื่องมือเพิ่มประสิทธิภาพในตัวหรือไม่ ค่าเริ่มต้นเป็น เท็จ
- fps - จำนวนเฟรมที่จะเรนเดอร์ต่อวินาที ค่าเริ่มต้นคือ 60
- คุณภาพ - คุณภาพของ GIF ค่าระหว่าง 1-100 ยิ่งตัวเลขสูง คุณภาพ GIF ก็จะยิ่งดีขึ้น ค่าเริ่มต้นคือ 100
ข้อผิดพลาดทั่วไป
มีข้อผิดพลาดระหว่างการรวม: สตรีมให้บัฟเฟอร์ว่าง กำลังเปลี่ยนบัฟเฟอร์กลับเป็นบัฟเฟอร์ไฟล์!
ข้อผิดพลาดนี้เกิดขึ้นหากมีการเปิดใช้งานตัวเลือกการรวม แต่คุณไม่มี GraphicsMagick โปรดติดตั้งจากที่นี่ และหากข้อผิดพลาดยังคงอยู่ โปรดรายงานว่าเป็นปัญหาและเราจะพยายามอย่างเต็มที่เพื่อช่วย!
โครงการนี้ใช้ใบอนุญาตแปลก ๆ v1.1 - tl; dr ดูที่นี่ :]
สิ่งที่ต้องทำ
- ตัวส่งกลับเพื่อการจัดการเหตุการณ์ที่ง่ายดาย