Imagick::setProgressMonitor

(PECL imagick 3 >= 3.3.0)

Imagick::setProgressMonitorDéfinit une fonction de rappel à appeler pendant le traitement

Description

public Imagick::setProgressMonitor(callable $callback): bool

Définit une fonction de rappel qui sera appelée pendant le traitement de l'image Imagick.

Liste de paramètres

callback

La fonction de progression à appeler. Elle doit retourner true si le traitement de l'image doit continuer, ou false si elle doit être annulée. Le paramètre offset indique la progression et le paramètre span indique la quantité totale de travail à effectuer.

callback ( mixed $offset , mixed $span ): bool
Attention

Les valeurs passées à la fonction de rappel ne sont pas cohérentes. En particulier, le paramètre span peut augmenter pendant le traitement de l'image. En raison de cela, le calcul du pourcentage complet d'une opération d'image n'est pas trivial.

Valeurs de retour

Retourne true en cas de succès.

Exemples

Exemple #1 Imagick::setProgressMonitor()

<?php
$abortReason
= null;

try {
$imagick = new \Imagick(realpath($this->control->getImagePath()));
$startTime = time();

$callback = function ($offset, $span) use ($startTime, &$abortReason) {
if (((
100 * $offset) / $span) > 20) {
$abortReason = "Processing reached 20%";
return
false;
}

$nowTime = time();

if (
$nowTime - $startTime > 5) {
$abortReason = "Image processing took more than 5 seconds";
return
false;
}
if ((
$offset % 5) == 0) {
echo
"Progress: $offset / $span <br/>";
}
return
true;
};

$imagick->setProgressMonitor($callback);

$imagick->waveImage(2, 15);

echo
"Data len is: ".strlen($imagick->getImageBlob());
}
catch(
\ImagickException $e) {
if (
$abortReason != null) {
echo
"Image processing was aborted: ".$abortReason."<br/>";
}
else {
echo
"ImagickException caught: ".$e->getMessage()." Exception type is ".get_class($e);
}
}

?>

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top