Skip to content

sharp based perceptual hash implementation

License

Notifications You must be signed in to change notification settings

btd/sharp-phash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Denis Bardadym
Oct 31, 2024
afcf8fe · Oct 31, 2024

History

39 Commits
Oct 3, 2020
Mar 2, 2017
Jun 17, 2020
Dec 15, 2016
Oct 31, 2024
Dec 15, 2016
Oct 3, 2020
Oct 31, 2024
Apr 20, 2019
Oct 31, 2024
Feb 14, 2023
Oct 31, 2024
Oct 31, 2024
Jun 17, 2020

Repository files navigation

sharp-phash

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

Installation

yarn add sharp sharp-phash
# or
npm i sharp sharp-phash

You must install sharp yourself.

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);
  }
);