A Node.js wrapper for GraphicsMagick and ImageMagick providing programmatic image processing capabilities.
gm is a Node.js library that wraps GraphicsMagick and ImageMagick command-line tools, allowing developers to programmatically manipulate images from JavaScript. It provides a chainable API for tasks like resizing, cropping, filtering, format conversion, and annotation, eliminating the need to directly invoke shell commands. The library supports streams and buffers for efficient processing in Node.js applications.
Node.js developers who need to perform image processing tasks such as generating thumbnails, applying filters, converting formats, or adding watermarks within their applications. It's particularly useful for web applications handling user-uploaded images or automated graphics pipelines.
gm offers a straightforward, JavaScript-native interface to the powerful GraphicsMagick and ImageMagick utilities, enabling complex image manipulations with minimal code. Its support for streams and buffers integrates well with Node.js's asynchronous nature, making it a go-to choice for server-side image processing without relying on external APIs or services.
GraphicsMagick for node
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers a simple, readable chainable interface for complex image manipulations, as shown in examples like .resize(240,240).noProfile().write().
Integrates seamlessly with Node.js I/O by processing images from streams and buffers, enabling efficient memory usage in web applications.
Provides access to nearly all GraphicsMagick/ImageMagick operations, from basic resizing to advanced compositing and drawing, documented in a long methods list.
Allows direct pass-through of command-line arguments via .in() and .out() methods, giving developers low-level control when needed.
Officially sunset as of February 2025 with no future updates, bug fixes, or security patches, increasing long-term risk for users.
Requires tricky workarounds like {bufferStream: true} for identify operations on streams, which buffers entire images in memory and is poorly documented.
Depends on system-installed GraphicsMagick or ImageMagick, leading to installation headaches and platform-specific inconsistencies not abstracted away.
Relies on decade-old examples and links to broken external docs, with no updates for modern Node.js practices or ES6+ syntax.