Skip to content

Commit b6e20df

Browse files
Initial commit with node package and README base
0 parents  commit b6e20df

File tree

4 files changed

+165
-0
lines changed

4 files changed

+165
-0
lines changed

.gitignore

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
8+
# Runtime data
9+
pids
10+
*.pid
11+
*.seed
12+
*.pid.lock
13+
14+
# Directory for instrumented libs generated by jscoverage/JSCover
15+
lib-cov
16+
17+
# Coverage directory used by tools like istanbul
18+
coverage
19+
20+
# nyc test coverage
21+
.nyc_output
22+
23+
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24+
.grunt
25+
26+
# Bower dependency directory (https://bower.io/)
27+
bower_components
28+
29+
# node-waf configuration
30+
.lock-wscript
31+
32+
# Compiled binary addons (http://nodejs.org/api/addons.html)
33+
build/Release
34+
35+
# Dependency directories
36+
node_modules/
37+
jspm_packages/
38+
39+
# Typescript v1 declaration files
40+
typings/
41+
42+
# Optional npm cache directory
43+
.npm
44+
45+
# Optional eslint cache
46+
.eslintcache
47+
48+
# Optional REPL history
49+
.node_repl_history
50+
51+
# Output of 'npm pack'
52+
*.tgz
53+
54+
# Yarn Integrity file
55+
.yarn-integrity
56+
57+
# dotenv environment variables file
58+
.env
59+

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2018 Guilherme Rossato
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
## image-area-diff
2+
3+
A simple and straightforward JavaScript library to compare images conditionally by areas.
4+
5+
Used to detect differences between image areas, not everywhere in the image. Features whitelisting spaces that are supposed to be different and only mark differences in the other parts of the image.
6+
7+
Especially useful to filter 'dinamic' parts of screenshots and compare the rest. Also features blacklisting of areas to work conditionally the other way.
8+
9+
### API
10+
11+
```js
12+
var imageDiff = require('image-area-dif');
13+
14+
var numDiffPixels = imageDiff(
15+
"threshold": 0.1,
16+
"compare": ["old.png", "new.png"],
17+
"whitelist": [
18+
{left: 0, top: 0, width: 600, height: 100}, // whitelist the header of the image (left,top,width,height variant)
19+
{left: 100, top: 100, right:400, bottom: 100}, // whitelist the center of the footer (left,top,right,bottom variant)
20+
{x: 120, y: 125}, // whitelist a pixel (x,y variant)
21+
{x: 10, y: 130, radius: 10}, // whitelist a circular area (x,y,radius variant)
22+
],
23+
"output": "diff.png" // Optional, save difference to file
24+
);
25+
```
26+
27+
### Install
28+
29+
Install with NPM:
30+
31+
```bash
32+
npm install image-area-diff
33+
```
34+
35+
To build a browser-compatible version, clone the repository locally, then run:
36+
37+
```bash
38+
npm install -g browserify
39+
browserify -s image-area-diff index.js > image-area-diff.js
40+
```
41+
42+
To build a binary executable version, use the API to configure the usage as you like, then:
43+
```bash
44+
npm install -g pkg
45+
pkg index.js --target host --output app.exe
46+
```
47+
48+
### [Changelog](https://github.com/GuilhermeRossato/image-area-diff/releases)

package.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"name": "image-area-diff",
3+
"version": "0.9.0",
4+
"description": "An efficient JavaScript library used to conditionally compare pixel-level areas in PNG images",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "tap test/test.js -t 100"
8+
},
9+
"dependencies": {
10+
"pixelmatch": "^4.0.2"
11+
},
12+
"devDependencies": {
13+
"eslint": "^4.18.1",
14+
"eslint-config-mourner": "^2.0.3",
15+
"tap": "^11.1.1"
16+
},
17+
"repository": {
18+
"type": "git",
19+
"url": "git+ssh://git@github.com/GuilhermeRossato/image-area-diff.git"
20+
},
21+
"keywords": [
22+
"test",
23+
"image",
24+
"comparision",
25+
"area",
26+
"dif"
27+
],
28+
"engines": {
29+
"node": ">=5.5.1"
30+
},
31+
"author": "Guilherme Rossato <guilhermrossato@gmail.com> (https://github.com/GuilhermeRossato)",
32+
"license": "MIT",
33+
"bugs": {
34+
"url": "https://github.com/GuilhermeRossato/image-area-diff/issues"
35+
},
36+
"homepage": "https://github.com/GuilhermeRossato/image-area-diff#readme"
37+
}

0 commit comments

Comments
 (0)