30 open-source projects similar to mapbox/pixelmatch, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Pixelmatch alternative.
Resemble.js is a JavaScript image comparison library and pixel-based visual regression tool. It functions as an image analysis engine that calculates the percentage of visual difference between two images and generates a diff image to highlight mismatched areas. The library utilizes a canvas-based approach to identify differences, providing capabilities for automated image comparison and UI component validation. It includes specialized filtering to reduce false positives by ignoring visual noise such as antialiasing and specific colors. The toolset covers image dimension normalization, analy
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
Resemble.js is an image comparison framework and visual difference engine designed for automated regression testing. It functions as a library to normalize image dimensions and analyze visual discrepancies to determine if two images are identical. The system identifies pixel-level changes between images while providing capabilities for bounding-box isolation and the exclusion of specific regions. It calculates a percentage of difference by measuring the numerical distance between RGBA color channel values. The library covers visual regression testing and frontend quality assurance by compari
Guetzli is a lossy image compression tool and perceptual JPEG encoder. It converts PNG or JPEG inputs into high-density JPEG files, reducing file size by removing data that the human eye cannot easily detect. The tool utilizes human vision models to optimize the balance between file size and visual fidelity. It employs perceptual quality metrics and psychovisual similarity estimation to maintain high visual quality while maximizing compression density. The project includes a visual difference analyzer capable of generating spatial difference heatmaps and calculating scalar similarity scores.
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
jest-image-snapshot is a Node.js image testing library and visual comparison engine designed for visual regression testing within Jest. It provides a custom matcher to compare current images against baseline snapshots to identify pixel differences. The tool generates image diffs that highlight specific divergences between baseline and received snapshots. It includes mechanisms to update baseline images when changes are approved and allows for sensitivity tuning via pixel count, percentage thresholds, or blur to ignore noise. The library covers image snapshot management, including custom stor
diff-pdf is a visual comparison tool for PDF files that identifies differences between two documents. It functions as both a command line utility for verifying if documents are visually identical and a visualizer for pinpointing specific changes. The project provides a graphical interface for manual inspection, featuring zoom and offset controls to analyze visual shifts. It also generates difference maps that visually highlight the specific areas where two PDF documents differ. The tool supports automated regression testing by returning status codes to indicate whether pixel-level discrepanc
Caire is a command-line image processing engine designed for content-aware resizing and batch manipulation. It utilizes seam carving algorithms to adjust image dimensions by identifying and removing low-energy pixels, allowing for the rescaling of images while preserving primary visual subjects and maintaining aspect ratios. The tool distinguishes itself through its ability to protect specific visual elements, such as human faces, from distortion during the resizing process. Users can apply custom binary masks to define regions for protection or forced removal, and the engine provides real-ti
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
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
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.
FXBlurView is an iOS blur effect library and image processing tool designed to render Gaussian blur effects over application views and static images. It provides a UIKit background blur view component that can be applied to UI elements to create blurred backgrounds. The library supports both real-time blurring of live application views and the processing of static images. It offers two primary rendering modes: a single-pass static rendering for efficiency and a dynamic background-thread processing mode to maintain user interface responsiveness during heavy computations. Additional capabiliti
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
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
Pillow is a Python image processing library and digital image manipulation toolkit used for opening, manipulating, and saving various image file formats. It serves as a multi-format image codec wrapper that enables the reading and writing of diverse standards such as JPEG, PNG, TIFF, and BMP. The library provides tools for programmatic image manipulation, including resizing, cropping, rotating, and transforming visual content through direct pixel data modification. It supports pixel data analysis to extract and modify raw information for custom visual processing and data transformations. The
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,
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
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
Bild is an image processing library implemented in the Go programming language. It provides a collection of algorithmic engines for image manipulation, including a convolution kernel engine for filtering, an image blending tool for layer composition, and a procedural noise generator for creating synthetic textures. The project is distinguished by its procedural generation capabilities, implementing Perlin, Gaussian, binary, and uniform noise algorithms to produce random pixel distributions and organic patterns. It also features a command-line interface that allows users to apply visual effect
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
Freeze is a code-to-image generator and terminal output renderer that converts source code and ANSI terminal text into high-quality images. It functions as a command-line tool that transforms text and styled sequences into scalable vector graphics for use in documentation and presentations. The tool differentiates itself by capturing raw output from shell commands via a pseudo-terminal environment and translating ANSI escape codes and colors directly into SVG styles. It features a terminal user interface for real-time parameter adjustment and supports configuration profiles to maintain consis
Aseprite is a specialized graphics editor and animation suite designed for the creation of pixel-based artwork. It provides a comprehensive environment for managing multi-layered animation sequences, offering tools for frame-by-frame design, onion skinning, and real-time motion previews. The application is built to handle both indexed color palettes and full-color RGB editing, allowing users to maintain precise control over pixel data and transparency. What distinguishes Aseprite is its focus on programmable workflows and game asset production. It features a scriptable command architecture th
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
Huxley is a visual regression testing tool and browser automation framework designed to detect pixel-level interface changes. It functions as an automated browser screenshotter that records user interactions and replays them to verify that web interfaces remain visually consistent across updates. The system generates visual diffs by comparing current screenshots against stored baseline images to highlight specific pixels that have changed. It includes mechanisms to manage these baselines, allowing users to update reference screenshots when interface changes are intentional. The framework cov
This project is an automated testing framework designed to capture and verify the visual state of Android interface components. It provides a system for generating deterministic snapshots of UI elements, allowing developers to establish baselines for layout consistency and detect unintended visual regressions across different software versions and hardware configurations. The framework distinguishes itself by enabling isolated component rendering, which allows individual views to be tested without requiring a full application build. It ensures consistency by controlling the rendering lifecycl
BackstopJS is an automated screenshot testing framework and visual regression testing tool designed to identify pixel-level discrepancies between different versions of a web application. It functions as a browser automation testing suite that captures visual snapshots of a user interface and compares them against stored reference images to detect unintended changes. The project utilizes a containerized testing environment via Docker to ensure consistent browser rendering and prevent cross-platform visual discrepancies. It includes a web UI diffing interface that allows users to analyze visual
Nightwatch is a Node.js test automation tool and W3C WebDriver test framework designed for executing functional test suites and verifying system behavior. It provides a suite of utilities for web browser automation, native mobile application testing, and REST API validation. The project includes specialized tools for visual regression testing, which compares current screenshots against baseline images to detect unexpected changes. It also features an accessibility auditing tool to check user interface elements against established standards for compliance. The framework covers a broad range o
This is a snapshot testing framework for Swift that records and compares reference images or data representations to detect regressions in application state. It functions as a visual regression testing tool and a data snapshotting library, converting complex types into stable formats to verify internal state and object properties. The framework utilizes a multi-format snapshot strategy, allowing values to be represented as images, strings, or data blobs. It includes a mechanism for defining custom snapshot strategies to convert specific data types into comparable formats based on custom logic
Robotjs is a native Node.js automation library and desktop input simulator. It uses C++ bindings to provide low-level access to operating system functions, allowing for the programmatic control of the mouse and keyboard and the analysis of screen pixels. The library functions as a toolkit for automating user interfaces and desktop workflows, including those within Electron applications. It enables the simulation of key presses and mouse movements to automate interactions with desktop software and perform automated data entry. Its capabilities extend to screen pixel analysis, where it capture
This project is a Python-based game automation bot and computer vision assistant designed to automate gameplay on Android devices. It functions as a controller that identifies game elements via pixel color scanning and simulates touch inputs to execute gameplay without manual intervention. The system distinguishes itself through the use of anti-detection measures, implementing interaction coordinate management and timing offsets to avoid being flagged by security systems. It also employs resolution-dependent scaling coefficients to maintain jump accuracy across different device screen sizes.