30 open-source projects similar to python-pillow/pillow, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Pillow alternative.
ImageSharp is a .NET image processing library and manipulation framework used for decoding, encoding, and modifying digital images. It functions as a comprehensive toolkit for resizing, cropping, and applying pixel-level filters while managing color profiles and pixel data across various file formats. The project integrates a 2D vector graphics engine and a typography rendering engine to draw geometric shapes, paths, and complex stylized text onto images. It also includes a geometry boolean operation library for calculating intersections, unions, and differences between complex polygons and c
Jimp is a JavaScript image processing library and Node.js manipulation tool designed to perform image transformations and edits entirely within a JavaScript environment. It is a zero-dependency image library that operates without requiring native binaries or external system software dependencies. The project provides a programmatic interface for automated image transformations, including resizing, cropping, and filtering. It supports the creation of custom image pipelines and server-side image editing by processing data without relying on native system tools.
Jimp is a zero-dependency JavaScript image processing library and programmatic editor designed for manipulating, resizing, and filtering images in Node.js. It functions as a multi-format image encoder and extensible pipeline that operates entirely in JavaScript to ensure portable deployment across different environments without requiring native system dependencies. The engine features a modular architecture that allows for custom image processor builds and the registration of custom processing plugins. This extensibility enables the addition of specific visual effects and custom file-type enc
This project is an image processing library designed for manipulating pixel data, applying visual filters, and adjusting image appearance. It functions as a low-level tool for processing raw pixel buffers and managing image data. The library provides a toolkit for image geometry manipulation, including resizing, cropping, flipping, and rotating images. It also serves as an image format converter for encoding and decoding data between common binary file formats and as a metadata extractor for retrieving dimensions and color profiles from file headers. The capabilities cover low-level image pr
Libvips is a C-based image processing library designed to manipulate large visual assets through a low-memory, parallel processing pipeline. It functions as a streaming image processor that avoids loading entire files into system memory, enabling the handling of massive images in resource-constrained environments. The library distinguishes itself through a demand-driven architecture that constructs a deferred execution plan, computing only the necessary pixels for a final output. By utilizing a cache-friendly tiled processing model and memory-mapped file access, it minimizes latency and redun
gm is a JavaScript image processing library and Node.js manipulation tool that serves as a programmatic wrapper for the GraphicsMagick engine. It translates JavaScript method calls into shell commands to automate the resizing, cropping, and transformation of images. The library provides an interface to execute specific GraphicsMagick operations while allowing raw command passthrough for custom arguments or engine features not covered by the standard API. Its capabilities cover geometric manipulation, color and tone adjustment, and image quality optimization. It includes tools for image compo
GPUImage is a GPU-accelerated image processing framework for iOS designed to apply real-time filters and effects to images and video. It functions as a processing engine and fragment shader library that manages textures and shaders for efficient visual data manipulation. The framework utilizes a chainable filter architecture and a texture-based data pipeline to pass image data between processing stages without expensive memory transfers. It enables the creation of bespoke visual effects through the authoring of custom fragment shaders and provides mechanisms to synchronize texture data with e
GoCV is a computer vision library and Go language binding for OpenCV. It serves as an image processing toolkit and deep learning inference engine, providing programmatic access to a wide range of algorithms for image manipulation, object detection, and video analysis. The project differentiates itself through high-performance native bindings and hardware acceleration. It utilizes a foreign function interface to map Go calls to C++ functions and includes a hardware-agnostic backend dispatch to route neural network tasks to computation engines such as CUDA and OpenVINO. The library covers a br
scikit-image is a Python image processing library and scientific image analysis toolkit. It provides a framework for digital image processing and computer vision, utilizing numerical arrays for pixel-level manipulations. The library enables the quantification of image properties and the detection of visual features, such as edges and blobs. It includes tools for image segmentation and the extraction of textures and patterns to characterize objects within visual data. Capabilities cover image manipulation through color space conversion, geometric transformations, and digital restoration. It a
Imagine is an object-oriented PHP image processing library and manipulation framework. It provides a unified interface for performing transformations, cropping, and scaling images across different backend processing engines. The library abstracts multiple underlying image processing drivers through a common adapter-based interface, ensuring consistent API behavior. It utilizes a unified object model to map high-level requests to engine-specific operations and employs a lazy-evaluation transformation queue to defer the execution of filters until the final output is requested. Its capabilities
SDWebImage is an asynchronous image downloader and caching library for iOS and macOS applications. It provides a core identity centered on a network utility for fetching images from URLs, a tiered memory and disk caching engine, and a processing framework for decoding and encoding media. The library features a specialized rendering engine for animated formats such as GIF and WebP, including support for progressive animation rendering. It distinguishes itself through a plugin system that allows for extended image format support and the ability to replace default loading or storage logic with c
imutils is a computer vision utility toolkit and image processing library designed to simplify common manipulation tasks using OpenCV. It serves as an image analysis helper and geometry transformation tool for automating visual data processing. The toolkit provides specialized capabilities for maintaining image integrity during transformations, such as resizing images while preserving aspect ratios and rotating images without cropping corners. It also includes tools for four-point perspective warping to create top-down views and the extraction of topological skeletons from binary images. The
Imaginary is a self-hosted HTTP server for image processing that applies transformations like resizing, cropping, rotating, and format conversion through URL parameters. It operates as a stateless request-response pipeline, processing images fetched from remote URLs or served from a local directory without requiring client-side dependencies. The server distinguishes itself through its security and access control capabilities, offering optional API key validation, HMAC-signed URL verification, and remote origin whitelisting to restrict which image sources are permitted. It also provides a heal
opencv4nodejs is a set of JavaScript wrappers and a C++ native addon that provides Node.js bindings for the OpenCV library. It functions as a computer vision library and image processing framework, exposing high-performance C++ algorithms to a JavaScript environment. The project enables the execution of vision algorithms for detecting faces, tracking objects, and analyzing visual data using deep neural networks. It includes capabilities for data pattern classification, text pattern recognition, and the identification of facial landmarks and gestures. The framework covers a broad capability s
Thumbor is a dynamic image processing service and proxy server that resizes, crops, and filters images on demand via URL parameters. It functions as a URL-based image manipulator that generates specific image versions from source assets to optimize web delivery. The system includes a smart cropping engine that uses facial feature detection and computer vision to automatically center thumbnails on the most relevant visual content. To prevent unauthorized parameter tampering and malicious requests, it employs signature-based request validation and domain-based source whitelisting. Broad capabi
jsQR is a JavaScript library for locating and decoding QR codes directly within a browser or Node.js environment. It functions as a client-side scanner and decoder that extracts text and data from images using pixel arrays, removing the need for server-side processing. The library provides tools for QR code localization to identify the exact coordinates of corners and alignment patterns within a larger image. It uses image pattern recognition to isolate the QR code and extract its encoded content. Its internal operations cover binarization-based thresholding, geometric pattern localization,
CarrierWave is a Ruby file upload library used to manage the uploading, storing, and retrieval of files within web frameworks such as Rails and Sinatra. It functions as an Active Record file manager that associates uploaded assets with database records. The project includes an image processing pipeline for generating thumbnails and derivative versions of uploaded images. It also features a file validation engine to restrict uploads based on allowlists or denylists of extensions and content types, and provides cloud storage integration to manage assets on remote providers. The library covers
Gifski is a high-quality GIF encoding engine designed to convert video files and PNG sequences into high-fidelity animations. It focuses on maintaining visual quality through the use of advanced color palettes and dithering. The engine employs cross-frame palette quantization to ensure visual consistency across animations and uses temporal dithering to simulate higher color depth. It also incorporates lossy compression to manage the resulting file size. The project is available as a C API library for embedding into native software applications and provides a WebAssembly compilation target fo
ImageMagick is a comprehensive software suite for the creation, editing, composition, and conversion of digital images. It functions as both a command-line utility for batch processing and automation, and as a programming library that allows developers to integrate advanced image manipulation capabilities into external applications. The project is distinguished by its modular architecture, which supports hundreds of image formats through a pluggable coder system and external delegate libraries. It is designed for high-performance environments, utilizing memory-mapped pixel caching, stream-ori
Graphite is a node-based visual design environment that integrates vector illustration, raster image processing, and motion graphics generation into a single platform. It utilizes a functional reactive pipeline and a data-flow execution model to propagate state changes through a graph of interconnected nodes, allowing users to construct complex, automated design workflows. The platform distinguishes itself through a context-aware evaluation engine that injects runtime metadata—such as coordinate data and loop indices—directly into the node graph. This enables the creation of procedural geomet
SDWebImage is an asynchronous image loading library for iOS that provides a framework for fetching, decoding, and caching images. It consists of a core loading library, a decoding engine, a processing pipeline, and a caching system designed to reduce network traffic and improve load times. The project features a two-tier caching architecture that stores assets in both volatile memory and persistent disk storage. It distinguishes itself through a modular loader pattern and a plugin-based decoding system, which allow for the integration of custom storage engines and the support of non-standard
pixelmatch is a JavaScript image comparison library and pixel-level difference detector. It identifies mismatched pixels between image data arrays and quantifies the differences based on a configurable sensitivity threshold. The tool generates visual difference maps that highlight specific pixel changes for manual review. It includes a command-line interface for comparing image files and exporting the resulting difference maps to the file system. The project provides capabilities for automated image analysis and visual regression testing, utilizing anti-aliasing heuristic filtering to ignore
Kingfisher is a library for downloading, caching, and displaying remote images in Swift applications. It provides an integrated framework that manages the entire lifecycle of remote assets, from initial network retrieval to final rendering within user interface components. The library distinguishes itself through a two-tiered storage mechanism that balances rapid access via volatile memory with persistent availability through disk caching. It features a modular processing pipeline that allows for dynamic image transformations, such as applying filters or geometric modifications, during the re
Wagtail is an open-source content management system built on the Django web framework. It provides a structured, tree-based approach to content modeling, allowing developers to define custom page types and reusable content components that are managed through a highly customizable administrative interface. The platform distinguishes itself through its flexible, block-based content composition system, which enables editors to assemble complex page layouts dynamically. It also offers robust support for multi-site and multi-lingual environments, allowing organizations to manage distinct websites
Sharp is a high-performance image processing library for Node.js. It serves as a native extension and wrapper for the libvips framework, providing tools for image resizing, format conversion, and programmatic data manipulation. The project enables the transformation of images into web-friendly formats such as WebP and AVIF while preserving color profiles and alpha channels. It also provides capabilities for generating blank image buffers with specified dimensions and background colors. The library covers a broad range of image manipulation utilities, including rotation, extraction, compositi
node-qrcode is a JavaScript library and command-line tool for generating scannable QR codes from text or binary data. It functions as both a generator library for Node.js and web browser environments and a standalone command-line interface. The project supports producing QR codes in multiple formats, including raster images and scalable vector graphics. It can also render barcodes as text representations directly within a terminal for rapid visual verification. The generator includes capabilities for configuring error correction levels and optimizing data density through various encoding mod
This project is a multi-format barcode library designed to encode and decode one-dimensional and two-dimensional barcodes across multiple programming languages. It functions as a cross-platform image processor that analyzes visual data to detect, locate, and extract information from patterns in diverse environments, while also providing a standard for mapping structured data into machine-readable formats. The library distinguishes itself through advanced image processing techniques that ensure reliability in real-world conditions. It employs pattern-matching detectors to identify geometric fi
python binding for libvips using cffi
C++ image processing and machine learning library with using of SIMD: SSE, AVX, AVX-512, AMX for x86/x64, NEON, SVE for ARM, HVX for Hexagon
The ctypes-based simple ImageMagick binding for Python