ImagickKernel::fromBuiltIn
ImagickKernel::fromBuiltIn
(PECL imagick >= 3.3.0)
ImagickKernel::fromBuiltIn — Description
Description
public static ImagickKernel ImagickKernel::fromBuiltin ( string $kernelType , string $kernelString )
Create a kernel from a builtin in kernel. See http://www.imagemagick.org/Usage/morphology/#kernel for examples. Currently the 'rotation' symbols are not supported. Example: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2"
Parameters
kerneltype
The type of kernel to build e.g. \Imagick::KERNEL_DIAMOND
kernelString
A string that describes the parameters e.g. "4,2.5"
Return Values
Examples
Example #1 ImagickKernel::fromBuiltin()
<?php
function renderKernel(ImagickKernel $imagickKernel) {
$matrix = $imagickKernel->getMatrix(
$imageMargin = 20;
$tileSize = 20;
$tileSpace = 4;
$shadowSigma = 4;
$shadowDropX = 20;
$shadowDropY = 0;
$radius = ($tileSize / 2) * 0.9;
$rows = count($matrix
$columns = count($matrix[0]
$imagickDraw = new \ImagickDraw(
$imagickDraw->setFillColor('#afafaf'
$imagickDraw->setStrokeColor('none'
$imagickDraw->translate($imageMargin, $imageMargin
$imagickDraw->push(
ksort($matrix
foreach ($matrix as $row) {
ksort($row
$imagickDraw->push(
foreach ($row as $cell) {
if ($cell !== false) {
$color = intval(255 * $cell
$colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color
$imagickDraw->setFillColor($colorString
$imagickDraw->rectangle(0, 0, $tileSize, $tileSize
}
$imagickDraw->translate(($tileSize + $tileSpace), 0
}
$imagickDraw->pop(
$imagickDraw->translate(0, ($tileSize + $tileSpace)
}
$imagickDraw->pop(
$width = ($columns * $tileSize) + (($columns - 1) * $tileSpace
$height = ($rows * $tileSize) + (($rows - 1) * $tileSpace
$imagickDraw->push(
$imagickDraw->translate($width/2 , $height/2
$imagickDraw->setFillColor('rgba(0, 0, 0, 0)'
$imagickDraw->setStrokeColor('white'
$imagickDraw->circle(0, 0, $radius - 1, 0
$imagickDraw->setStrokeColor('black'
$imagickDraw->circle(0, 0, $radius, 0
$imagickDraw->pop(
$canvasWidth = $width + (2 * $imageMargin
$canvasHeight = $height + (2 * $imageMargin
$kernel = new \Imagick(
$kernel->newPseudoImage(
$canvasWidth,
$canvasHeight,
'canvas:none'
$kernel->setImageFormat('png'
$kernel->drawImage($imagickDraw
/* create drop shadow on it's own layer */
$canvas = $kernel->clone(
$canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)')
$canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY
$canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5
$canvas->cropImage($canvasWidth, $canvasHeight, 0, 0
/* composite original text_layer onto shadow_layer */
$canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0
$canvas->setImageFormat('png'
return $canvas;
}
function createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
$string = '';
if ($kernelFirstTerm != false && strlen(trim($kernelFirstTerm)) != 0) {
$string .= $kernelFirstTerm;
if ($kernelSecondTerm != false && strlen(trim($kernelSecondTerm)) != 0) {
$string .= ','.$kernelSecondTerm;
if ($kernelThirdTerm != false && strlen(trim($kernelThirdTerm)) != 0) {
$string .= ','.$kernelThirdTerm;
}
}
}
$kernel = ImagickKernel::fromBuiltIn(
$kernelType,
$string
return $kernel;
}
function fromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
$diamondKernel = createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm
$imagick = renderKernel($diamondKernel
header("Content-Type: image/png"
echo $imagick->getImageBlob(
}
fromBuiltin(\Imagick::KERNEL_DIAMOND, 2, false, false
?>
← ImagickKernel::addUnityKernel
ImagickKernel::fromMatrix →
© 1997–2017 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://secure.php.net/manual/en/imagickkernel.frombuiltin.php