Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/btd/sharp-phash
sharp based perceptual hash implementation
https://github.com/btd/sharp-phash
hacktoberfest hash image images perceptual perceptual-hashing phash sharp
Last synced: 4 days ago
JSON representation
sharp based perceptual hash implementation
- Host: GitHub
- URL: https://github.com/btd/sharp-phash
- Owner: btd
- License: mit
- Created: 2016-12-15T16:39:45.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-31T12:26:03.000Z (3 months ago)
- Last Synced: 2025-01-25T11:05:43.440Z (11 days ago)
- Topics: hacktoberfest, hash, image, images, perceptual, perceptual-hashing, phash, sharp
- Language: JavaScript
- Homepage:
- Size: 843 KB
- Stars: 50
- Watchers: 3
- Forks: 12
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# sharp-phash
Sharp based implementation of perceptual hash (phash) algorithm described [there](http://www.hackerfactor.com/blog/?/archives/432-Looks-Like-It.html).
## Installation
```sh
yarn add sharp sharp-phash
# or
npm i sharp sharp-phash
```You **must** install **sharp** yourself.
## How to use
```js
"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);
}
);
```