npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@nodebug/gifencoder

v1.2.3

Published

add images to a gif and return buffer, save to file

Readme

GifEncoder

add images to a gif and return buffer, save to file

Overview

This is a Node.js module for creating GIF animations by combining multiple images. It provides a simple API to add images to a GIF and save the result either to a file or return it as a buffer.

Installation

npm install @nodebug/gifencoder

Usage

// ES Module import (this package uses ES Modules)
import Gif from '@nodebug/gifencoder'

// Create a new GIF with 320x240 dimensions
const gif = new Gif(320, 240)

// Add images to the GIF
await gif.addImage('image1.png')
await gif.addImage('image2.png')

// Save to file or get buffer
await gif.save('output.gif') // Saves to file
// or
const buffer = await gif.save() // Returns buffer

API Reference

Main Class: Gif

Constructor

new Gif(width, height)

Creates a new GIF encoder with specified dimensions.

Parameters:

  • width (number): Width of the GIF canvas
  • height (number): Height of the GIF canvas

Properties:

  • width: Getter for the GIF width
  • height: Getter for the GIF height

Methods

addImage(path)

Adds an image from a file path to the GIF.

Parameters:

  • path (string): File path to the image

Returns:

  • Promise that resolves when the image is added
addBuffer(data)

Adds an image from a base64 encoded buffer to the GIF.

Parameters:

  • data (string): Base64 encoded image data

Returns:

  • Promise that resolves when the image is added
addImages(paths)

Adds multiple images from file paths to the GIF.

Parameters:

  • paths (array): Array of file paths to images

Returns:

  • Promise that resolves when all images are added
save(path)

Finalizes the GIF and saves it to a file or returns it as a buffer.

Parameters:

  • path (string, optional): File path to save the GIF. If not provided, returns buffer.

Returns:

  • Promise that resolves with the buffer data (if no path provided) or resolves when file is written

Configuration

The GIF encoder is configured with:

  • Repeat: 0 (infinite loop)
  • Delay: 1000ms between frames
  • Quality: 10 (lower is better quality)

Dependencies

This project uses:

  • gifenc: For GIF encoding functionality
  • sharp: For image processing and resizing

Requirements

  • Node.js >= 24

Development

This project uses:

  • Jest: For unit testing
  • ESLint: For code quality
  • Prettier: For code formatting
  • Husky: For Git hooks
  • Lint-staged: For pre-commit linting

To run tests:

npm test

To lint:

npm run lint

License

This project is licensed under the MPL-2.0 license.