The Imagick::setProgressMonitor() function is an inbuilt function in PHP which is used to set a callback function that will be called during the processing of the Imagick image if something goes wrong. You can use this function to pause a program before proceeding further.
Syntax:
bool Imagick::setProgressMonitor( callable $callback )
Parameters: This function accepts a single parameter $callback which holds the callback function.
Return Value: This function returns TRUE on success.
Exceptions: This function throws ImagickException on error.
Below programs illustrate the Imagick::setProgressMonitor() function in PHP:
Program 1:
<?php // Create a new Imagick object $imagick = new Imagick(); // Create a image in Imagick object $imagick ->newImage(640, 480, "blue" ); $status = 'Not cancelled' ; $text = '<br>' ; // Callback function $callback = function ( $offset , $span ) use (& $status , $text ) { $status = "Callback is called" . $text ; return false; }; // Set the Progress Monitor $imagick ->setProgressMonitor( $callback ); try { // $x and $y are undefined thus a call to // callback funcction is expected here $imagick ->charcoalImage( $x , $y ); echo "Callback function wasn't called." ; } catch (\Exception $e ) { echo $status ; } ?> |
Output:
Callback is called
Program 2:
<?php // Create a new Imagick object $imagick = new Imagick(); // Create a image in Imagick object $imagick ->newImage(600, 400, "white" ); $status = 'Not cancelled' ; $text = '<br>' ; // Callback function $callback = function ( $offset , $span ) use (& $status , $text ) { $status = "Callback is called" . $text ; return true; }; // Set the Progress Monitor $imagick ->setProgressMonitor( $callback ); try { // $x and $y are defined thus a call to // callback funcction is expected here $x = 20; $y = 5; $imagick ->charcoalImage( $x , $y ); echo "Callback function wasn't called." ; } catch (\Exception $e ) { echo $status ; } ?> |
Output:
Callback function wasn't called.
Reference: https://www.php.net/manual/en/imagick.setprogressmonitor.php