<!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>Distorts an image using various distortion methods</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="imagick.displayimages.html">Imagick::displayImages</a></div> <div class="next" style="text-align: right; float: right;"><a href="imagick.drawimage.html">Imagick::drawImage</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.distortimage" class="refentry"> <div class="refnamediv"> <h1 class="refname">Imagick::distortImage</h1> <p class="verinfo">(PECL imagick 2.0.1)</p><p class="refpurpose"><span class="refname">Imagick::distortImage</span> — <span class="dc-title">Distorts an image using various distortion methods</span></p> </div> <div class="refsect1 description" id="refsect1-imagick.distortimage-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="type">bool</span> <span class="methodname"><strong>Imagick::distortImage</strong></span> ( <span class="methodparam"><span class="type">int</span> <code class="parameter">$method</code></span> , <span class="methodparam"><span class="type">array</span> <code class="parameter">$arguments</code></span> , <span class="methodparam"><span class="type">bool</span> <code class="parameter">$bestfit</code></span> )</div> <p class="para rdfs-comment"> Distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usually of the same size as the source image, unless 'bestfit' is set to <strong><code>TRUE</code></strong>. </p> <p class="para"> If 'bestfit' is enabled, and distortion allows it, the destination image is adjusted to ensure the whole source 'image' will just fit within the final destination image, which will be sized and offset accordingly. Also in many cases the virtual offset of the source image will be taken into account in the mapping. </p> <p class="para"> This method is available if Imagick has been compiled against ImageMagick version 6.3.6 or newer. </p> </div> <div class="refsect1 parameters" id="refsect1-imagick.distortimage-parameters"> <h3 class="title">Parameters</h3> <p class="para"> <dl> <dt> <span class="term"><em><code class="parameter">method</code></em></span> <dd> <p class="para"> The method of image distortion. See <a href="imagick.constants.html#imagick.constants.distortion" class="link">distortion constants</a> </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">arguments</code></em></span> <dd> <p class="para"> The arguments for this distortion method </p> </dd> </dt> <dt> <span class="term"><em><code class="parameter">bestfit</code></em></span> <dd> <p class="para"> Attempt to resize destination to fit distorted source </p> </dd> </dt> </dl> </p> </div> <div class="refsect1 returnvalues" id="refsect1-imagick.distortimage-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.distortimage-errors"> <h3 class="title">Errors/Exceptions</h3> <p class="para"> Throws ImagickException on error. </p> </div> <div class="refsect1 examples" id="refsect1-imagick.distortimage-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-3318"> <p><strong>Example #1 Using <span class="function"><strong>Imagick::distortImage()</strong></span>:</strong></p> <div class="example-contents"><p> Distort an image and display to the browser. </p></div> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">/* Create new object */<br /></span><span style="color: #0000BB">$im </span><span style="color: #007700">= new </span><span style="color: #0000BB">Imagick</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">/* Create new checkerboard pattern */<br /></span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">newPseudoImage</span><span style="color: #007700">(</span><span style="color: #0000BB">100</span><span style="color: #007700">, </span><span style="color: #0000BB">100</span><span style="color: #007700">, </span><span style="color: #DD0000">"pattern:checkerboard"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Set the image format to png */<br /></span><span style="color: #0000BB">$im</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: #FF8000">/* Fill new visible areas with transparent */<br /></span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">setImageVirtualPixelMethod</span><span style="color: #007700">(</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">VIRTUALPIXELMETHOD_TRANSPARENT</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Activate matte */<br /></span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">setImageMatte</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Control points for the distortion */<br /></span><span style="color: #0000BB">$controlPoints </span><span style="color: #007700">= array( </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">, <br /> </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">5</span><span style="color: #007700">,<br /><br /> </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageHeight</span><span style="color: #007700">() - </span><span style="color: #0000BB">20</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageHeight</span><span style="color: #007700">() - </span><span style="color: #0000BB">5</span><span style="color: #007700">,<br /><br /> </span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageWidth</span><span style="color: #007700">() - </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageWidth</span><span style="color: #007700">() - </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">20</span><span style="color: #007700">,<br /><br /> </span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageWidth</span><span style="color: #007700">() - </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageHeight</span><span style="color: #007700">() - </span><span style="color: #0000BB">10</span><span style="color: #007700">,<br /> </span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageWidth</span><span style="color: #007700">() - </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">getImageHeight</span><span style="color: #007700">() - </span><span style="color: #0000BB">30</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Perform the distortion */ <br /></span><span style="color: #0000BB">$im</span><span style="color: #007700">-></span><span style="color: #0000BB">distortImage</span><span style="color: #007700">(</span><span style="color: #0000BB">Imagick</span><span style="color: #007700">::</span><span style="color: #0000BB">DISTORTION_PERSPECTIVE</span><span style="color: #007700">, </span><span style="color: #0000BB">$controlPoints</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Ouput the image */<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">$im</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output something similar to:</p></div> <div class="mediaobject"> <div class="imageobject"> <img src="images/c0d23d2d6769e53e24a1b3136c064577-distortImage.png" alt="Output of example : Using Imagick::distortImage()" width="111" height="150" /> </div> </div> </div> </p> </div> <div class="refsect1 seealso" id="refsect1-imagick.distortimage-seealso"> <h3 class="title">See Also</h3> <p class="para"> <ul class="simplelist"> <li class="member"> <span class="function"><a href="imagick.blurimage.html" class="function" rel="rdfs-seeAlso">Imagick::blurImage()</a> - Adds blur filter to image</span></li> <li class="member"> <span class="function"><a href="imagick.motionblurimage.html" class="function" rel="rdfs-seeAlso">Imagick::motionBlurImage()</a> - Simulates motion blur</span></li> <li class="member"> <span class="function"><a href="imagick.radialblurimage.html" class="function" rel="rdfs-seeAlso">Imagick::radialBlurImage()</a> - Radial blurs an image</span></li> </ul> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="imagick.displayimages.html">Imagick::displayImages</a></div> <div class="next" style="text-align: right; float: right;"><a href="imagick.drawimage.html">Imagick::drawImage</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>