Skip to content

Latest commit

 

History

History
33 lines (25 loc) · 815 Bytes

README.md

File metadata and controls

33 lines (25 loc) · 815 Bytes

sharp-phash

Sharp based implementation of perceptual hash (phash) algorithm described there.

How to use

'use strict';

const fs = require('fs');
const Promise = require('bluebird');

const assert = require('assert');

const phash = require('sharp-phash');
const dist = require('sharp-phash/distance');

const img1 = fs.readFileSync('./Lenna.png');
const img2 = fs.readFileSync('./Lenna.jpg');
const img3 = fs.readFileSync('./Lenna-sepia.jpg');

Promise.all([
  phash(img1),
  phash(img2),
  phash(img3)
])
  .then(([hash1, hash2, hash3]) => {
    // hash returned is 64 characters length string with 0 and 1 only
    assert(dist(hash1, hash2) < 5);
    assert(dist(hash2, hash3) < 5);
    assert(dist(hash3, hash1) < 5);
  });