2017-09-25 00:33:05 +09:00

154 lines
2.8 KiB
Markdown

Image\PerceptualHash
========
## NAME
Image\PerceptualHash - Generate comparable hash from images
## SYNOPSIS
```php
<?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());
```
## DESCRIPTION
Image\PerceptualHash generates distinct, but not unique fingerprint with three hashing algorithms. Unlike cryptographic hashing, these fingerprints from similar images will be also similar.
## DEPENDENCIES
* ext-gd
## INSTALLATION
To install this package into your project via composer, add the following snippet to your `composer.json`. Then run `composer install`.
```json
"require": {
"travail/image-perceptualhash": "dev-master"
}
```
or
```json
"repositories": {
{
"type": "vcs",
"url": "git@github.com:travail/php-Image-PerceptualHash.git"
}
}
```
## TESTS
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
```
## METHODS
### __construct
```php
Image\PerceptualHash __construct($file, Algorithm $algorithm)
```
Creates a new instance of Image\PerceptualHash and calculates hashes.
#### $file
Path to a file or a resource of that.
#### Algorithm $algorithm
Hashing algorithm, currently the following algorithm are available:
* AverageHash
* DifferenceHash
* PerceptionHash
### bin
```php
string bin()
```
Returns calculated binary hash.
### hex
```
string hex()
```
Returns calculated hexadecimal hash.
### compare
```php
int compare(string|resource $file)
```
Compares with another image and returns the Hamming distance to that.
#### $file
Path to a file or a resource of that.
### distance
```php
int distance(string $hash1, string $hash2)
```
### similarity
```php
double similarity(string|resource $file)
```
Calculates the similarity to another image.
#### $file
Path to a file or a resource of that.
## AUTHOR
travail
### LICENSE
This library is free software. You can redistribute it and/or modify it under the same terms as PHP itself.