Open In App

PHP | ImagickKernel scale() Function

Last Updated : 14 Jan, 2020
Summarize
Comments
Improve
Suggest changes
Share
Like Article
Like
Report
The ImagickKernel::scale() function is an inbuilt function in PHP which is used to scale the given kernel list by the given amount. Syntax:
void ImagickKernel::scale( float $scale, int $normalizeFlag )
Parameters: This function accept two parameters as mentioned above and described below:
  • $scale: It specifies the amount of scale.
  • $normalizeFlag: It specifies the type of scale.
Return Value: This function does not return any value. Below programs illustrate the ImagickKernel::scale() function in PHP: Program 1: php
<?php

// Create a new imagick object
$imagick = new Imagick(
'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png');

$matrix = [
    [0, 0, 1],
    [0, 2, 1],
    [1, 1, 1],
];

// Create a kernel from built-in matrix
$kernel = ImagickKernel::fromMatrix($matrix);

echo 'Before scaling:<br>';
print("<pre>".print_r($kernel->getMatrix(), true)."</pre>");

// Scale the kernel
$kernel->scale(5, Imagick::NORMALIZE_KERNEL_VALUE);

echo 'After scaling:<br>';
print("<pre>".print_r($kernel->getMatrix(), true)."</pre>");
?>
Output:
Before scaling:
Array
(
    [0] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 1
        )

    [1] => Array
        (
            [0] => 0
            [1] => 2
            [2] => 1
        )

    [2] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 1
        )

)
After scaling:
Array
(
    [0] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0.71428571428571
        )

    [1] => Array
        (
            [0] => 0
            [1] => 1.4285714285714
            [2] => 0.71428571428571
        )

    [2] => Array
        (
            [0] => 0.71428571428571
            [1] => 0.71428571428571
            [2] => 0.71428571428571
        )

)
Program 2: php
<?php

// Create a new imagick object
$imagick = new Imagick(
'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png');

$matrix = [
    [1, 2, -3],
    [4, 5, 6],
    [7, 8, 9]
];

// Create a kernel from matrix
$kernel = ImagickKernel::fromMatrix($matrix);

// Scale the kernel
$kernel->scale(4, Imagick::NORMALIZE_KERNEL_VALUE);

// Add the filter
$imagick->filter($kernel);

// Show the output
$imagick->setImageFormat('png');
header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>
Output: Reference: https://www.php.net/manual/en/imagickkernel.scale.php

Similar Reads