ImageMagick ImagickKernel::addUnityKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addUnityKernel — 설명


설명

public ImagickKernel::addUnityKernel(float $scale): void

미리 크기가 조정되고 정규화된 주어진 커널에 'Unity' 컨볼루션 커널의 주어진 양을 추가합니다. 이것은 실제로 결과 컨볼루션 커널에 원본 이미지의 해당 양을 추가합니다. 결과적인 효과는 정의된 커널을 혼합된 소프트 블러, 언샵 커널 또는 샤프닝 커널로 변환하는 것입니다.


매개변수

이 함수에는 매개변수가 없습니다.


반환 값


Examples

예제 #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 = "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;

?>
                    
                  

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

  }

  ?>