ImagickKernel
PHP Manual

ImagickKernel::addUnityKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addUnityKernelDescription

Description

public void ImagickKernel::addUnityKernel ( float $scale )

Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel. This in effect adds that amount of the original image into the resulting convolution kernel. The resulting effect is to convert the defined kernels into blended soft-blurs, unsharp kernels or into sharpening kernels.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #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 "Before adding unity kernel: <br/>";
    
$output .= renderKernelTable($kernel->getMatrix());
    
$kernel->addUnityKernel(0.5);
    
$output .= "After adding unity kernel: <br/>";
    
$output .= renderKernelTable($kernel->getMatrix());
    
    
    
$kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
    
$output .= "After renormalizing kernel: <br/>";
    
$output .= renderKernelTable($kernel->getMatrix());

    echo 
$output;

?>

Exemple #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();

}

?>


ImagickKernel
PHP Manual