Imagick::setProgressMonitor
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Imagick::setProgressMonitor
Референца за `imagick.setprogressmonitor.php` со подобрена типографија и навигација.
Imagick::setProgressMonitor
(PECL imagick 3 >= 3.3.0)
Imagick::setProgressMonitor — (PECL imagick 3 >= 3.3.0)
= NULL
Поставете повикувач што ќе се повика за време на обработката
Параметри
callback-
Поставете повикувач што ќе се повика за време на обработката на Imagick сликата.
Безбедност: стандардниот сет на знациФункцијата за напредок што треба да се повика. Треба да врати true ако обработката на сликата треба да продолжи, или false ако треба да се откаже. Параметарот offset покажува напредок, а параметарот span покажува вкупна количина на работа што треба да се направи.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успешен исход.
Примери
Пример #1 Вредностите што се предаваат на функцијата за повикување не се конзистентни. Особено параметарот span може да се зголеми за време на обработката на сликата. Поради ова, пресметувањето на процентот на завршеност на операцијата со слика не е тривијално.
<?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);
}
}
?>