<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://miaomin.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fmiaomin.spaces.live.com%2fcategory%2fPHP__xa5Graphics%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>苗苗 合作 交流: PHP/Graphics</title><description /><link>http://miaomin.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catPHP__xa5Graphics</link><language>en-US</language><pubDate>Mon, 03 Sep 2007 03:40:18 GMT</pubDate><lastBuildDate>Mon, 03 Sep 2007 03:40:18 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://miaomin.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-8913911617972053559</live:id><live:alias>miaomin</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>图片水印类(续)</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!316.entry</link><description>&lt;span style="color:rgb(0, 0, 0)"&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setGroundImageHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;() &lt;br&gt;    { &lt;br&gt;        switch(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;)  &lt;br&gt;        { &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagecreatefromgif&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagecreatefromjpeg&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;3&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagecreatefrompng&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;                break;  &lt;br&gt;            default: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;throwError&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;NonType&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;);  &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setWaterImageHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;() &lt;br&gt;    { &lt;br&gt;        switch(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImageType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;)  &lt;br&gt;        { &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImageHandle &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagecreatefromgif&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImageHandle &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagecreatefromjpeg&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;3&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImageHandle &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagecreatefrompng&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;                break;  &lt;br&gt;            default: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;throwError&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;NonType&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;);  &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;putWateredImage&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$extFileName&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) &lt;br&gt;    { &lt;br&gt;        switch(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;)  &lt;br&gt;        { &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagegif&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$extFileName&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagejpeg&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$extFileName&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;3&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagepng&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$extFileName&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;.&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;                break;  &lt;br&gt;            default: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;throwError&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;NonType&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;);  &lt;br&gt;        }         &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;destroyHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;() &lt;br&gt;    { &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagedestroy&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        if(isset(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImageHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;)) &lt;br&gt;        { &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagedestroy&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImageHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;makeWater&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$extFileName &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setGroundImageHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(); &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setWaterPos&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(); &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagealphablending&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;true&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;);  &lt;br&gt;        if(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterType &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;== &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) &lt;br&gt;        { &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagettftext&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterTextSize&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;+ &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagecolorallocate&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;hexdec&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;substr&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterTextColor&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;)), &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;hexdec&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;substr&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterTextColor&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;3&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;)), &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;hexdec&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;substr&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterTextColor&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;5&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;))), &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterTextFont&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterText&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        } &lt;br&gt;        else &lt;br&gt;        { &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setWaterImageHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(); &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagecopy&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHandle&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImageHandle &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight&lt;/span&gt;&lt;/font&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;&lt;font face="Courier New"&gt;); &lt;br&gt;        } &lt;br&gt;        &lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//@unlink($this-&amp;gt;groundImage); &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;putWateredImage&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$extFileName&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;destroyHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(); &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;throwError&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$errType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) &lt;br&gt;    { &lt;br&gt;        switch(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$errType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) &lt;br&gt;        { &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;TooSmall&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;errorMsg &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;要打水印图片太小&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;                break; &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;groundImage404&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;errorMsg &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;要打水印图片不存在&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;                break; &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;waterImage404&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;errorMsg &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;水印图片不存在&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;                break; &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;NonGD&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;errorMsg &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;没有安装GD库&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;                break; &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;NonType&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;errorMsg &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;不支持的文件格式&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;                break; &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;WrongColor&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;errorMsg &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;错误的颜色格式&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;                break; &lt;br&gt;            default: &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;errorMsg &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;未知错误&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;        } &lt;br&gt;             &lt;br&gt;        die(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;errorMsg&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        exit(); &lt;br&gt;    } &lt;br&gt;} &lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$h &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= new &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;PhpUpImageWater&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;109901809576343.jpg&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$h&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setWaterImageInfo&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;small_php.gif&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;10&lt;/span&gt;&lt;/font&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;&lt;font face="Courier New"&gt;); &lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//$h-&amp;gt;setWaterTextInfo(&amp;quot;phpup.com&amp;quot;,&amp;quot;#000000&amp;quot;,&amp;quot;10&amp;quot;); &lt;br&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$h&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;makeWater&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;watered_&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;?&amp;gt;&lt;/span&gt; &lt;/font&gt;&lt;/span&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e5%9b%be%e7%89%87%e6%b0%b4%e5%8d%b0%e7%b1%bb(%e7%bb%ad)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!316.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!316.entry</guid><pubDate>Thu, 27 Apr 2006 08:28:41 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!316/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!316.entry#comment</wfw:comment><dcterms:modified>2006-04-27T08:28:41Z</dcterms:modified></item><item><title>图片水印类</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!315.entry</link><description>&lt;p&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;&lt;font face="Courier New"&gt;&amp;lt;?php &lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;/** &lt;br&gt; *  图片水印类 &lt;br&gt; * &lt;br&gt; *  Copyright PhpUp Studio, http://phpup.com, iasky &lt;br&gt; * &lt;br&gt; *  $Id: PhpUpImageWater.php,v 1.00 2006/4/19/ 21:00:57 iasky Exp $ &lt;br&gt; */ &lt;br&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;class &lt;/span&gt;&lt;/font&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;&lt;font face="Courier New"&gt;PhpUpImageWater &lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;{ &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImageWidth&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImageHeight&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImageHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterPosType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterPosX&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterPosY&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterWidth&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterHeight&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImageType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImageHandle&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImageAlpha&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterText&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextColor&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextSize&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextFont&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;    var &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$errorMsg&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;PhpUpImageWater&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImage &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;demo.jpg&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterPosType &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) &lt;br&gt;    { &lt;br&gt;        if(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;false &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;== &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;file_exists&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;)) &lt;br&gt;        { &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;throwError&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;groundImage404&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        } &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;checkGD&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(); &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImage   &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=  &amp;amp;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterType     &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=  &amp;amp;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosType  &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=  &amp;amp;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterPosType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setGroundImageInfo&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(); &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;checkGD&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;() &lt;br&gt;    { &lt;br&gt;        if(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;false &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;== &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;function_exists&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;gd_info&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;)) &lt;br&gt;        { &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;throwError&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;NonGD&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setGroundImageInfo&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;() &lt;br&gt;    { &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImageType   &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=  &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;getimagesize&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageWidth  &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=  &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImageType&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;[&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;]; &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=  &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImageType&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;[&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;]; &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageType   &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=  &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$groundImageType&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;[&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;]; &lt;br&gt;        if(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageWidth &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;&amp;lt; &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;150 &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;or &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;&amp;lt; &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;150&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) &lt;br&gt;        { &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;throwError&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;TooSmall&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setWaterTextInfo&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterText &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;phpup.com&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextColor &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;#000000&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextSize &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;5&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextFont &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;./couri.ttf&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) &lt;br&gt;    { &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterType     &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=  &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;        if(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;strlen&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextColor&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) == &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;7&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) &lt;br&gt;        { &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterTextColor &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &amp;amp;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextColor&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;        } &lt;br&gt;        else &lt;br&gt;        { &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;throwError&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;WrongColor&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        } &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterText       &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=   &amp;amp;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterText&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterTextSize   &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=   &amp;amp;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextSize&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterTextFont   &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=   &amp;amp;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextFont&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextInfo &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;imagettfbbox&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;ceil&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterTextSize&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;*&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1.2&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;), &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterTextFont&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;, &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterText&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;);  &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth    &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=  &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextInfo&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;[&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;4&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;] - &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextInfo&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;[&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;6&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;];  &lt;br&gt;        &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight   &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=  &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextInfo&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;[&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;] - &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextInfo&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;[&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;7&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;];  &lt;br&gt;        unset(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterTextInfo&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setWaterImageInfo&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImage &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;logo.gif&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) &lt;br&gt;    { &lt;br&gt;        if(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;file_exists&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;)) &lt;br&gt;        { &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterType       &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=   &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImage      &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=   &amp;amp;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;; &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImageInfo        &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=   &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;getimagesize&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImage&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth      &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=   &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImageInfo&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;[&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;]; &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight     &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=   &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImageInfo&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;[&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;]; &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterImageType  &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;=   &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImageInfo&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;[&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;]; &lt;br&gt;            unset(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$waterImageInfo&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        } &lt;br&gt;        else &lt;br&gt;        { &lt;br&gt;            &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;throwError&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(221, 0, 0)"&gt;&amp;quot;waterImage404&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;); &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    function &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;setWaterPos&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;() &lt;br&gt;    { &lt;br&gt;        switch(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosType&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;)  &lt;br&gt;        {  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;:&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//随机  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;rand&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageWidth &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;));  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;rand&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;));  &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;1&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;:&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//1为顶端居左  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;:&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//2为顶端居中  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= (&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageWidth &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) / &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;3&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;:&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//3为顶端居右  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageWidth &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;4&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;:&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//4为中部居左  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= (&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) / &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;5&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;:&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//5为中部居中  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= (&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageWidth &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) / &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= (&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) / &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;6&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;:&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//6为中部居右  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageWidth &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= (&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) / &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;7&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;:&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//7为底端居左  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;* &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;rand&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;115&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;125&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) / &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;100&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;8&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;:&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//8为底端居中  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= (&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageWidth &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) / &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;2&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;* &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;rand&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;115&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;125&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) / &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;100&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                break;  &lt;br&gt;            case &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;9&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;:&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//9为底端居右  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageWidth &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;;  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;* &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;rand&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;115&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;120&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;) / &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;100&lt;/span&gt;&lt;/font&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;&lt;font face="Courier New"&gt;;  &lt;br&gt;                break;  &lt;br&gt;            default:&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(255, 128, 0)"&gt;//随机  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosX &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;rand&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageWidth &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterWidth&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;));  &lt;br&gt;                &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterPosY &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;= &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;rand&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;0&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;,(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;groundImageHeight &lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;- &lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;$this&lt;/span&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;waterHeight&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;));      &lt;br&gt;        } &lt;br&gt;    } &lt;br&gt;&lt;br&gt;    &lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;&lt;/span&gt; &lt;/font&gt;&lt;/span&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e5%9b%be%e7%89%87%e6%b0%b4%e5%8d%b0%e7%b1%bb&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!315.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!315.entry</guid><pubDate>Thu, 27 Apr 2006 08:27:54 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!315/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!315.entry#comment</wfw:comment><dcterms:modified>2006-04-27T08:27:54Z</dcterms:modified></item><item><title>PHP图像处理--最强的类</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!292.entry</link><description>&lt;code&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&lt;span style="color:rgb(0, 119, 0)"&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&lt;span style="color:rgb(0, 0, 187)"&gt;demo:&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;
&lt;div&gt;
&lt;div&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;require_once &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;imgfilter.inc.php&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;;&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;$chain &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;=&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt; array();&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;//&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;$chain[] = array(&amp;quot;resize&amp;quot; ,array(&amp;quot;width&amp;quot;=&amp;gt;&amp;quot;80&amp;quot;, &amp;quot;height&amp;quot;=&amp;gt;&amp;quot;130&amp;quot;));&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;//&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;$chain[] = array(&amp;quot;roundcorner2&amp;quot;,array(&amp;quot;radius&amp;quot;=&amp;gt;&amp;quot;500px&amp;quot;,&amp;quot;transparent&amp;quot;=&amp;gt;&amp;quot;100&amp;quot;));&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;//&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;$chain[] = array( &amp;quot;blend&amp;quot;, array(&amp;quot;background&amp;quot;=&amp;gt;&amp;quot;#555555&amp;quot;));&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;//&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;$chain[] = array(&amp;quot;cropsquare&amp;quot;);&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;//&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;$chain[] = array(&amp;quot;border&amp;quot;, array(&amp;quot;color&amp;quot;=&amp;gt;&amp;quot;#FF0000&amp;quot;));&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;//&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;$chain[] = array(&amp;quot;grayscale&amp;quot;);&lt;/span&gt;&lt;span style="color:rgb(0, 128, 0)"&gt;&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;$chain[] &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;=&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt; array(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;overlay&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;,array(&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;overlay&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;=&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;add_green_white_195x63.png&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;));&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;$m &lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;=&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt; &lt;/span&gt;&lt;span style="color:rgb(0, 0, 255)"&gt;new&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt; ImageModifier($chain);&lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;$m&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;load(SITE_ROOT.&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;MyTest/imgfilter/Nike_Swoosh_bg.jpg&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;); &lt;br&gt;&lt;img src="http://blog.handsbrain.com/Images/OutliningIndicators/None.gif" align=top&gt;echo $m&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:rgb(0, 0, 0)"&gt;getTag();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;br&gt;
其中&lt;font color="#0000cc"&gt;$chain&lt;/font&gt;数组是参数设定,然后直接调用原图像进行处理,还有缓存功能.效率也非常高.&lt;br&gt;&lt;br&gt;这个类的源码,点击&lt;a href="http://www.handsbrain.com/imgfilter.inc.html"&gt;这里&lt;/a&gt;&lt;br&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+PHP%e5%9b%be%e5%83%8f%e5%a4%84%e7%90%86--%e6%9c%80%e5%bc%ba%e7%9a%84%e7%b1%bb&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!292.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!292.entry</guid><pubDate>Mon, 03 Apr 2006 07:06:25 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!292/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!292.entry#comment</wfw:comment><dcterms:modified>2006-04-03T07:06:25Z</dcterms:modified></item><item><title>用PHP动态生成Flash动画</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!240.entry</link><description>&lt;div&gt;
&lt;p&gt;&lt;a href="http://phpup.com/phparticle/show-article-314/"&gt;&lt;u&gt;&lt;font color="#0000ff" size=3&gt;http://phpup.com/phparticle/show-article-314/&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;
&lt;p&gt;&lt;font size=3&gt;Ming库是完全免费的，我们可以到创作者的网站下载，地址是：&lt;/font&gt;&lt;a href="http://www.opaque.net/ming/"&gt;&lt;u&gt;&lt;font color="#0000ff" size=3&gt;http://www.opaque.net/ming/&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font size=3&gt;，该网站有详细的使用手册和帮助，在使用前，请先看看安装和配置说明，地址是：&lt;/font&gt;&lt;a href="http://www.opaque.net/ming/install.html"&gt;&lt;u&gt;&lt;font color="#0000ff" size=3&gt;http://www.opaque.net/ming/install.html&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font size=3&gt;。另外，在PHP网站上也有使用手册和详细说明，地址是：&lt;/font&gt;&lt;a href="http://www.php.net/ming"&gt;&lt;u&gt;&lt;font color="#0000ff" size=3&gt;http://www.php.net/ming&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font size=3&gt;。 &lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt; &lt;/font&gt;
&lt;p&gt;&lt;a href="http://info.westpower.com.cn/cgi-bin/GInfo.dll?DispInfo&amp;amp;w=westpower&amp;amp;nid=448386"&gt;&lt;u&gt;&lt;font color="#0000ff" size=3&gt;http://info.westpower.com.cn/cgi-bin/GInfo.dll?DispInfo&amp;amp;w=westpower&amp;amp;nid=448386&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font size=3&gt;VC中利用FLASH制作图声并茂的动画程序&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e7%94%a8PHP%e5%8a%a8%e6%80%81%e7%94%9f%e6%88%90Flash%e5%8a%a8%e7%94%bb&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!240.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!240.entry</guid><pubDate>Thu, 16 Feb 2006 02:42:04 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!240/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!240.entry#comment</wfw:comment><dcterms:modified>2006-02-16T02:42:04Z</dcterms:modified></item><item><title>[PHP] Image fun</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!166.entry</link><description>&lt;div&gt;
&lt;p&gt;&lt;font size=3&gt;Here are some examples of image manipulation using the GD library, more specifically these are pixel operations. Pixel operation meaning doing something to a pixel in an image with regards to this pixel only, not taking into account the neighbours.&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;An example pixel operation is making a negative image. You take every pixel in an image and substitute it with its opposite color pixel.&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;OK, so how is this thing working. Pretty simple. I take a PNG image, go through every pixel of this image and call a function passing the pixel as a parameter. The callback function returns a new pixel. I take all returned pixels and create a new image.&lt;/font&gt;
&lt;h2&gt;&lt;font size=3&gt;Pixel class&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font size=3&gt;To get started I have a pixel class. It simply contains three integer values, the values of red, green and blue the pixel has.&lt;/font&gt;&lt;pre&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;lt;?php
&lt;/span&gt;&lt;span&gt;class &lt;/span&gt;&lt;span&gt;Pixel &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;{
    &lt;/span&gt;&lt;span&gt;function &lt;/span&gt;&lt;span&gt;Pixel&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$r&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$g&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$b&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;)
    {
        &lt;/span&gt;&lt;span&gt;$this&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$r&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;255&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; ? &lt;/span&gt;&lt;span&gt;255&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span&gt;$r&lt;/span&gt;&lt;span&gt; &amp;lt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; ? &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;)(&lt;/span&gt;&lt;span&gt;$r&lt;/span&gt;&lt;span&gt;))&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
        &lt;/span&gt;&lt;span&gt;$this&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;g&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$g&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;255&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; ? &lt;/span&gt;&lt;span&gt;255&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span&gt;$g&lt;/span&gt;&lt;span&gt; &amp;lt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; ? &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;)(&lt;/span&gt;&lt;span&gt;$g&lt;/span&gt;&lt;span&gt;))&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
        &lt;/span&gt;&lt;span&gt;$this&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$b&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;255&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; ? &lt;/span&gt;&lt;span&gt;255&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;((&lt;/span&gt;&lt;span&gt;$b&lt;/span&gt;&lt;span&gt; &amp;lt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; ? &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;)(&lt;/span&gt;&lt;span&gt;$b&lt;/span&gt;&lt;span&gt;))&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Courier New" size=3&gt;;
    &lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;}
}
&lt;/span&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font size=3&gt;This class has only one method, the constructor of the class, which takes care to sanitize the RGB values.&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;To create a red pixel, you simply do:&lt;/font&gt;&lt;pre&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;lt;?php
&lt;/span&gt;&lt;span&gt;$red&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;new &lt;/span&gt;&lt;span&gt;Pixel&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;255&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
&lt;/span&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;h2&gt;&lt;font size=3&gt;The pixel operations class and main method&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font size=3&gt;Then I have a class that will do the actual operations, I call the Image_PixelOperations. I didn't go through making a nice interface for reading and writing different file formats, I was thinking that this class can be developed further and based on PEAR's Image_Transform, which has tools for opening, validating, displaying, writing image files. What I needed the most was a simple method that opens a PNG, goes through every pixel, calls a function, gets a new pixel and writes the pixel to a new image. Hence, the &lt;code&gt;pixelOperation&lt;/code&gt; method:&lt;/font&gt;&lt;pre&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;lt;?php
&lt;/span&gt;&lt;span&gt;class &lt;/span&gt;&lt;span&gt;Image_PixelOperations &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;{
	
    &lt;/span&gt;&lt;span&gt;function &lt;/span&gt;&lt;span&gt;pixelOperation&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;(
            &lt;/span&gt;&lt;span&gt;$input_image&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
            &lt;/span&gt;&lt;span&gt;$output_image&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
            &lt;/span&gt;&lt;span&gt;$operation_callback&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
            &lt;/span&gt;&lt;span&gt;$factor&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Courier New" size=3&gt;false
            &lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;)
    {
	
        &lt;/span&gt;&lt;span&gt;$image&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;imagecreatefrompng&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$input_image&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
        &lt;/span&gt;&lt;span&gt;$x_dimension&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;imagesx&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$image&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
        &lt;/span&gt;&lt;span&gt;$y_dimension&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;imagesy&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$image&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
        &lt;/span&gt;&lt;span&gt;$new_image&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;imagecreatetruecolor&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$x_dimension&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$y_dimension&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
	
        &lt;/span&gt;&lt;span&gt;if &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$operation_callback&lt;/span&gt;&lt;span&gt; == &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;contrast&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;) {
            &lt;/span&gt;&lt;span&gt;$average_luminance&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;$this&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;getAverageLuminance&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$image&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
        &lt;/span&gt;&lt;span&gt;} &lt;/span&gt;&lt;span&gt;else &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;{
            &lt;/span&gt;&lt;span&gt;$average_luminance&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Courier New" size=3&gt;;
        &lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;}
	
        &lt;/span&gt;&lt;span&gt;for &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$x&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;$x&lt;/span&gt;&lt;span&gt; &amp;lt; &lt;/span&gt;&lt;span&gt;$x_dimension&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;$x&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;) {
            &lt;/span&gt;&lt;span&gt;for &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$y&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;$y&lt;/span&gt;&lt;span&gt; &amp;lt; &lt;/span&gt;&lt;span&gt;$y_dimension&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;span&gt;$y&lt;/span&gt;&lt;span&gt;++&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;) {
	
                &lt;/span&gt;&lt;span&gt;$rgb&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;imagecolorat&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$image&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$x&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$y&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
                &lt;/span&gt;&lt;span&gt;$r&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$rgb&lt;/span&gt;&lt;span&gt; &amp;gt;&amp;gt; &lt;/span&gt;&lt;span&gt;16&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; &amp;amp; &lt;/span&gt;&lt;span&gt;0xFF&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
                &lt;/span&gt;&lt;span&gt;$g&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$rgb&lt;/span&gt;&lt;span&gt; &amp;gt;&amp;gt; &lt;/span&gt;&lt;span&gt;8&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; &amp;amp; &lt;/span&gt;&lt;span&gt;0xFF&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
                &lt;/span&gt;&lt;span&gt;$b&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;$rgb&lt;/span&gt;&lt;span&gt; &amp;amp; &lt;/span&gt;&lt;span&gt;0xFF&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
	
                &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;new &lt;/span&gt;&lt;span&gt;Pixel&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$r&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$g&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$b&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
                &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;call_user_func&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;(
                    &lt;/span&gt;&lt;span&gt;$operation_callback&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                    &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                    &lt;/span&gt;&lt;span&gt;$factor&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Courier New" size=3&gt;,
                    &lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;$average_luminance
                &lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
	
                &lt;/span&gt;&lt;span&gt;$color&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;imagecolorallocate&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;(
                    &lt;/span&gt;&lt;span&gt;$image&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                    &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                    &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;g&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                    &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;b
                &lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
                &lt;/span&gt;&lt;span&gt;imagesetpixel&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$new_image&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$x&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$y&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$color&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Courier New" size=3&gt;;
            &lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;}
	
        }
	
        &lt;/span&gt;&lt;span&gt;imagepng&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$new_image&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$output_image&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Courier New" size=3&gt;;
    &lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;}
}
	
