Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dieterwalckiers/subimage-match

Lightweight library that finds matches of an image within another image
https://github.com/dieterwalckiers/subimage-match

Last synced: 15 days ago
JSON representation

Lightweight library that finds matches of an image within another image

Awesome Lists containing this project

README

        

# matches-subimage

Lightweight library that finds matches of an image within another image, perfect for visual validation in testing scenarios.
Heavily inspired by (read: blatantly copied some subroutines from) [pixelmatch](https://github.com/mapbox/pixelmatch), and just like [pixelmatch](https://github.com/mapbox/pixelmatch), its advantages are that it's fast and lightweight, with zero dependencies.

Usage demo:
```js
const foundMatch = subImageMatch(img, subImg);
```

## API

### subImageMatch(img, subImg[, options])

- `img1`, `img2` — Image data of the images to compare (`Buffer`, `Uint8Array` or `Uint8ClampedArray`).
- `options` is an object literal with only one property currently:
- `threshold` — Matching threshold, ranges from `0` to `1`. Smaller values make the comparison more sensitive. `0.1` by default.

Returns a boolean indicating whether or not a match has been found

## Example usage

### Node.js

```js
const fs = require("fs");
const PNG = require("pngjs").PNG;
const subImageMatch = require("matches-subimage");

const img = PNG.sync.read(fs.readFileSync("image.png"));
const subImg = PNG.sync.read(fs.readFileSync("sub_image.png"));
subImageMatch(img1, img2, {threshold: 0.1});
```

## Install

Install with NPM:

```bash
npm install matches-subimage
```

## [Changelog](https://github.com/dieterwalckiers/subimage-match/releases)