<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Image Manipulation Class : CodeIgniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
Image Manipulation Class
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>Image Manipulation Class</h1>

<p>CodeIgniter's Image Manipulation class lets you perform the following actions:</p>

<ul>
<li>Image Resizing</li>
<li>Thumbnail Creation</li>
<li>Image Cropping</li>
<li>Image Rotating</li>
<li>Image Watermarking</li>
</ul>

<p>All three major image libraries are supported:  GD/GD2, NetPBM, and ImageMagick</p>

<p class="important"><strong>Note:</strong> Watermarking is only available using the GD/GD2 library.
In addition, even though other libraries are supported, GD is required in
order for the script to calculate the image properties.  The image processing, however, will be performed with the
library you specify.</p>


<h2>Initializing the Class</h2>

<p>Like most other classes in CodeIgniter, the image class is initialized in your controller
using the <dfn>$this->load-&gt;library</dfn> function:</p>
<code>$this->load->library('image_lib');</code>

<p>Once the library is loaded it will be ready for use.  The image library object you will use to call all functions is: <dfn>$this->image_lib</dfn></p>


<h2>Processing an Image</h2>

<p>Regardless of the type of processing you would like to perform (resizing, cropping, rotation, or watermarking), the general process is
identical. You will set some preferences corresponding to the action you intend to perform, then
call one of four available processing functions.  For example, to create an image thumbnail you'll do this:</p>

<code>$config['image_library'] = 'gd2';<br />
$config['source_image']	= '/path/to/image/mypic.jpg';<br />
$config['create_thumb'] = TRUE;<br />
$config['maintain_ratio'] = TRUE;<br />
$config['width']		= 75;<br />
$config['height']	= 50;<br />
<br />
$this->load->library('image_lib', $config);
<br />
<br />
$this->image_lib->resize();</code>

<p>The above code tells the <dfn>image_resize</dfn> function to look for an image called <em>mypic.jpg</em>
located in the <dfn>source_image</dfn> folder, then create a thumbnail that is 75 X 50 pixels using the GD2 <dfn>image_library</dfn>.
Since the <dfn>maintain_ratio</dfn> option is enabled, the thumb will be as close to the target <dfn>width</dfn> and
<dfn>height</dfn> as possible while preserving the original aspect ratio.  The thumbnail will be called <em>mypic_thumb.jpg</em>
</p>

<p class="important"><strong>Note:</strong> In order for the image class to be allowed to do any processing, the
folder containing the image files must have write permissions.</p>

<p class="important"><strong>Note:</strong> Image processing can require a considerable amount of server memory for some operations. If you are experiencing out of memory errors while processing images you may need to limit their maximum size, and/or adjust PHP memory limits.</p>

<h2>Processing Functions</h2>

<p>There are four available processing functions:</p>

<ul>
<li>$this->image_lib->resize()</li>
<li>$this->image_lib->crop()</li>
<li>$this->image_lib->rotate()</li>
<li>$this->image_lib->watermark()</li>
<li>$this-&gt;image_lib-&gt;clear()</li>
</ul>

<p>These functions return boolean TRUE upon success and FALSE for failure.  If they fail you can retrieve the
error message using this function:</p>

<code>echo $this->image_lib->display_errors();</code>

<p>A good practice is use the processing function conditionally, showing an error upon failure, like this:</p>

<code>if ( ! $this->image_lib->resize())<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $this->image_lib->display_errors();<br />
}</code>

<p>Note:  You can optionally specify the HTML formatting to be applied to the errors, by submitting the opening/closing
tags in the function, like this:</p>

<code>$this->image_lib->display_errors('<var>&lt;p></var>', '<var>&lt;/p></var>');</code>


<h2>Preferences</h2>

<p>The  preferences described below allow you to tailor the image processing to suit your needs.</p>

<p>Note that not all preferences are available for every
function.  For example, the x/y axis preferences are only available for image cropping. Likewise, the width and height
preferences have no effect on cropping.  The "availability" column indicates which functions support a given preference.</p>

<p>Availability Legend:</p>

