public function render() { //Example ImagickKernel::addUnityKernel $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()); return $output; //Example end }
public function render() { //Example ImagickKernel::separate $matrix = [[-1, 0, -1], [0, 4, 0], [-1, 0, -1]]; $kernel = \ImagickKernel::fromMatrix($matrix); $kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE); $diamondKernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2"); $kernel->addKernel($diamondKernel); $kernelList = $kernel->separate(); $output = ''; $count = 0; foreach ($kernelList as $kernel) { $output .= "<br/>Kernel {$count}<br/>"; $output .= Display::renderKernelTable($kernel->getMatrix()); $count++; } return $output; //Example end }
function render() { //Example ImagickKernel::scale $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; //Example end }
function createFromMatrix() { $matrix = [[0.5, 0, 0.2], [0, 1, 0], [0.9, 0, false]]; $kernel = \ImagickKernel::fromMatrix($matrix); return $kernel; }
private function renderThicken() { //Example ImagickKernel::morphology $canvas = $this->getCharacterOutline(); $leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]); $rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]); $leftEdgeKernel->addKernel($rightEdgeKernel); $canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, 3, $leftEdgeKernel); header("Content-Type: image/png"); echo $canvas->getImageBlob(); //Example end }
function filter($imagePath) { $imagick = new \Imagick(realpath($imagePath)); $matrix = [[-1, 0, -1], [0, 5, 0], [-1, 0, -1]]; $kernel = \ImagickKernel::fromMatrix($matrix); $strength = 0.5; $kernel->scale($strength, \Imagick::NORMALIZE_KERNEL_VALUE); $kernel->addUnityKernel(1 - $strength); $imagick->filter($kernel); header("Content-Type: image/jpg"); echo $imagick->getImageBlob(); }