&lt;/span&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font size=3&gt;The method takes a filename, it is not doing any validation, it assumes it's a valid PNG file. The second parameter is the output filename. The third is the callback function that will be called on every pixel and the last parameter is any additional parameter we want to pass to the callback function.&lt;br&gt;The average luminance is something specific to the &amp;quot;contrast&amp;quot; operation, so it's no too important for what pixelOrerations does.&lt;/font&gt;
&lt;h2&gt;&lt;font size=3&gt;Adding noise&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font size=3&gt;Time for writing the first callback, the addNoise method. Adding noise to an image means adding a random value to each channel of a pixel. (If you're wondering, the value of red in a pixel is called a channel, and so are the blue and the green). Here goes the &lt;code&gt;addNoise&lt;/code&gt; implementation.&lt;/font&gt;&lt;pre&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;lt;?php
    &lt;/span&gt;&lt;span&gt;function &lt;/span&gt;&lt;span&gt;addNoise&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$factor&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;)
    {
        &lt;/span&gt;&lt;span&gt;$random&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;mt_rand&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;$factor&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$factor&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
        &lt;/span&gt;&lt;span&gt;return new &lt;/span&gt;&lt;span&gt;Pixel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;(
                    &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt; + &lt;/span&gt;&lt;span&gt;$random&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                    &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;g&lt;/span&gt;&lt;span&gt; + &lt;/span&gt;&lt;span&gt;$random&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                    &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;span&gt; + &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;$random
                &lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Courier New" size=3&gt;;
    &lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;}
&lt;/span&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font size=3&gt;What we have here is generation of a random value in a user-specified range and adding the random value to the pixel. User-specified range is a number between 0 and 255, where 0 means less noise and 255 means more noise. Well, 0 means no noise and 255 means a lot of noise, 255 is not a boundary, you can go above and the more you go the more you get noise only and pretty much nothing of the original image.&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;Let's test! I have the simplest of HTML forms:&lt;/font&gt;&lt;pre&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;form &lt;/span&gt;&lt;span&gt;method&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;get&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span&gt;input &lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;image&lt;/span&gt;&lt;span&gt;&amp;quot; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;/&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span&gt;input &lt;/span&gt;&lt;span&gt;type&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;submit&lt;/span&gt;&lt;span&gt;&amp;quot; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;/&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span&gt;form&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font size=3&gt;I specify the image name in the form and submit.&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;Then if something was submitted I create an object on the pixel operation class:&lt;/font&gt;&lt;pre&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;lt;?php
&lt;/span&gt;&lt;span&gt;if &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;empty&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$_GET&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;image&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;])) {
	
    &lt;/span&gt;&lt;span&gt;$po&lt;/span&gt;&lt;span&gt; =&amp;amp; &lt;/span&gt;&lt;span&gt;new &lt;/span&gt;&lt;span&gt;Image_PixelOperations&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Courier New" size=3&gt;;
	
&lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;}
&lt;/span&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font size=3&gt;Then I display the original image, call the pixelOperation method and display the result:&lt;/font&gt;&lt;pre&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;lt;?php
    &lt;/span&gt;&lt;span&gt;echo &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;Original: &amp;lt;br /&amp;gt;&amp;lt;img src=&amp;quot;&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;$_GET&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;image&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt; .&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;&amp;quot; /&amp;gt;&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
    &lt;/span&gt;&lt;span&gt;echo &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;&amp;lt;hr /&amp;gt;&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Courier New" size=3&gt;;
	
    &lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;// noise
    &lt;/span&gt;&lt;span&gt;$noise&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;100&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
    &lt;/span&gt;&lt;span&gt;$po&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;pixelOperation&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$_GET&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;image&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;result_noise.png&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;array&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$po&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;addNoise&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$noise&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
    &lt;/span&gt;&lt;span&gt;echo &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;Add noise (factor &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;$noise&lt;/span&gt;&lt;span&gt; .&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;): &amp;lt;br /&amp;gt;&amp;lt;img src=&amp;quot;result_noise.png&amp;quot; /&amp;gt;&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
    &lt;/span&gt;&lt;span&gt;echo &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;&amp;lt;hr /&amp;gt;&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
	
