<!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>Interpolates colors</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="imagick.solarizeimage.html">Imagick::solarizeImage</a></div> <div class="next" style="text-align: right; float: right;"><a href="imagick.spliceimage.html">Imagick::spliceImage</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.sparsecolorimage" class="refentry"> <div class="refnamediv"> <h1 class="refname">Imagick::sparseColorImage</h1> <p class="verinfo">(No version information available, might only be in Git)</p><p class="refpurpose"><span class="refname">Imagick::sparseColorImage</span> — <span class="dc-title">Interpolates colors</span></p> </div> <div class="refsect1 description" id="refsect1-imagick.sparsecolorimage-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::sparseColorImage</strong></span> ( <span class="methodparam"><span class="type">int</span> <code class="parameter">$SPARSE_METHOD</code></span> , <span class="methodparam"><span class="type">array</span> <code class="parameter">$arguments</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"> Given the arguments array containing numeric values this method interpolates the colors found at those coordinates across the whole image using <code class="parameter">sparse_method</code>. This method is available if Imagick has been compiled against ImageMagick version 6.4.5 or newer. </p> </div> <div class="refsect1 parameters" id="refsect1-imagick.sparsecolorimage-parameters"> <h3 class="title">Parameters</h3> <p class="para"> <dl> <dt> <code class="parameter">SPARSE_METHOD</code></dt> <dd> <p class="para"> Refer to this list of <a href="imagick.constants.html#imagick.constants.sparsecolormethod" class="link">sparse method constants</a> </p> </dd> <dt> <code class="parameter">arguments</code></dt> <dd> <p class="para"> An array containing the coordinates. The array is in format <em>array(1,1, 2,45)</em> </p> </dd> <dt> <code class="parameter">channel</code></dt> <dd> <p class="para"> Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine <a href="imagick.constants.html#imagick.constants.channel" class="link">channel constants</a> using bitwise operators. Defaults to <strong><code>Imagick::CHANNEL_DEFAULT</code></strong>. Refer to this list of <a href="imagick.constants.html#imagick.constants.channel" class="link">channel constants</a> </p> </dd> </dl> </p> </div> <div class="refsect1 returnvalues" id="refsect1-imagick.sparsecolorimage-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> Returns <strong><code>TRUE</code></strong> on success. </p> </div> <div class="refsect1 errors" id="refsect1-imagick.sparsecolorimage-errors"> <h3 class="title">Errors/Exceptions</h3> <p class="para"> Throws ImagickException on error. </p> </div> <div class="refsect1 examples" id="refsect1-imagick.sparsecolorimage-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-4033"> <p><strong>Example #1 SPARSECOLORMETHOD_BARYCENTRIC <span class="function"><strong>Imagick::sparseColorImage()</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">function </span><span style="color: #0000BB">renderImageBarycentric2</span><span style="color: #007700">() {<br /> </span><span style="color: #0000BB">$points </span><span style="color: #007700">= [<br /> [</span><span style="color: #0000BB">0.30</span><span style="color: #007700">, </span><span style="color: #0000BB">0.10</span><span style="color: #007700">, </span><span style="color: #DD0000">'red'</span><span style="color: #007700">],<br /> [</span><span style="color: #0000BB">0.10</span><span style="color: #007700">, </span><span style="color: #0000BB">0.80</span><span style="color: #007700">, </span><span style="color: #DD0000">'blue'</span><span style="color: #007700">],<br /> [</span><span style="color: #0000BB">0.70</span><span style="color: #007700">, </span><span style="color: #0000BB">0.60</span><span style="color: #007700">, </span><span style="color: #DD0000">'lime'</span><span style="color: #007700">],<br /> [</span><span style="color: #0000BB">0.80</span><span style="color: #007700">, </span><span style="color: #0000BB">0.20</span><span style="color: #007700">, </span><span style="color: #DD0000">'yellow'</span><span style="color: #007700">],<br /> ];<br /> </span><span style="color: #0000BB">$imagick </span><span style="color: #007700">= </span><span style="color: #0000BB">createGradientImage</span><span style="color: #007700">(<br /> </span><span style="color: #0000BB">400</span><span style="color: #007700">, </span><span style="color: #0000BB">400</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">$points</span><span style="color: #007700">,<br /> \</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">SPARSECOLORMETHOD_BARYCENTRIC<br /> </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 /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-4034"> <p><strong>Example #2 SPARSECOLORMETHOD_BILINEAR <span class="function"><strong>Imagick::sparseColorImage()</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">function </span><span style="color: #0000BB">renderImageBilinear</span><span style="color: #007700">() {<br /> </span><span style="color: #0000BB">$points </span><span style="color: #007700">= [[</span><span style="color: #0000BB">0.30</span><span style="color: #007700">, </span><span style="color: #0000BB">0.10</span><span style="color: #007700">, </span><span style="color: #DD0000">'red'</span><span style="color: #007700">], [</span><span style="color: #0000BB">0.10</span><span style="color: #007700">, </span><span style="color: #0000BB">0.80</span><span style="color: #007700">, </span><span style="color: #DD0000">'blue'</span><span style="color: #007700">], [</span><span style="color: #0000BB">0.70</span><span style="color: #007700">, </span><span style="color: #0000BB">0.60</span><span style="color: #007700">, </span><span style="color: #DD0000">'lime'</span><span style="color: #007700">], [</span><span style="color: #0000BB">0.80</span><span style="color: #007700">, </span><span style="color: #0000BB">0.20</span><span style="color: #007700">, </span><span style="color: #DD0000">'yellow'</span><span style="color: #007700">],];<br /> </span><span style="color: #0000BB">$imagick </span><span style="color: #007700">= </span><span style="color: #0000BB">createGradientImage</span><span style="color: #007700">(</span><span style="color: #0000BB">500</span><span style="color: #007700">, </span><span style="color: #0000BB">500</span><span style="color: #007700">, </span><span style="color: #0000BB">$points</span><span style="color: #007700">, \</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">SPARSECOLORMETHOD_BILINEAR</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 /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-4035"> <p><strong>Example #3 SPARSECOLORMETHOD_SPEPARDS <span class="function"><strong>Imagick::sparseColorImage()</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">function </span><span style="color: #0000BB">renderImageShepards</span><span style="color: #007700">() {<br /> </span><span style="color: #0000BB">$points </span><span style="color: #007700">= [<br /> [</span><span style="color: #0000BB">0.30</span><span style="color: #007700">, </span><span style="color: #0000BB">0.10</span><span style="color: #007700">, </span><span style="color: #DD0000">'red'</span><span style="color: #007700">],<br /> [</span><span style="color: #0000BB">0.10</span><span style="color: #007700">, </span><span style="color: #0000BB">0.80</span><span style="color: #007700">, </span><span style="color: #DD0000">'blue'</span><span style="color: #007700">],<br /> [</span><span style="color: #0000BB">0.70</span><span style="color: #007700">, </span><span style="color: #0000BB">0.60</span><span style="color: #007700">, </span><span style="color: #DD0000">'lime'</span><span style="color: #007700">],<br /> [</span><span style="color: #0000BB">0.80</span><span style="color: #007700">, </span><span style="color: #0000BB">0.20</span><span style="color: #007700">, </span><span style="color: #DD0000">'yellow'</span><span style="color: #007700">],<br /> ];<br /> </span><span style="color: #0000BB">$imagick </span><span style="color: #007700">= </span><span style="color: #0000BB">createGradientImage</span><span style="color: #007700">(</span><span style="color: #0000BB">600</span><span style="color: #007700">, </span><span style="color: #0000BB">600</span><span style="color: #007700">, </span><span style="color: #0000BB">$points</span><span style="color: #007700">, \</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">SPARSECOLORMETHOD_SPEPARDS</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 /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-4036"> <p><strong>Example #4 SPARSECOLORMETHOD_VORONOI <span class="function"><strong>Imagick::sparseColorImage()</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">function </span><span style="color: #0000BB">renderImageVoronoi</span><span style="color: #007700">() {<br /> </span><span style="color: #0000BB">$points </span><span style="color: #007700">= [<br /> [</span><span style="color: #0000BB">0.30</span><span style="color: #007700">, </span><span style="color: #0000BB">0.10</span><span style="color: #007700">, </span><span style="color: #DD0000">'red'</span><span style="color: #007700">],<br /> [</span><span style="color: #0000BB">0.10</span><span style="color: #007700">, </span><span style="color: #0000BB">0.80</span><span style="color: #007700">, </span><span style="color: #DD0000">'blue'</span><span style="color: #007700">],<br /> [</span><span style="color: #0000BB">0.70</span><span style="color: #007700">, </span><span style="color: #0000BB">0.60</span><span style="color: #007700">, </span><span style="color: #DD0000">'lime'</span><span style="color: #007700">],<br /> [</span><span style="color: #0000BB">0.80</span><span style="color: #007700">, </span><span style="color: #0000BB">0.20</span><span style="color: #007700">, </span><span style="color: #DD0000">'yellow'</span><span style="color: #007700">],<br /> ];<br /> </span><span style="color: #0000BB">$imagick </span><span style="color: #007700">= </span><span style="color: #0000BB">createGradientImage</span><span style="color: #007700">(</span><span style="color: #0000BB">500</span><span style="color: #007700">, </span><span style="color: #0000BB">500</span><span style="color: #007700">, </span><span style="color: #0000BB">$points</span><span style="color: #007700">, \</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">SPARSECOLORMETHOD_VORONOI</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 /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-4037"> <p><strong>Example #5 SPARSECOLORMETHOD_BARYCENTRIC <span class="function"><strong>Imagick::sparseColorImage()</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">function </span><span style="color: #0000BB">renderImageBarycentric</span><span style="color: #007700">() {<br /> </span><span style="color: #0000BB">$points </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">, </span><span style="color: #DD0000">'skyblue'</span><span style="color: #007700">],<br /> [-</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: #DD0000">'skyblue'</span><span style="color: #007700">],<br /> [</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: #DD0000">'black'</span><span style="color: #007700">],<br /> ];<br /> </span><span style="color: #0000BB">$imagick </span><span style="color: #007700">= </span><span style="color: #0000BB">createGradientImage</span><span style="color: #007700">(</span><span style="color: #0000BB">600</span><span style="color: #007700">, </span><span style="color: #0000BB">200</span><span style="color: #007700">, </span><span style="color: #0000BB">$points</span><span style="color: #007700">, \</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">SPARSECOLORMETHOD_BARYCENTRIC</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 /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> <div class="example" id="example-4038"> <p><strong>Example #6 createGradientImage is used by other examples. <span class="function"><strong>Imagick::sparseColorImage()</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">function </span><span style="color: #0000BB">createGradientImage</span><span style="color: #007700">(</span><span style="color: #0000BB">$width</span><span style="color: #007700">, </span><span style="color: #0000BB">$height</span><span style="color: #007700">, </span><span style="color: #0000BB">$colorPoints</span><span style="color: #007700">, </span><span style="color: #0000BB">$sparseMethod</span><span style="color: #007700">, </span><span style="color: #0000BB">$absolute </span><span style="color: #007700">= </span><span style="color: #0000BB">false</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">();<br /> </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">newImage</span><span style="color: #007700">(</span><span style="color: #0000BB">$width</span><span style="color: #007700">, </span><span style="color: #0000BB">$height</span><span style="color: #007700">, </span><span style="color: #DD0000">"white"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">setImageFormat</span><span style="color: #007700">(</span><span style="color: #DD0000">"png"</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$barycentricPoints </span><span style="color: #007700">= array();<br /><br /> foreach (</span><span style="color: #0000BB">$colorPoints </span><span style="color: #007700">as </span><span style="color: #0000BB">$colorPoint</span><span style="color: #007700">) {<br /><br /> if (</span><span style="color: #0000BB">$absolute </span><span style="color: #007700">== </span><span style="color: #0000BB">true</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">$barycentricPoints</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$colorPoint</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">];<br /> </span><span style="color: #0000BB">$barycentricPoints</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$colorPoint</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br /> }<br /> else {<br /> </span><span style="color: #0000BB">$barycentricPoints</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$colorPoint</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">] * </span><span style="color: #0000BB">$width</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$barycentricPoints</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$colorPoint</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">] * </span><span style="color: #0000BB">$height</span><span style="color: #007700">;<br /> }<br /><br /> if (</span><span style="color: #0000BB">is_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$colorPoint</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">])) {<br /> </span><span style="color: #0000BB">$imagickPixel </span><span style="color: #007700">= new \</span><span style="color: #0000BB">ImagickPixel</span><span style="color: #007700">(</span><span style="color: #0000BB">$colorPoint</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]);<br /> }<br /> else if (</span><span style="color: #0000BB">$colorPoint</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">] instanceof \</span><span style="color: #0000BB">ImagickPixel</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">$imagickPixel </span><span style="color: #007700">= </span><span style="color: #0000BB">$colorPoint</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">];<br /> }<br /> else{<br /> </span><span style="color: #0000BB">$errorMessage </span><span style="color: #007700">= </span><span style="color: #0000BB">sprintf</span><span style="color: #007700">(<br /> </span><span style="color: #DD0000">"Value %s is neither a string nor an ImagickPixel class. Cannot use as a color."</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">$colorPoint</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]<br /> );<br /><br /> throw new \</span><span style="color: #0000BB">InvalidArgumentException</span><span style="color: #007700">(<br /> </span><span style="color: #0000BB">$errorMessage<br /> </span><span style="color: #007700">);<br /> }<br /><br /> </span><span style="color: #0000BB">$red </span><span style="color: #007700">= </span><span style="color: #0000BB">$imagickPixel</span><span style="color: #007700">-></span><span style="color: #0000BB">getColorValue</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">COLOR_RED</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$green </span><span style="color: #007700">= </span><span style="color: #0000BB">$imagickPixel</span><span style="color: #007700">-></span><span style="color: #0000BB">getColorValue</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">COLOR_GREEN</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$blue </span><span style="color: #007700">= </span><span style="color: #0000BB">$imagickPixel</span><span style="color: #007700">-></span><span style="color: #0000BB">getColorValue</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">COLOR_BLUE</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$alpha </span><span style="color: #007700">= </span><span style="color: #0000BB">$imagickPixel</span><span style="color: #007700">-></span><span style="color: #0000BB">getColorValue</span><span style="color: #007700">(\</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">COLOR_ALPHA</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$barycentricPoints</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$red</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$barycentricPoints</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$green</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$barycentricPoints</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$blue</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$barycentricPoints</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$alpha</span><span style="color: #007700">;<br /> }<br /><br /> </span><span style="color: #0000BB">$imagick</span><span style="color: #007700">-></span><span style="color: #0000BB">sparseColorImage</span><span style="color: #007700">(</span><span style="color: #0000BB">$sparseMethod</span><span style="color: #007700">, </span><span style="color: #0000BB">$barycentricPoints</span><span style="color: #007700">);<br /><br /> return </span><span style="color: #0000BB">$imagick</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.solarizeimage.html">Imagick::solarizeImage</a></div> <div class="next" style="text-align: right; float: right;"><a href="imagick.spliceimage.html">Imagick::spliceImage</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>