La función Imagick::setProgressMonitor() es una función incorporada en PHP que se usa para establecer una función de devolución de llamada que se llamará durante el procesamiento de la imagen Imagick si algo sale mal. Puede usar esta función para pausar un programa antes de continuar.
Sintaxis:
bool Imagick::setProgressMonitor( callable $callback )
Parámetros: esta función acepta un solo parámetro $callback que contiene la función de devolución de llamada.
Valor de retorno: esta función devuelve VERDADERO en caso de éxito.
Excepciones: esta función lanza ImagickException en caso de error.
Los siguientes programas ilustran la función Imagick::setProgressMonitor() en PHP:
Programa 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; } ?>
Producción:
Callback is called
Programa 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; } ?>
Producción:
Callback function wasn't called.
Referencia: https://www.php.net/manual/en/imagick.setprogressmonitor.php