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($cell3);
                }
                
$output .= "</td>";
            }
            
$output .= "</tr>";
        }
    
        
$output .= "</table>";
    
        return 
$output;
    }

    
$matrix = [
        [-
10, -1],
        [ 
04,  0],
        [-
10, -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 = [
        [-
10, -1],
        [ 
04,  0],
        [-
10, -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();

}

?>