Image\PerceptualHash - Generate comparable hash from images
<?php
use Image\PerceptualHash;
use Image\PerceptualHash\Algorithm\DifferenceHash;
use Image\PerceptualHash\Algorithm\PerceptionHash;
// Create an instance of Image\PerceptualHash, at the same time calculate hashes
// using hashing algorithm Image\PerceptualHash\Algorithm\AverageHash by default
$ph = new PerceptualHash('/path/to/foo.jpg');
// Get binary hash
$binary_hash = $ph->bin();
// Get hexadecimal hash
$hex_hash = $ph->hex();
// Compare with another image, return a Hamming distance
$distance = $ph->compare('/path/to/bar.jpg');
// Calculate a similarity
$similarity = $ph->similarity('/path/to/baz.jpg');
// Calculate by other hashing algorithms
$ph = new PerceptualHash('/path/to/foo.jpg', new DifferenceHash());
// or
$ph = new PerceptualHash('/path/to/foo.jpg', new PerceptionHash());Image\PerceptualHash generates distinct, but not unique fingerprint with three hashing algorithms. Unlike cryptographic hashing, these fingerprints from similar images will be also similar.
- ext-gd
To install this package into your project via composer, add the following snippet to your composer.json. Then run composer install.
"require": {
"travail/image-perceptualhash": "dev-master"
}or
"repositories": {
{
"type": "vcs",
"url": "git@github.com:travail/php-Image-PerceptualHash.git"
}
}After cloning the project, run composer install and ./vendor/bin/phpunit.
$ git clone git@github.com:travail/php-Image-PerceptualHash.git
$ cd php-Image-PerceptualHash
$ composer install
$ ./vendor/bin/phpunit
Image\PerceptualHash __construct($file, Algorithm $algorithm)Creates a new instance of Image\PerceptualHash and calculates hashes.
Path to a file or a resource of that.
Hashing algorithm, currently the following algorithm are available:
- AverageHash
- DifferenceHash
- PerceptionHash
string bin()Returns calculated binary hash.
string hex()
Returns calculated hexadecimal hash.
int compare(string|resource $file)Compares with another image and returns the Hamming distance to that.
Path to a file or a resource of that.
int distance(string $hash1, string $hash2)double similarity(string|resource $file)Calculates the similarity to another image.
Path to a file or a resource of that.
travail
This library is free software. You can redistribute it and/or modify it under the same terms as PHP itself.