PHPUnit Compare Images
PHPUnit assertions for assessing image similarity., (*1)
IMPORTANT: You may run into issues comparing different-sized images depending on your setup. I haven't been able to assess for certain what the issue is, but comparing different sized images works fine for me locally on OSX, but my tests fail in Travis CI if I use images with different sizes., (*2)
, (*3)
Installation
composer require lupka/phpunit-compare-images
Usage
Add the CompareImagesTrait
trait to your test class to enable the use of the assertions., (*4)
<?php
use Lupka\PHPUnitCompareImages\CompareImagesTrait;
class YourTestCase extends PHPUnit_Framework_TestCase
{
use CompareImagesTrait;
...
}
Assertions
This package includes several assertions., (*5)
The first two parameters of each assertion are the images to be compared, which can either be Imagick objects or string file paths., (*6)
assertImageSimilarity
assertImageSimilarity($image1, $image2, $threshold = 0)
Will fail if the two images ARE NOT within the given similarity threshold., (*7)
assertImageDifference
assertImageDifference($image1, $image2, $threshold = 0)
Will fail if the two images ARE within the given similarity threshold., (*8)
assertImagesSame
assertImagesSame($image1, $image2)
Will fail if the two images ARE NOT exactly the same., (*9)
assertImagesDifferent
assertImagesDifferent($image1, $image2)
Will fail if the two images ARE exactly the same., (*10)
What does $threshold mean?
The $threshold
value on the assertImageSimilarity and assertImageDifference functions are compared directly to the result of the compareImages function of PHP's Imagick class. Below our some examples of what threshold you would need to use variety of different comparisons., (*11)
Threshold: 0
Images are identical., (*12)
, (*13)
Threshold: 0.234
Different images., (*14)
, (*15)
Threshold: 0.033
Slightly cropped version of same image., (*16)
, (*17)
Threshold: 1
Black vs. white, (*18)
, (*19)
Notes/Links
- PHP.net Imagick Compare docs: http://php.net/manual/en/imagick.compareimages.php