Go package for fast high-level image processing using libvips C bindings.
bimg is a Go package for high-performance image processing that leverages the libvips C library. It provides a simple programmatic API for common operations like resizing, cropping, rotating, and format conversion, designed to be efficient with a low memory footprint. It is typically 4-8x faster than alternatives like ImageMagick, GraphicsMagick, or Go's native image package.
Go developers building applications that require fast, efficient image processing at scale, such as web services handling thousands of images daily. It is also suitable for projects needing high-level image operations with support for multiple formats including JPEG, PNG, WEBP, TIFF, PDF, GIF, SVG, and AVIF.
Developers choose bimg for its exceptional speed and low memory usage, backed by the libvips library, making it ideal for production environments. Its simple API abstracts complex C bindings while offering a comprehensive set of image operations, format conversions, and effects like watermarking and Gaussian blur.
Go package for fast high-level image processing powered by libvips C library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages libvips for typically 4-8x faster processing than ImageMagick or Go's native image package, as shown in benchmark tests for operations like resize and convert.
Designed for efficiency with minimal resource usage, making it suitable for production environments handling thousands of images daily, as emphasized in the README.
Can read JPEG, PNG, WEBP, TIFF, PDF, GIF, SVG, and AVIF (with libvips 8.9+), providing flexibility for diverse image sources despite output limitations.
Offers a simple Go interface for high-level operations like resize, crop, and watermark, abstracting complex C bindings with examples for common tasks.
Requires libvips and a C compiler, complicating installation and deployment compared to pure Go packages, and the deprecated install script adds uncertainty.
Only supports JPEG, PNG, and WEBP for output, which may not meet needs for formats like GIF animations or TIFF with layers, as admitted in the README's format list.
Operations like smart crop or trim depend on specific libvips versions (e.g., 8.5+ or 8.6+), leading to potential compatibility issues and fragmented support.
The v1 release introduced breaking changes, and the deprecated installation script indicates ongoing maintenance challenges that could affect long-term reliability.