PHP Conference Japan 2024

ImagickKernel::scale

(PECL imagick >= 3.3.0)

ImagickKernel::scale按指定數量縮放核心列表

說明

public ImagickKernel::scale(float $scale, int $normalizeFlag = ?): void

按指定數量縮放給定的核心列表,可以選擇是否標準化核心值的總和(根據給定的旗標)。此函式的確切行為取決於所使用的標準化類型,詳情請參閱 https://imagemagick.dev.org.tw/api/morphology.php#ScaleKernelInfo。

參數

scale

normalizeFlag

  • Imagick::NORMALIZE_KERNEL_NONE
  • Imagick::NORMALIZE_KERNEL_VALUE
  • Imagick::NORMALIZE_KERNEL_CORRELATE
  • Imagick::NORMALIZE_KERNEL_PERCENT

回傳值

範例

範例 #1 ImagickKernel::scale()

<?php


function renderKernelTable($matrix) {
$output = "<table class='infoTable'>";

foreach (
$matrix as $row) {
$output .= "<tr>";
foreach (
$row as $cell) {
$output .= "<td style='text-align:left'>";
if (
$cell === false) {
$output .= "false";
}
else {
$output .= round($cell, 3);
}
$output .= "</td>";
}
$output .= "</tr>";
}

$output .= "</table>";

return
$output;
}


$output = "";

$matrix = [
[-
1, 0, -1],
[
0, 4, 0],
[-
1, 0, -1],
];

$kernel = \ImagickKernel::fromMatrix($matrix);
$kernelClone = clone $kernel;

$output .= "Start kernel<br/>";
$output .= renderKernelTable($kernel->getMatrix());


$output .= "Scaling with NORMALIZE_KERNEL_VALUE. The <br/>";
$kernel->scale(2, \Imagick::NORMALIZE_KERNEL_VALUE);
$output .= renderKernelTable($kernel->getMatrix());


$kernel = clone $kernelClone;
$output .= "Scaling by percent<br/>";
$kernel->scale(2, \Imagick::NORMALIZE_KERNEL_PERCENT);
$output .= renderKernelTable($kernel->getMatrix());

$matrix2 = [
[-
1, -1, 1],
[ -
1, false, 1],
[
1, 1, 1],
];

$kernel = \ImagickKernel::fromMatrix($matrix2);
$output .= "Scaling by correlate<br/>";
$kernel->scale(1, \Imagick::NORMALIZE_KERNEL_CORRELATE);
$output .= renderKernelTable($kernel->getMatrix());

return
$output;
?>

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top