<ul>
<li><var>R</var> - Image Resizing</li>
<li><var>C</var> - Image Cropping</li>
<li><var>X</var> - Image Rotation</li>
<li><var>W</var> - Image Watermarking</li>

</ul>





<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
<tr>
<th>Preference</th>
<th>Default&nbsp;Value</th>
<th>Options</th>
<th>Description</th>
<th>Availability</th>
</tr>

<tr>
<td class="td"><strong>image_library</strong></td>
<td class="td">GD2</td>
<td class="td">GD, GD2, ImageMagick, NetPBM</td>
<td class="td">Sets the image library to be used.</td>
<td class="td">R, C, X, W</td>
</tr>

<tr>
<td class="td"><strong>library_path</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">Sets the server path to your ImageMagick or NetPBM library.  If you use either of those libraries you must supply the path.</td>
<td class="td">R, C, X</td>
</tr>

<tr>
<td class="td"><strong>source_image</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">Sets the source image name/path.  The path must be a relative or absolute server path, not a URL.</td>
<td class="td">R, C, S, W</td>
</tr>

<tr>
<td class="td"><strong>dynamic_output</strong></td>
<td class="td">FALSE</td>
<td class="td">TRUE/FALSE (boolean)</td>
<td class="td">Determines whether the new image file should be written to disk or generated dynamically.  Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td>
<td class="td">R, C, X, W</td>
</tr>


<tr>
<td class="td"><strong>quality</strong></td>
<td class="td">90%</td>
<td class="td">1 - 100%</td>
<td class="td">Sets the quality of the image. The higher the quality the larger the file size.</td>
<td class="td">R, C, X, W</td>
</tr>


<tr>
<td class="td"><strong>new_image</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">Sets the destination image name/path.  You'll use this preference when creating an image copy. The path must be a relative or absolute server path, not a URL.</td>
<td class="td">R, C, X, W</td>
</tr>

<tr>
<td class="td"><strong>width</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">Sets the width you would like the image set to.</td>
<td class="td">R, C </td>
</tr>

<tr>
<td class="td"><strong>height</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">Sets the height you would like the image set to.</td>
<td class="td">R, C </td>
</tr>

<tr>
<td class="td"><strong>create_thumb</strong></td>
<td class="td">FALSE</td>
<td class="td">TRUE/FALSE (boolean)</td>
<td class="td">Tells the image processing function to create a thumb.</td>
<td class="td">R</td>
</tr>

<tr>
<td class="td"><strong>thumb_marker</strong></td>
<td class="td">_thumb</td>
<td class="td">None</td>
<td class="td">Specifies the thumbnail indicator.  It will be inserted just before the file extension, so mypic.jpg would become mypic_thumb.jpg</td>
<td class="td">R</td>
</tr>

<tr>
<td class="td"><strong>maintain_ratio</strong></td>
<td class="td">TRUE</td>
<td class="td">TRUE/FALSE (boolean)</td>
<td class="td">Specifies whether to maintain the original aspect ratio when resizing or use hard values.</td>
<td class="td">R, C</td>
</tr>


<tr>
<td class="td"><strong>master_dim</strong></td>
<td class="td">auto</td>
<td class="td">auto, width, height</td>
<td class="td">Specifies what to use as the master axis when resizing or creating thumbs. For example, let's say you want to resize an image to 100 X 75 pixels. If the source image size does not allow perfect resizing to those dimensions, this setting determines which axis should be used as the hard value. "auto" sets the axis automatically based on whether the image is taller then wider, or vice versa.</td>
<td class="td">R</td>
</tr>




<tr>
<td class="td"><strong>rotation_angle</strong></td>
<td class="td">None</td>
<td class="td">90, 180, 270, vrt, hor</td>
<td class="td">Specifies the angle of rotation when rotating images.  Note that PHP rotates counter-clockwise, so a 90 degree rotation to the right must be specified as 270.</td>
<td class="td">X</td>
</tr>

<tr>
<td class="td"><strong>x_axis</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">Sets the X coordinate in pixels for image cropping. For example, a setting of 30 will crop an image 30 pixels from the left.</td>
<td class="td">C</td>
</tr>
<tr>
<td class="td"><strong>y_axis</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">Sets the Y coordinate in pixels for image cropping. For example, a setting of 30 will crop an image 30 pixels from the top.</td>
<td class="td">C</td>
</tr>

