mirror of
https://github.com/php/php-src.git
synced 2024-11-28 20:34:29 +08:00
Add regression test for bug #47946
This bug had already been fixed, but apparently there's no regression test yet, so we add one. Note that the expected image has black pixel artifacts, which are another issue (perhaps bug #40158), and would have to be adressed separately.
This commit is contained in:
parent
e56fe7e5e7
commit
71efe9d8fd
51
ext/gd/tests/bug47946.phpt
Normal file
51
ext/gd/tests/bug47946.phpt
Normal file
@ -0,0 +1,51 @@
|
||||
--TEST--
|
||||
Bug #47946 (ImageConvolution overwrites background)
|
||||
--DESCRIPTION--
|
||||
The expected image has black pixel artifacts, what is another issue, though
|
||||
(perhaps #40158).
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!extension_loaded('gd')) die('skip gd extension not available');
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
function array_flatten($array)
|
||||
{
|
||||
$tempArray = array();
|
||||
|
||||
foreach ($array as $value) {
|
||||
if (is_array($value)) {
|
||||
$tempArray = array_merge($tempArray, array_flatten($value));
|
||||
} else {
|
||||
$tempArray[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $tempArray;
|
||||
}
|
||||
|
||||
function makeFilter($resource, $matrix, $offset = 1.0)
|
||||
{
|
||||
$divisor = array_sum(array_flatten($matrix));
|
||||
if ($divisor == 0) {
|
||||
$divisor = .01;
|
||||
}
|
||||
return imageconvolution($resource, $matrix, $divisor, $offset);
|
||||
}
|
||||
|
||||
$edgeMatrix = array(array(1, 0, 1), array(0, 5, 0), array(1, 0, 1));
|
||||
|
||||
$im = imagecreatetruecolor(40, 40);
|
||||
imagealphablending($im, false);
|
||||
imagefilledrectangle($im, 0, 0, 39, 39, 0x7fffffff);
|
||||
imagefilledellipse($im, 19, 19, 20, 20, 0x00ff00);
|
||||
imagesavealpha($im, true);
|
||||
makeFilter($im, $edgeMatrix);
|
||||
|
||||
require_once __DIR__ . '/func.inc';
|
||||
test_image_equals_file(__DIR__ . '/bug47946_exp.png', $im);
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
The images are equal.
|
||||
===DONE===
|
BIN
ext/gd/tests/bug47946_exp.png
Normal file
BIN
ext/gd/tests/bug47946_exp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 396 B |
Loading…
Reference in New Issue
Block a user