PHP 8.5.4 Released!

Imagick::setProgressMonitor

(PECL imagick 3 >= 3.3.0)

Imagick::setProgressMonitor処理中に呼び出されるコールバックを設定する

説明

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

Imagick 画像の処理中に呼び出されるコールバックを設定します。

パラメータ

callback

呼び出す進捗関数。画像処理を続行する場合は true を、キャンセルする場合は false を返す必要があります。offset パラメータは進捗状況を示し、span パラメータは必要な作業の総量を示します。

callback ( mixed $offset , mixed $span ): bool
警告

コールバック関数に渡される値は一定ではありません。特に span パラメータは画像処理中に増加することがあります。このため、画像操作の完了率を計算することは単純ではありません。

戻り値

成功した場合に true を返します。

例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