mirror of
https://github.com/php/php-src.git
synced 2024-12-19 06:50:17 +08:00
Warnings to errors imageconvolution
This commit is contained in:
parent
34865f54e7
commit
d1f9ab11b3
12
ext/gd/gd.c
12
ext/gd/gd.c
@ -3698,23 +3698,23 @@ PHP_FUNCTION(imageconvolution)
|
||||
|
||||
nelem = zend_hash_num_elements(Z_ARRVAL_P(hash_matrix));
|
||||
if (nelem != 3) {
|
||||
php_error_docref(NULL, E_WARNING, "You must have 3x3 array");
|
||||
RETURN_FALSE;
|
||||
zend_throw_error(NULL, "Convolution matrix must be a 3x3 array");
|
||||
return;
|
||||
}
|
||||
|
||||
for (i=0; i<3; i++) {
|
||||
if ((var = zend_hash_index_find(Z_ARRVAL_P(hash_matrix), (i))) != NULL && Z_TYPE_P(var) == IS_ARRAY) {
|
||||
if (zend_hash_num_elements(Z_ARRVAL_P(var)) != 3 ) {
|
||||
php_error_docref(NULL, E_WARNING, "You must have 3x3 array");
|
||||
RETURN_FALSE;
|
||||
zend_throw_error(NULL, "Convolution matrix must be a 3x3 array, matrix[%d] only has %d elements", i, zend_hash_num_elements(Z_ARRVAL_P(var)));
|
||||
return;
|
||||
}
|
||||
|
||||
for (j=0; j<3; j++) {
|
||||
if ((var2 = zend_hash_index_find(Z_ARRVAL_P(var), j)) != NULL) {
|
||||
matrix[i][j] = (float) zval_get_double(var2);
|
||||
} else {
|
||||
php_error_docref(NULL, E_WARNING, "You must have a 3x3 matrix");
|
||||
RETURN_FALSE;
|
||||
zend_throw_error(NULL, "Convolution matrix must be a 3x3 array, matrix[%d][%d] cannot be found (missing integer key)", i, j);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,8 @@ if (!extension_loaded("gd")) die("skip GD not present");
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
require __DIR__ . '/func.inc';
|
||||
|
||||
$image = imagecreatetruecolor(180, 30);
|
||||
|
||||
// Writes the text and apply a gaussian blur on the image
|
||||
@ -19,8 +21,10 @@ $gaussian = array(
|
||||
array(2.0, 4.0, 2.0)
|
||||
);
|
||||
|
||||
var_dump(imageconvolution($image, $gaussian, 16, 0));
|
||||
trycatch_dump(
|
||||
fn() => imageconvolution($image, $gaussian, 16, 0)
|
||||
);
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: imageconvolution(): You must have 3x3 array in %s on line %d
|
||||
bool(false)
|
||||
--EXPECT--
|
||||
!! [Error] Convolution matrix must be a 3x3 array
|
||||
|
@ -9,6 +9,8 @@ if (!extension_loaded("gd")) die("skip GD not present");
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
require __DIR__ . '/func.inc';
|
||||
|
||||
$image = imagecreatetruecolor(180, 30);
|
||||
|
||||
// Writes the text and apply a gaussian blur on the image
|
||||
@ -20,8 +22,18 @@ $gaussian = array(
|
||||
array(1.0, 2.0)
|
||||
);
|
||||
|
||||
var_dump(imageconvolution($image, $gaussian, 16, 0));
|
||||
$gaussian_bad_key = array(
|
||||
array(1.0, 2.0, 1.0),
|
||||
array(2.0, 4.0, 2.0),
|
||||
array(1.0, 2.0, 'x' => 1.0)
|
||||
);
|
||||
|
||||
trycatch_dump(
|
||||
fn() => imageconvolution($image, $gaussian, 16, 0),
|
||||
fn() => imageconvolution($image, $gaussian_bad_key, 16, 0)
|
||||
);
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: imageconvolution(): You must have 3x3 array in %s on line %d
|
||||
bool(false)
|
||||
--EXPECT--
|
||||
!! [Error] Convolution matrix must be a 3x3 array, matrix[2] only has 2 elements
|
||||
!! [Error] Convolution matrix must be a 3x3 array, matrix[2][2] cannot be found (missing integer key)
|
||||
|
Loading…
Reference in New Issue
Block a user