</table>


<h2>Setting preferences in a config file</h2>

<p>If you prefer not to set preferences using the above method, you can instead put them into a config file.
Simply create a new file called <var>image_lib.php</var>,  add the <var>$config</var>
array in that file. Then save the file in: <var>config/image_lib.php</var> and it will be used automatically. You
will NOT need to use the <dfn>$this->image_lib->initialize</dfn> function if you save your preferences in a config file.</p>


<h2>$this->image_lib->resize()</h2>

<p>The image resizing function lets you resize the original image, create a copy (with or without resizing),
or create a thumbnail image.</p>

<p>For practical purposes there is no difference between creating a copy and creating
a thumbnail except a thumb will have the thumbnail marker as part of the name (ie, mypic_thumb.jpg).</p>

<p>All preferences listed in the table above are available for this function except these three:  rotation_angle, x_axis, and y_axis.</p>

<h3>Creating a Thumbnail</h3>

<p>The resizing function will create a thumbnail file (and preserve the original) if you set this preference to TRUE:</p>

<code>$config['create_thumb'] = TRUE;</code>

<p>This single preference determines whether a thumbnail is created or not.</p>

<h3>Creating a Copy</h3>

<p>The resizing function will create a copy of the image file (and preserve the original) if you set
a path and/or a new filename using this preference:</p>

<code>$config['new_image'] = '/path/to/new_image.jpg';</code>

<p>Notes regarding this preference:</p>
<ul>
<li>If only the new image name is specified it will be placed in the same folder as the original</li>
<li>If only the path is specified, the new image will be placed in the destination with the same name as the original.</li>
<li>If both the path and image name are specified it will placed in its own destination and given the new name.</li>
</ul>


<h3>Resizing the Original Image</h3>

<p>If neither of the two preferences listed above (create_thumb, and new_image) are used, the resizing function will instead
target the original image for processing.</p>


<h2>$this->image_lib->crop()</h2>

<p>The cropping function works nearly identically to the resizing function except it requires that you set
preferences for the X and Y axis (in pixels) specifying where to crop, like this:</p>

<code>$config['x_axis'] = '100';<br />
$config['y_axis'] = '40';</code>

<p>All preferences listed in the table above are available for this function except these:  rotation_angle, width, height, create_thumb, new_image.</p>

<p>Here's an example showing how you might crop an image:</p>

<code>$config['image_library'] = 'imagemagick';<br />
$config['library_path'] = '/usr/X11R6/bin/';<br />
$config['source_image']	= '/path/to/image/mypic.jpg';<br />
$config['x_axis'] = '100';<br />
$config['y_axis'] = '60';<br />
<br />
$this->image_lib->initialize($config);
<br />
<br />
if ( ! $this->image_lib->crop())<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $this->image_lib->display_errors();<br />
}</code>


<p>Note: Without a visual interface it is difficult to crop images, so this function is not very useful
unless you intend to build such an interface.  That's exactly what we did using for the photo
gallery module in ExpressionEngine, the CMS we develop.  We added a JavaScript UI that lets the cropping
area be selected.</p>

<h2>$this->image_lib->rotate()</h2>

<p>The image rotation function requires that the angle of rotation be set via its preference:</p>

<code>$config['rotation_angle'] = '90';</code>

<p>There are 5 rotation options:</p>

<ol>
<li>90 - rotates counter-clockwise by 90 degrees.</li>
<li>180 - rotates counter-clockwise by 180 degrees.</li>
<li>270 - rotates counter-clockwise by 270 degrees.</li>
<li>hor - flips the image horizontally.</li>
<li>vrt - flips the image vertically.</li>
</ol>

<p>Here's an example showing how you might rotate an image:</p>

