lupka/phpunit-compare-images

PHPUnit assertions for comparing image similarity.

1.0.0 2016-11-01 07:37 UTC

This package is auto-updated.

Last update: 2024-04-25 18:46:21 UTC


README

PHPUnit assertions for assessing image similarity.

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.

Travis Packagist [icense](LICENSE)

Installation

composer require lupka/phpunit-compare-images

Usage

Add the CompareImagesTrait trait to your test class to enable the use of the assertions.

<?php
use Lupka\PHPUnitCompareImages\CompareImagesTrait;

class YourTestCase extends PHPUnit_Framework_TestCase
{
    use CompareImagesTrait;

    ...
}

Assertions

This package includes several assertions.

The first two parameters of each assertion are the images to be compared, which can either be Imagick objects or string file paths.

assertImageSimilarity

assertImageSimilarity($image1, $image2, $threshold = 0)

Will fail if the two images ARE NOT within the given similarity threshold.

assertImageDifference

assertImageDifference($image1, $image2, $threshold = 0)

Will fail if the two images ARE within the given similarity threshold.

assertImagesSame

assertImagesSame($image1, $image2)

Will fail if the two images ARE NOT exactly the same.

assertImagesDifferent

assertImagesDifferent($image1, $image2)

Will fail if the two images ARE exactly the same.

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.

Threshold: 0

Images are identical.

default.jpg

same.jpg

Threshold: 0.234

Different images.

default.jpg

different.jpg

Threshold: 0.033

Slightly cropped version of same image.

default.jpg

similar.jpg

Threshold: 1

Black vs. white

black.jpg

white.jpg

Notes/Links