ImagickKernel::addUnityKernel
(PECL imagick >= 3.3.0)
ImagickKernel::addUnityKernel — Описание
Описание
public ImagickKernel::addUnityKernel
( float
$scale
) : voidДобавляет указанное количество сверточного ядра 'Unity' к указанному предварительно масштабированному и нормализованному ядру. Это фактически добавляет то количество исходного изображения в получающееся ядро свертки. В результате получается преобразование определенных ядер в смешанные мягкие пятна, нерезкие ядра или в заостренные ядра.
Список параметров
У этой функции нет параметров.
Возвращаемые значения
Примеры
Пример #1 ImagickKernel::addUnityKernel()
<?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;
}
$matrix = [
[-1, 0, -1],
[ 0, 4, 0],
[-1, 0, -1],
];
$kernel = \ImagickKernel::fromMatrix($matrix);
$kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
$output = "Перед добавлением unity ядра: <br/>";
$output .= renderKernelTable($kernel->getMatrix());
$kernel->addUnityKernel(0.5);
$output .= "После добавления unity ядра: <br/>";
$output .= renderKernelTable($kernel->getMatrix());
$kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
$output .= "После перенормировки ядра: <br/>";
$output .= renderKernelTable($kernel->getMatrix());
echo $output;
?>
Пример #2 ImagickKernel::addUnityKernel()
<?php
function addUnityKernel($imagePath) {
$matrix = [
[-1, 0, -1],
[ 0, 4, 0],
[-1, 0, -1],
];
$kernel = ImagickKernel::fromMatrix($matrix);
$kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
$kernel->addUnityKernel(0.5);
$imagick = new \Imagick(realpath($imagePath));
$imagick->filter($kernel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}
?>