The ImagickKernel::separate() function is an inbuilt function in PHP which is used to separate a linked set of kernels and returns an array of ImagickKernels. This function is used to count the kernels in an object or see the kernels of an object.
Syntax:
array ImagickKernel::separate( void )
Parameters: This function doesn’t accepts any parameter.
Return Value: This function returns an array value containing the ImagickKernels.
Below programs illustrate the ImagickKernel::separate() function in PHP:
Program 1: This program counting all the kernels in an ImagickKernel.
<?php // Create a new imagick object $imagick = new Imagick( $matrix1 = [ [-1, -1, -1], [4, 4, 4], [1, 1, 1], ]; $matrix2 = [ [-1, 0, 0], [0, 0, 1], [-1, 0, 1], ]; $matrix3 = [ [-1, 1, 0], [0, 0, 1], [-1, 0, 1], ]; $matrix4 = [ [0, 1, 0], [0, 0, 1], [-1, 0, 1], ]; // Create ImagickKernel objects from matrices $kernel1 = ImagickKernel::fromMatrix( $matrix1 ); $kernel2 = ImagickKernel::fromMatrix( $matrix2 ); $kernel3 = ImagickKernel::fromMatrix( $matrix3 ); $kernel4 = ImagickKernel::fromMatrix( $matrix4 ); // Add the kernels $kernel1 ->addKernel( $kernel2 ); $kernel1 ->addKernel( $kernel3 ); $kernel1 ->addKernel( $kernel4 ); $kernelList = $kernel1 ->separate(); echo 'Total number of attached kernels are: ' ; echo count ( $kernelList ); ?> |
Output:
Total number of attached kernels are: 4
Program 2 (Getting all ImagickKernel in a object):
<?php // Create a new imagick object $imagick = new Imagick( $matrix1 = [ [-1, -1, -1], [4, 4, 4], [1, 1, 1], ]; $matrix2 = [ [-1, 0, 0], [0, 0, 1], [-1, 0, 1], ]; // Create ImagickKernel objects from matrices $kernel1 = ImagickKernel::fromMatrix( $matrix1 ); $kernel2 = ImagickKernel::fromMatrix( $matrix2 ); // Add the kernel $kernel1 ->addKernel( $kernel2 ); $kernelList = $kernel1 ->separate(); echo 'All the kernels are: ' ; print ( "<pre>" .print_r( $kernelList , true). "</pre>" ); ?> |
Output:
All the kernels are: Array ( [0] => ImagickKernel Object ( [0] => Array ( [0] => Array ( [0] => -1 [1] => -1 [2] => -1 ) [1] => Array ( [0] => 4 [1] => 4 [2] => 4 ) [2] => Array ( [0] => 1 [1] => 1 [2] => 1 ) ) ) [1] => ImagickKernel Object ( [0] => Array ( [0] => Array ( [0] => -1 [1] => 0 [2] => 0 ) [1] => Array ( [0] => 0 [1] => 0 [2] => 1 ) [2] => Array ( [0] => -1 [1] => 0 [2] => 1 ) ) ) )
Reference: https://www.php.net/manual/en/imagickkernel.separate.php