<code>$config['image_library'] = 'netpbm';<br />
$config['library_path'] = '/usr/bin/';<br />
$config['source_image']	= '/path/to/image/mypic.jpg';<br />
$config['rotation_angle'] = 'hor';<br />
<br />
$this->image_lib->initialize($config);
<br />
<br />
if ( ! $this->image_lib->rotate())<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $this->image_lib->display_errors();<br />
}</code>



<h2>$this-&gt;image_lib-&gt;clear()</h2>
<p>The clear function resets all of the values used when processing an image. You will want to call this if you are processing images in a loop.</p>
<p><code>$this-&gt;image_lib-&gt;clear();</code></p>
<p>&nbsp;</p>
<h1>Image Watermarking</h1>

<p>The Watermarking feature requires the GD/GD2 library.</p>


<h2>Two Types of Watermarking</h2>

<p>There are two types of watermarking that you can use:</p>

<ul>
<li><strong>Text</strong>: The watermark message will be generating using text, either with a True Type font that you specify, or
using the native text output that the GD library supports. If you use the True Type version your GD installation
must be compiled with True Type support (most are, but not all).</li>

<li><strong>Overlay</strong>: The watermark message will be generated by overlaying an image (usually a transparent PNG or GIF)
containing your watermark over the source image.</li>

</ul>


<h2>Watermarking an Image</h2>

<p>Just as with the other functions (resizing, cropping, and rotating) the general process for watermarking
involves setting the preferences corresponding to the action you intend to perform, then
calling the watermark function.  Here is an example:</p>

<code>
$config['source_image']	= '/path/to/image/mypic.jpg';<br />
$config['wm_text'] = 'Copyright 2006 - John Doe';<br />	
$config['wm_type'] = 'text';<br />
$config['wm_font_path'] = './system/fonts/texb.ttf';<br />
$config['wm_font_size']	= '16';<br />
$config['wm_font_color'] = 'ffffff';<br />
$config['wm_vrt_alignment']  = 'bottom';<br />
$config['wm_hor_alignment']  = 'center';<br />
$config['wm_padding']  = '20';<br />
<br />
$this->image_lib->initialize($config);
<br />
<br />
$this->image_lib->watermark();</code>


<p>The above example will use a 16 pixel True Type font to create the text "Copyright 2006 - John Doe".  The watermark
will be positioned at the bottom/center of the image, 20 pixels from the bottom of the image.</p>

<p class="important"><strong>Note:</strong> In order for the image class to be allowed to do any processing, the image file must have &quot;write&quot; file permissions. For example, 777.</p>


<h2>Watermarking Preferences</h2>

<p>This table shown the preferences that are available for both types of watermarking (text or overlay)</p>

<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
<tr>
<th>Preference</th>
<th>Default&nbsp;Value</th>
<th>Options</th>
<th>Description</th>
</tr>

<tr>
<td class="td"><strong>wm_type</strong></td>
<td class="td">text</td>
<td class="td">text, overlay</td>
<td class="td">Sets the type of watermarking that should be used.</td>
</tr>

<tr>
<td class="td"><strong>source_image</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">Sets the source image name/path.  The path must be a relative or absolute server path, not a URL.</td>
</tr>

<tr>
<td class="td"><strong>dynamic_output</strong></td>
<td class="td">FALSE</td>
<td class="td">TRUE/FALSE (boolean)</td>
<td class="td">Determines whether the new image file should be written to disk or generated dynamically.  Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td>
</tr>

<tr>
<td class="td"><strong>quality</strong></td>
<td class="td">90%</td>
<td class="td">1 - 100%</td>
<td class="td">Sets the quality of the image. The higher the quality the larger the file size.</td>
</tr>

<tr>
<td class="td"><strong>padding</strong></td>
<td class="td">None</td>
<td class="td">A number</td>
<td class="td">The amount of padding, set in pixels, that will be applied to the watermark to set it away from the edge of your images.</td>
</tr>

<tr>
<td class="td"><strong>wm_vrt_alignment</strong></td>
<td class="td">bottom</td>
<td class="td">top, middle, bottom</td>
<td class="td">Sets the vertical alignment for the watermark image.</td>
</tr>

