Neurotic Pantaloon Maker

    imghash

    0.0.9 • Public • Published

    imghash build npm Libraries.io dependency status for GitHub repo NPM

    Promise-based image perceptual hash calculation for node.

    Installation

    npm install imghash
    

    ℹ️ You can find the command-line interface here.

    Basic usage

    const imghash = require("imghash");
    
    const hash1 = await imghash.hash("./path/to/file");
    console.log(hash1);  // "f884c4d8d1193c07"
    
    // Custom hex length and result in binary
    const hash2 = await imghash.hash("./path/to/file", 4, "binary");
    console.log(hash2);  // "1000100010000010"

    Finding similar images

    To measure similarity between images you can use Hamming distance or Levenshtein Distance.

    The following example uses the latter one:

    const imghash = require("imghash");
    const leven = require("leven");
    
    const hash1 = await imghash.hash("./img1");
    const hash2 = await imghash.hash("./img2");
    
    const distance = leven(hash1, hash2);
    console.log(`Distance between images is: ${distance}`);
    if (distance <= 12) {
      console.log("Images are similar");
    } else {
      console.log("Images are NOT similar");
    }

    API

    .hash(filepath[, bits][, format])

    Returns: ES6 Promise, resolved returns hash string in specified format and length (eg. f884c4d8d1193c07)

    Parameters:

    • filepath - path to the image (supported formats are png and jpeg) or Buffer
    • bits (optional) - hash length [default: 8]
    • format (optional) - output format [default: hex]

    .hashRaw(data, bits)

    Returns: hex hash

    Parameters:

    • data - image data descriptor in form { width: [width], height: [height], data: [decoded image pixels] }
    • bits - hash length

    .hexToBinary(s)

    Returns: hex string, eg. f884c4d8d1193c07.

    Parameters:

    • s - binary hash string eg. 1000100010000010

    .binaryToHex(s)

    Returns: hex string, eg. 1000100010000010.

    Parameters:

    • s - hex hash string eg. f884c4d8d1193c07

    Further reading

    imghash takes advantage of block mean value based hashing method:

    Install

    npm i imghash

    DownloadsWeekly Downloads

    401

    Version

    0.0.9

    License

    MIT

    Unpacked Size

    592 kB

    Total Files

    19

    Last publish

    Collaborators

    • fragphace