<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Description</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="imagick.morphimages.html">Imagick::morphImages</a></div> <div class="next" style="text-align: right; float: right;"><a href="imagick.mosaicimages.html">Imagick::mosaicImages</a></div> <div class="up"><a href="class.imagick.html">Imagick</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="imagick.morphology" class="refentry"> <div class="refnamediv"> <h1 class="refname">Imagick::morphology</h1> <p class="verinfo">(No version information available, might only be in Git)</p><p class="refpurpose"><span class="refname">Imagick::morphology</span> — <span class="dc-title">Description</span></p> </div> <div class="refsect1 description" id="refsect1-imagick.morphology-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="modifier">public</span> <span class="type">bool</span> <span class="methodname"><strong>Imagick::morphology</strong></span> ( <span class="methodparam"><span class="type">int</span> <code class="parameter">$morphologyMethod</code></span> , <span class="methodparam"><span class="type">int</span> <code class="parameter">$iterations</code></span> , <span class="methodparam"><span class="type"><a href="class.imagickkernel.html" class="type ImagickKernel">ImagickKernel</a></span> <code class="parameter">$ImagickKernel</code></span> [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$channel</code><span class="initializer"> = Imagick::CHANNEL_DEFAULT</span></span> ] )</div> <p class="para rdfs-comment"> Applies a user supplied kernel to the image according to the given morphology method. </p> </div> <div class="refsect1 parameters" id="refsect1-imagick.morphology-parameters"> <h3 class="title">Parameters</h3> <dl> <dt> <code class="parameter">morphologyMethod</code></dt> <dd> <p class="para"> Which morphology method to use one of the \Imagick::MORPHOLOGY_* constants. </p> </dd> <dt> <code class="parameter">iterations</code></dt> <dd> <p class="para"> The number of iteration to apply the morphology function. A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1. </p> </dd> <dt> <code class="parameter">ImagickKernel</code></dt> <dd> <p class="para"> </p> </dd> <dt> <code class="parameter">channel</code></dt> <dd> <p class="para"> </p> </dd> </dl> </div> <div class="refsect1 returnvalues" id="refsect1-imagick.morphology-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> Returns <strong><code>TRUE</code></strong> on success. </p> </div> <div class="refsect1 examples" id="refsect1-imagick.morphology-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-3944"> <p><strong>Example #1 Convolve <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $imagick </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacter</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_GAUSSIAN</span><span style="color: #007700">, </span><span style="color: #DD0000">"5,1"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_CONVOLVE</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3945"> <p><strong>Example #2 Correlate <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /><br /> </span><span style="color: #FF8000">// Top-left pixel must be black<br /> // Bottom right pixel must be white<br /> // We don't care about the rest.<br /> <br /><br /> </span><span style="color: #0000BB">$imagick </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromMatrix</span><span style="color: #007700">(</span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">$correlateMatrix</span><span style="color: #007700">, [</span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">]);<br /> </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_CORRELATE</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3946"> <p><strong>Example #3 Erode <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_OCTAGON</span><span style="color: #007700">, </span><span style="color: #DD0000">"3"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_ERODE</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3947"> <p><strong>Example #4 Erode Intensity <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacter</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_OCTAGON</span><span style="color: #007700">, </span><span style="color: #DD0000">"1"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_ERODE_INTENSITY</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3948"> <p><strong>Example #5 Dilate <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_OCTAGON</span><span style="color: #007700">, </span><span style="color: #DD0000">"3"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_DILATE</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3949"> <p><strong>Example #6 Dilate intensity <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacter</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_OCTAGON</span><span style="color: #007700">, </span><span style="color: #DD0000">"1"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_DILATE_INTENSITY</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3950"> <p><strong>Example #7 Distance with Chebyshev kernel <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_CHEBYSHEV</span><span style="color: #007700">, </span><span style="color: #DD0000">"3"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_DISTANCE</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">autoLevelImage</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3951"> <p><strong>Example #8 Distance with Manhattan kernel <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_MANHATTAN</span><span style="color: #007700">, </span><span style="color: #DD0000">"5"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_DISTANCE</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">autoLevelImage</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3952"> <p><strong>Example #9 Distance with ocatagonal kernel <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_OCTAGONAL</span><span style="color: #007700">, </span><span style="color: #DD0000">"5"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_DISTANCE</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">autoLevelImage</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3953"> <p><strong>Example #10 Distance with Euclidean kernel <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_EUCLIDEAN</span><span style="color: #007700">, </span><span style="color: #DD0000">"4"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_DISTANCE</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">autoLevelImage</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3954"> <p><strong>Example #11 Edge <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_OCTAGON</span><span style="color: #007700">, </span><span style="color: #DD0000">"3"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_EDGE</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3955"> <p><strong>Example #12 Open <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> </span><span style="color: #FF8000">// As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.<br /> </span><span style="color: #0000BB">$canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_DISK</span><span style="color: #007700">, </span><span style="color: #DD0000">"6"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_OPEN</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3956"> <p><strong>Example #13 Open intensity <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> </span><span style="color: #FF8000">// As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.<br /><br /> </span><span style="color: #0000BB">$canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacter</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_DISK</span><span style="color: #007700">, </span><span style="color: #DD0000">"6"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_OPEN_INTENSITY</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3957"> <p><strong>Example #14 Close <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> </span><span style="color: #FF8000">//The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.<br /> </span><span style="color: #0000BB">$canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_DISK</span><span style="color: #007700">, </span><span style="color: #DD0000">"6"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_CLOSE</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3958"> <p><strong>Example #15 Close Intensity <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> </span><span style="color: #FF8000">//The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.<br /> </span><span style="color: #0000BB">$canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacter</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_DISK</span><span style="color: #007700">, </span><span style="color: #DD0000">"6"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_CLOSE_INTENSITY</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3959"> <p><strong>Example #16 Smooth <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_OCTAGON</span><span style="color: #007700">, </span><span style="color: #DD0000">"3"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_SMOOTH</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3960"> <p><strong>Example #17 Edge in <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_OCTAGON</span><span style="color: #007700">, </span><span style="color: #DD0000">"3"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_EDGE_IN</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3961"> <p><strong>Example #18 Edge out <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_OCTAGON</span><span style="color: #007700">, </span><span style="color: #DD0000">"3"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_EDGE_OUT</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3962"> <p><strong>Example #19 The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_DISK</span><span style="color: #007700">, </span><span style="color: #DD0000">"5"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_TOP_HAT</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3963"> <p><strong>Example #20 The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /><br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_DISK</span><span style="color: #007700">, </span><span style="color: #DD0000">"5"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_BOTTOM_HAT</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3964"> <p><strong>Example #21 Hit and Miss <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #FF8000">//This finds all the pixels with 3 pixels of the right edge<br /> </span><span style="color: #0000BB">$matrix </span><span style="color: #007700">= [[</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">]];<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromMatrix</span><span style="color: #007700">(<br /> </span><span style="color: #0000BB">$matrix</span><span style="color: #007700">,<br /> [</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">]<br /> );<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_HIT_AND_MISS</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3965"> <p><strong>Example #22 Thinning <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$leftEdgeKernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromMatrix</span><span style="color: #007700">([[</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">]], [</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">]);<br /> </span><span style="color: #0000BB">$rightEdgeKernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromMatrix</span><span style="color: #007700">([[</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">]], [</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">]);<br /> </span><span style="color: #0000BB">$leftEdgeKernel</span><span style="color: #007700">-></span><span style="color: #0000BB">addKernel</span><span style="color: #007700">(</span><span style="color: #0000BB">$rightEdgeKernel</span><span style="color: #007700">);<br /> <br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_THINNING</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">$leftEdgeKernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3966"> <p><strong>Example #23 Thicken <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$leftEdgeKernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromMatrix</span><span style="color: #007700">([[</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">]], [</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">]);<br /> </span><span style="color: #0000BB">$rightEdgeKernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromMatrix</span><span style="color: #007700">([[</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">]], [</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">]);<br /> </span><span style="color: #0000BB">$leftEdgeKernel</span><span style="color: #007700">-></span><span style="color: #0000BB">addKernel</span><span style="color: #007700">(</span><span style="color: #0000BB">$rightEdgeKernel</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_THICKEN</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">$leftEdgeKernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3967"> <p><strong>Example #24 Thick to generate a convex hull <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$diamondKernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_DIAMOND</span><span style="color: #007700">, </span><span style="color: #DD0000">"1"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$convexKernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_CONVEX_HULL</span><span style="color: #007700">, </span><span style="color: #DD0000">""</span><span style="color: #007700">);<br /><br /> </span><span style="color: #FF8000">// The thicken morphology doesn't handle small gaps. We close them<br /> // with the close morphology.<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_CLOSE</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$diamondKernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_THICKEN</span><span style="color: #007700">, -</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$convexKernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_CLOSE</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$diamondKernel</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3968"> <p><strong>Example #25 Iterative morphology <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> $canvas </span><span style="color: #007700">= </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$kernel </span><span style="color: #007700">= \</span><span style="color: #0000BB">ImagickKernel</span><span style="color: #007700">::</span><span style="color: #0000BB">fromBuiltIn</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">KERNEL_DISK</span><span style="color: #007700">, </span><span style="color: #DD0000">"2"</span><span style="color: #007700">); <br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">morphology</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">MORPHOLOGY_ITERATIVE</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">$kernel</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">autoLevelImage</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">header</span><span style="color: #007700">(</span><span style="color: #DD0000">"Content-Type: image/png"</span><span style="color: #007700">);<br /> echo </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageBlob</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-3969"> <p><strong>Example #26 Helper functon to get an image silhouette <span class="function"><strong>Imagick::morphology()</strong></span></strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /> </span><span style="color: #007700">private function </span><span style="color: #0000BB">getCharacterOutline</span><span style="color: #007700">() {<br /><br /> </span><span style="color: #0000BB">$imagick </span><span style="color: #007700">= new \</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">(</span><span style="color: #0000BB">realpath</span><span style="color: #007700">(</span><span style="color: #DD0000">"./images/character.png"</span><span style="color: #007700">));<br /> </span><span style="color: #0000BB">$character </span><span style="color: #007700">= new \</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$character</span><span style="color: #007700">-></span><span style="color: #0000BB">newPseudoImage</span><span style="color: #007700">(<br /> </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageWidth</span><span style="color: #007700">(),<br /> </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageHeight</span><span style="color: #007700">(),<br /> </span><span style="color: #DD0000">"canvas:white"<br /> </span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas </span><span style="color: #007700">= new \</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">newPseudoImage</span><span style="color: #007700">(<br /> </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageWidth</span><span style="color: #007700">(),<br /> </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageHeight</span><span style="color: #007700">(),<br /> </span><span style="color: #DD0000">"canvas:black"<br /> </span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$character</span><span style="color: #007700">-></span><span style="color: #0000BB">compositeimage</span><span style="color: #007700">(<br /> </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">,<br /> \</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">COMPOSITE_COPYOPACITY</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0<br /> </span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">compositeimage</span><span style="color: #007700">(<br /> </span><span style="color: #0000BB">$character</span><span style="color: #007700">,<br /> \</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">COMPOSITE_ATOP</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0<br /> </span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">-></span><span style="color: #0000BB">setFormat</span><span style="color: #007700">(</span><span style="color: #DD0000">'png'</span><span style="color: #007700">);<br /><br /> return </span><span style="color: #0000BB">$canvas</span><span style="color: #007700">;<br /> }<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="imagick.morphimages.html">Imagick::morphImages</a></div> <div class="next" style="text-align: right; float: right;"><a href="imagick.mosaicimages.html">Imagick::mosaicImages</a></div> <div class="up"><a href="class.imagick.html">Imagick</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>