&lt;/span&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font size=3&gt;The result is:&lt;br&gt;&lt;img src="http://www.phpied.com/files/pixels/noise.png"&gt;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;Adding more or less noise gives the following results where the first one has a noise factor of 20 and the second one, 500:&lt;br&gt;&lt;img src="http://www.phpied.com/files/pixels/result_noise_20.png"&gt;&lt;br&gt;and&lt;br&gt;&lt;img src="http://www.phpied.com/files/pixels/result_noise_500.png"&gt;&lt;/font&gt;
&lt;h2&gt;&lt;font size=3&gt;Brightness&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font size=3&gt;Next, adjusting brightness. This is nothing but adding the same integer to each channel of each and every pixel. If we add, we brighten the image, if we substract, we darken the image. The callback method is:&lt;/font&gt;&lt;pre&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;lt;?php
    &lt;/span&gt;&lt;span&gt;function &lt;/span&gt;&lt;span&gt;adjustBrightness&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$factor&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;)
    {
	
        &lt;/span&gt;&lt;span&gt;return new &lt;/span&gt;&lt;span&gt;Pixel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;(
                    &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;span&gt; + &lt;/span&gt;&lt;span&gt;$factor&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                    &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;g&lt;/span&gt;&lt;span&gt; + &lt;/span&gt;&lt;span&gt;$factor&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                    &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;span&gt; + &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;$factor
                &lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span&gt;&lt;font face="Courier New" size=3&gt;;
    &lt;/font&gt;&lt;/span&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;}
&lt;/span&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font size=3&gt;To test this, we do:&lt;/font&gt;&lt;pre&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;lt;?php
    &lt;/span&gt;&lt;span&gt;$brightness&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;50&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
    &lt;/span&gt;&lt;span&gt;$po&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;pixelOperation&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$_GET&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;image&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;result_bright.png&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;array&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$po&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;adjustBrightness&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$brightness&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
    &lt;/span&gt;&lt;span&gt;echo &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;Brighten: &amp;lt;br /&amp;gt;&amp;lt;img src=&amp;quot;result_bright.png&amp;quot; /&amp;gt;&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
    &lt;/span&gt;&lt;span&gt;$brightness&lt;/span&gt;&lt;span&gt; = -&lt;/span&gt;&lt;span&gt;50&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
    &lt;/span&gt;&lt;span&gt;$po&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;pixelOperation&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$_GET&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;image&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;result_dark.png&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;array&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$po&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;adjustBrightness&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$brightness&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
    &lt;/span&gt;&lt;span&gt;echo &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;&amp;lt;br /&amp;gt;Darken: &amp;lt;br /&amp;gt;&amp;lt;img src=&amp;quot;result_dark.png&amp;quot; /&amp;gt;&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
    &lt;/span&gt;&lt;span&gt;echo &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;&amp;lt;hr /&amp;gt;&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
&lt;/span&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font size=3&gt;Which gives us:&lt;br&gt;&lt;img src="http://www.phpied.com/files/pixels/result_bright.png"&gt;&lt;br&gt;and&lt;br&gt;&lt;img src="http://www.phpied.com/files/pixels/result_dark.png"&gt;&lt;/font&gt;
&lt;h2&gt;&lt;font size=3&gt;Swap colors&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font size=3&gt;Next, colors swapping. This means for example take the amount of red in a pixel and replace it with the amount of blue in the same pixel. So there are these possibilities for swapping:&lt;/font&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font size=3&gt;RGB to RBG&lt;/font&gt;
&lt;li&gt;&lt;font size=3&gt;RGB to BGR&lt;/font&gt;
&lt;li&gt;&lt;font size=3&gt;RGB to BRG&lt;/font&gt;
&lt;li&gt;&lt;font size=3&gt;RGB to GBR&lt;/font&gt;
&lt;li&gt;&lt;font size=3&gt;RGB to GRB&lt;/font&gt;&lt;/ul&gt;
&lt;p&gt;&lt;font size=3&gt;The method definition is pretty simple:&lt;/font&gt;&lt;pre&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;&amp;lt;?php
    &lt;/span&gt;&lt;span&gt;function &lt;/span&gt;&lt;span&gt;swapColors&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;$factor&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;)
    {
	
        &lt;/span&gt;&lt;span&gt;switch &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;$factor&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;) {
            &lt;/span&gt;&lt;span&gt;case &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;rbg&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;:
                &lt;/span&gt;&lt;span&gt;return new &lt;/span&gt;&lt;span&gt;Pixel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;(
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;g
                        &lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
                &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
            &lt;/span&gt;&lt;span&gt;case &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;bgr&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;:
                &lt;/span&gt;&lt;span&gt;return new &lt;/span&gt;&lt;span&gt;Pixel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;(
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;g&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;r
                        &lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
                &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
            &lt;/span&gt;&lt;span&gt;case &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;brg&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;:
                &lt;/span&gt;&lt;span&gt;return new &lt;/span&gt;&lt;span&gt;Pixel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;(
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;r&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;g
                        &lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
                &lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;;
            &lt;/span&gt;&lt;span&gt;case &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;gbr&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;:
                &lt;/span&gt;&lt;span&gt;return new &lt;/span&gt;&lt;span&gt;Pixel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;(
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;g&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt;b&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;span&gt;,
                            &lt;/span&gt;&lt;span&gt;$pixel&lt;/span&gt;&lt;span&gt