Skip to content

Commit

Permalink
Merge branch 'PHP-7.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
cmb69 committed Sep 25, 2016
2 parents 8c26762 + daba342 commit 47f1666
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 2 deletions.
23 changes: 21 additions & 2 deletions ext/gd/tests/func.inc
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,16 @@ function test_image_equals_file($filename, $actual)
save_actual_image($actual);
return;
}
$actual = test_to_truecolor($actual);
$expected = imagecreatefrompng($filename);
$expected = test_to_truecolor($expected);
$exp_x = imagesx($expected);
$exp_y = imagesy($expected);
$act_x = imagesx($actual);
$act_y = imagesy($actual);
if ($exp_x != $act_x || $exp_y != $act_y) {
echo "The image size differs: expected {$exp_x}x{$exp_y}, got {$act_x}x{$act_y}.\n";
save_actual_image($actual);
imagedestroy($expected);
return;
}
$pixels_changed = 0;
Expand All @@ -109,7 +110,25 @@ function test_image_equals_file($filename, $actual)
echo "The images differ in {$pixels_changed} pixels.\n";
save_actual_image($actual);
}
imagedestroy($expected);
}

/**
* Returns the truecolor version of an image.
*
* @param resource $image
* @return resource
*/
function test_to_truecolor($image)
{
if (imageistruecolor($image)) {
return $image;
} else {
$width = imagesx($image);
$height = imagesy($image);
$result = imagecreatetruecolor($width, $height);
imagecopy($result, $image, 0,0, 0,0, $width, $height);
return $result;
}
}

/**
Expand Down
42 changes: 42 additions & 0 deletions ext/gd/tests/test_image_equals_file_palette.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
--TEST--
test_image_equals_file(): comparing palette images
--SKIPIF--
<?php
if (!extension_loaded('gd')) die('skip gd extension not available');
?>
--FILE--
<?php
require_once __DIR__ . DIRECTORY_SEPARATOR . 'func.inc';

$im = imagecreate(10, 10);
imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);
imagefilledrectangle($im, 3,3, 7,7, $red);

$filename = __DIR__ . DIRECTORY_SEPARATOR . 'test_image_equals_file_palette.png';
imagepng($im, $filename);

$im = imagecreate(10, 10);
imagecolorallocate($im, 255, 255, 255);
$blue = imagecolorallocate($im, 0, 0, 255);
imagefilledrectangle($im, 3,3, 7,7, $blue);

test_image_equals_file($filename, $im);

$im = imagecreate(10, 10);
imagecolorallocate($im, 255, 255, 255);
imagecolorallocate($im, 0, 0, 0);
$red = imagecolorallocate($im, 255, 0, 0);
imagefilledrectangle($im, 3,3, 7,7, $red);

test_image_equals_file($filename, $im);
?>
===DONE===
--EXPECT--
The images differ in 25 pixels.
The images are equal.
===DONE===
--CLEAN--
<?php
unlink(__DIR__ . DIRECTORY_SEPARATOR . 'test_image_equals_file_palette.png');
?>

0 comments on commit 47f1666

Please sign in to comment.