<tr>
<td class="td"><strong>wm_hor_alignment</strong></td>
<td class="td">center</td>
<td class="td">left, center, right</td>
<td class="td">Sets the horizontal alignment for the watermark image.</td>
</tr>

<tr>
<td class="td"><strong>wm_hor_offset</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">You may specify a horizontal offset (in pixels) to apply to the watermark position. The offset normally moves the watermark to the right, except if you have your alignment set to "right" then your offset value will move the watermark toward the left of the image.</td>
</tr>

<tr>
<td class="td"><strong>wm_vrt_offset</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">You may specify a vertical offset (in pixels) to apply to the watermark position. The offset normally moves the watermark down, except if you have your alignment set to "bottom" then your offset value will move the watermark toward the top of the image.</td>
</tr>

</table>



<h3>Text Preferences</h3>
<p>This table shown the preferences that are available for the text type of watermarking.</p>


<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
<tr>
<th>Preference</th>
<th>Default&nbsp;Value</th>
<th>Options</th>
<th>Description</th>
</tr>

<tr>
<td class="td"><strong>wm_text</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">The text you would like shown as the watermark.  Typically this will be a copyright notice.</td>
</tr>

<tr>
<td class="td"><strong>wm_font_path</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">The server path to the True Type Font you would like to use.  If you do not use this option, the native GD font will be used.</td>
</tr>

<tr>
<td class="td"><strong>wm_font_size</strong></td>
<td class="td">16</td>
<td class="td">None</td>
<td class="td">The size of the text.  Note: If you are not using the True Type option above, the number is set using a range of 1 - 5.  Otherwise, you can use any valid pixel size for the font you're using.</td>
</tr>

<tr>
<td class="td"><strong>wm_font_color</strong></td>
<td class="td">ffffff</td>
<td class="td">None</td>
<td class="td">The font color, specified in hex.  Note, you must use the full 6 character hex value (ie, 993300), rather than the three character abbreviated version (ie fff).</td>
</tr>


<tr>
<td class="td"><strong>wm_shadow_color</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">The color of the drop shadow, specified in hex. If you leave this blank a drop shadow will not be used. Note, you must use the full 6 character hex value (ie, 993300), rather than the three character abbreviated version (ie fff).</td>
</tr>

<tr>
<td class="td"><strong>wm_shadow_distance</strong></td>
<td class="td">3</td>
<td class="td">None</td>
<td class="td">The distance (in pixels) from the font that the drop shadow should appear.</td>
</tr>

</table>




<h3>Overlay Preferences</h3>
<p>This table shown the preferences that are available for the overlay type of watermarking.</p>


<table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
<tr>
<th>Preference</th>
<th>Default&nbsp;Value</th>
<th>Options</th>
<th>Description</th>
</tr>

<tr>
<td class="td"><strong>wm_overlay_path</strong></td>
<td class="td">None</td>
<td class="td">None</td>
<td class="td">The server path to the image you wish to use as your watermark. Required only if you are using the overlay method.</td>
</tr>

<tr>
<td class="td"><strong>wm_opacity</strong></td>
<td class="td">50</td>
<td class="td">1 - 100</td>
<td class="td">Image opacity. You may specify the opacity (i.e. transparency) of your watermark image. This allows the watermark to be faint and not completely obscure the details from the original image behind it. A 50% opacity is typical.</td>
</tr>

<tr>
<td class="td"><strong>wm_x_transp</strong></td>
<td class="td">4</td>
<td class="td">A number</td>
<td class="td">If your watermark image is a PNG or GIF image, you may specify a color on the image to be "transparent". This setting (along with the next) will allow you to specify that color. This works by specifying the "X" and "Y" coordinate pixel (measured from the upper left) within the image that corresponds to a pixel representative of the color you want to be transparent.</td>
</tr>

<tr>
<td class="td"><strong>wm_y_transp</strong></td>
<td class="td">4</td>
<td class="td">A number</td>
<td class="td">Along with the previous setting, this allows you to specify the coordinate to a pixel representative of the color you want to be transparent.</td>
</tr>
</table>

</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="table.html">HTML Table Class</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="input.html">Input Class</a>
</p>
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006-2010 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p>
</div>

</body>
</html>