<!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>Check the distance between this color and another</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="imagickpixel.ispixelsimilarquantum.html">ImagickPixel::isPixelSimilarQuantum</a></div> <div class="next" style="text-align: right; float: right;"><a href="imagickpixel.setcolor.html">ImagickPixel::setColor</a></div> <div class="up"><a href="class.imagickpixel.html">ImagickPixel</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="imagickpixel.issimilar" class="refentry"> <div class="refnamediv"> <h1 class="refname">ImagickPixel::isSimilar</h1> <p class="verinfo">(PECL imagick 2.0.0)</p><p class="refpurpose"><span class="refname">ImagickPixel::isSimilar</span> — <span class="dc-title">Check the distance between this color and another</span></p> </div> <div class="refsect1 description" id="refsect1-imagickpixel.issimilar-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="type">bool</span> <span class="methodname"><strong>ImagickPixel::isSimilar</strong></span> ( <span class="methodparam"><span class="type"><a href="class.imagickpixel.html" class="type ImagickPixel">ImagickPixel</a></span> <code class="parameter">$color</code></span> , <span class="methodparam"><span class="type">float</span> <code class="parameter">$fuzz</code></span> )</div> <div class="warning"><strong class="warning">Warning</strong><p class="simpara">This function is currently not documented; only its argument list is available. </p></div> <p class="para"> Checks the distance between the color described by this ImagickPixel object and that of the provided object, by plotting their RGB values on the color cube. If the distance between the two points is less than the fuzz value given, the colors are similar. Deprecated in favour of <a href="imagickpixel.ispixelsimilar.html" class="link">ImagickPixel::isPixelSimilar()</a>. </p> </div> <div class="refsect1 parameters" id="refsect1-imagickpixel.issimilar-parameters"> <h3 class="title">Parameters</h3> <p class="para"> <dl> <dt> <code class="parameter">color</code></dt> <dd> <p class="para"> The ImagickPixel object to compare this object against. </p> </dd> <dt> <code class="parameter">fuzz</code></dt> <dd> <p class="para"> The maximum distance within which to consider these colors as similar. The theoretical maximum for this value is the square root of three (1.732). </p> </dd> </dl> </p> </div> <div class="refsect1 returnvalues" id="refsect1-imagickpixel.issimilar-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-imagickpixel.issimilar-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-4122"> <p><strong>Example #1 <span class="function"><strong>ImagickPixel::isSimilar()</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 tests below are written with the maximum distance expressed as 255<br /> // so we need to scale them by the square root of 3 - the diagonal length<br /> // of a unit cube.<br /> </span><span style="color: #0000BB">$root3 </span><span style="color: #007700">= </span><span style="color: #0000BB">1.732050807568877</span><span style="color: #007700">;<br /><br /> </span><span style="color: #0000BB">$tests </span><span style="color: #007700">= array(<br /> [</span><span style="color: #DD0000">'rgb(245, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgb(255, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #0000BB">9 </span><span style="color: #007700">/ </span><span style="color: #0000BB">$root3</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgb(245, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgb(255, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #0000BB">10 </span><span style="color: #007700">/ </span><span style="color: #0000BB">$root3</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgb(0, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgb(7, 7, 0)'</span><span style="color: #007700">, </span><span style="color: #0000BB">9 </span><span style="color: #007700">/ </span><span style="color: #0000BB">$root3</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgb(0, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgb(7, 7, 0)'</span><span style="color: #007700">, </span><span style="color: #0000BB">10 </span><span style="color: #007700">/ </span><span style="color: #0000BB">$root3</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgba(0, 0, 0, 1)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgba(7, 7, 0, 1)'</span><span style="color: #007700">, </span><span style="color: #0000BB">9 </span><span style="color: #007700">/ </span><span style="color: #0000BB">$root3</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgba(0, 0, 0, 1)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgba(7, 7, 0, 1)'</span><span style="color: #007700">, </span><span style="color: #0000BB">10 </span><span style="color: #007700">/ </span><span style="color: #0000BB">$root3</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgb(128, 128, 128)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgb(128, 128, 120)'</span><span style="color: #007700">, </span><span style="color: #0000BB">7 </span><span style="color: #007700">/ </span><span style="color: #0000BB">$root3</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgb(128, 128, 128)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgb(128, 128, 120)'</span><span style="color: #007700">, </span><span style="color: #0000BB">8 </span><span style="color: #007700">/ </span><span style="color: #0000BB">$root3</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgb(0, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgb(255, 255, 255)'</span><span style="color: #007700">, </span><span style="color: #0000BB">254.9</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgb(0, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgb(255, 255, 255)'</span><span style="color: #007700">, </span><span style="color: #0000BB">255</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgb(255, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgb(0, 255, 255)'</span><span style="color: #007700">, </span><span style="color: #0000BB">254.9</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'rgb(255, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgb(0, 255, 255)'</span><span style="color: #007700">, </span><span style="color: #0000BB">255</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">,],<br /> [</span><span style="color: #DD0000">'black'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgba(0, 0, 0)'</span><span style="color: #007700">, </span><span style="color: #0000BB">0.0</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">],<br /> [</span><span style="color: #DD0000">'black'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rgba(10, 0, 0, 1.0)'</span><span style="color: #007700">, </span><span style="color: #0000BB">10.0 </span><span style="color: #007700">/ </span><span style="color: #0000BB">$root3</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">],);<br /><br /> </span><span style="color: #0000BB">$output </span><span style="color: #007700">= </span><span style="color: #DD0000">"<table width='100%' class='infoTable'><thead><br /> <tr><br /> <th><br /> Color 1<br /> </th><br /> <th><br /> Color 2<br /> </th><br /> <th><br /> Test distance * 255<br /> </th><br /> <th><br /> Is within distance<br /> </th><br /> </tr><br /> </thead>"</span><span style="color: #007700">;<br /><br /> </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= </span><span style="color: #DD0000">"<tbody>"</span><span style="color: #007700">;<br /><br /> foreach (</span><span style="color: #0000BB">$tests </span><span style="color: #007700">as </span><span style="color: #0000BB">$testInfo</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">$color1 </span><span style="color: #007700">= </span><span style="color: #0000BB">$testInfo</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">];<br /> </span><span style="color: #0000BB">$color2 </span><span style="color: #007700">= </span><span style="color: #0000BB">$testInfo</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br /> </span><span style="color: #0000BB">$distance </span><span style="color: #007700">= </span><span style="color: #0000BB">$testInfo</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">];<br /> </span><span style="color: #0000BB">$expectation </span><span style="color: #007700">= </span><span style="color: #0000BB">$testInfo</span><span style="color: #007700">[</span><span style="color: #0000BB">3</span><span style="color: #007700">];<br /> </span><span style="color: #0000BB">$testDistance </span><span style="color: #007700">= (</span><span style="color: #0000BB">$distance </span><span style="color: #007700">/ </span><span style="color: #0000BB">255.0</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$color1Pixel </span><span style="color: #007700">= new \</span><span style="color: #0000BB">ImagickPixel</span><span style="color: #007700">(</span><span style="color: #0000BB">$color1</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$color2Pixel </span><span style="color: #007700">= new \</span><span style="color: #0000BB">ImagickPixel</span><span style="color: #007700">(</span><span style="color: #0000BB">$color2</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$isSimilar </span><span style="color: #007700">= </span><span style="color: #0000BB">$color1Pixel</span><span style="color: #007700">-></span><span style="color: #0000BB">isPixelSimilar</span><span style="color: #007700">(</span><span style="color: #0000BB">$color2Pixel</span><span style="color: #007700">, </span><span style="color: #0000BB">$testDistance</span><span style="color: #007700">);<br /><br /><br /> if (</span><span style="color: #0000BB">$isSimilar </span><span style="color: #007700">!== </span><span style="color: #0000BB">$expectation</span><span style="color: #007700">) {<br /> echo </span><span style="color: #DD0000">"Test distance failed. Color [</span><span style="color: #0000BB">$color1</span><span style="color: #DD0000">] compared to color [</span><span style="color: #0000BB">$color2</span><span style="color: #DD0000">] is not within distance </span><span style="color: #0000BB">$testDistance</span><span style="color: #DD0000"> FAILED."</span><span style="color: #007700">.</span><span style="color: #0000BB">NL</span><span style="color: #007700">;<br /> }<br /><br /> </span><span style="color: #0000BB">$layout </span><span style="color: #007700">= </span><span style="color: #DD0000">"<tr><br /> <td>%s</td><br /> <td>%s</td><br /> <td>%s</td><br /> <td style='text-align: center;'>%s</td><br /> </tr>"</span><span style="color: #007700">;<br /> <br /> </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= </span><span style="color: #0000BB">sprintf</span><span style="color: #007700">(<br /> </span><span style="color: #0000BB">$layout</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">$color1</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">$color2</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">$distance</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">$isSimilar </span><span style="color: #007700">? </span><span style="color: #DD0000">'yes' </span><span style="color: #007700">: </span><span style="color: #DD0000">'no'<br /> </span><span style="color: #007700">);<br /> }<br /><br /> </span><span style="color: #0000BB">$output </span><span style="color: #007700">.= </span><span style="color: #DD0000">"</tbody></table>"</span><span style="color: #007700">;<br /> <br /> return </span><span style="color: #0000BB">$output</span><span style="color: #007700">;<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="imagickpixel.ispixelsimilarquantum.html">ImagickPixel::isPixelSimilarQuantum</a></div> <div class="next" style="text-align: right; float: right;"><a href="imagickpixel.setcolor.html">ImagickPixel::setColor</a></div> <div class="up"><a href="class.imagickpixel.html">ImagickPixel</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>