<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>代码收藏 &#187; 水印</title> <atom:link href="http://code.9enjoy.com/tag/%e6%b0%b4%e5%8d%b0/feed/" rel="self" type="application/rss+xml" /><link>http://code.9enjoy.com</link> <description>收集网站开发时常用到的代码(asp,php,js等)，以函数为主</description> <lastBuildDate>Mon, 24 Jan 2011 14:23:49 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.1</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>给图片加水印类</title><link>http://code.9enjoy.com/php/watermark/</link> <comments>http://code.9enjoy.com/php/watermark/#comments</comments> <pubDate>Fri, 15 Aug 2008 09:46:07 +0000</pubDate> <dc:creator>enjoy</dc:creator> <category><![CDATA[php]]></category> <category><![CDATA[php类]]></category> <category><![CDATA[图片]]></category> <category><![CDATA[水印]]></category><guid
isPermaLink="false">http://code.itlearner.com/?p=50</guid> <description><![CDATA[<?php<br/>set_time_limit(3000);<br/>class GDMark {<br/> var $sourcePath; //图片存储路径<br/> var $galleryPath; //图片缩略图存储路径<br/> var $toFile = false; //是否生成文件<br/> var $WaterPos;<br/> var $MarkSign = null;<br/> var $fontName; //使用的TTF字体名称<br/> var $maxWidth = 600; //图片最大宽度<br/>...
]]></description> <content:encoded><![CDATA[<p>set_time_limit(3000);<br
/> class GDMark {<br
/> var $sourcePath; //图片存储路径<br
/> var $galleryPath; //图片缩略图存储路径<br
/> var $toFile = false; //是否生成文件<br
/> var $WaterPos;<br
/> var $MarkSign = null;<br
/> var $fontName; //使用的TTF字体名称<br
/> var $maxWidth = 600; //图片最大宽度<br
/> var $maxHeight = 700; //图片最大高度</p><p>function GDMark($sourcePath, $galleryPath, $WaterPos, $fontPath, $MarkSign=&#8221;) {<br
/> $this-&gt;sourcePath = $sourcePath;<br
/> $this-&gt;galleryPath = $galleryPath;<br
/> $this-&gt;WaterPos=$WaterPos;<br
/> $this-&gt;fontName = $fontPath . &#8220;allegro0.TTF&#8221;;<br
/> $this-&gt;MarkSign = $MarkSign;<br
/> }</p><p>function waterMark($sourFile, $text=&#8217;Mark&#8217;) {<br
/> $imageInfo = $this-&gt;getInfo($sourFile);<br
/> $sourFile = $this-&gt;sourcePath . $sourFile;<br
/> $newName = substr($imageInfo["name"], 0, strrpos($imageInfo["name"], &#8220;.&#8221;)) . &#8220;_mark.jpg&#8221;;<br
/> switch ($imageInfo["type"]) {<br
/> case 1: $img = imagecreatefromgif($sourFile); break;<br
/> case 2: $img = imagecreatefromjpeg($sourFile); break;<br
/> case 3: $img = imagecreatefrompng($sourFile); break;<br
/> default: return 0; break;<br
/> }<br
/> if (!$img) return 0;<br
/> $width = ($this-&gt;maxWidth &gt; $imageInfo["width"]) ? $imageInfo["width"] : $this-&gt;maxWidth;<br
/> $height = ($this-&gt;maxHeight &gt; $imageInfo["height"]) ? $imageInfo["height"] : $this-&gt;maxHeight;<br
/> $srcW = $imageInfo["width"];<br
/> $srcH = $imageInfo["height"];<br
/> if ($srcW * $width &gt; $srcH * $height) $height = round($srcH * $width / $srcW);<br
/> else $width = round($srcW * $height / $srcH);<br
/> if (function_exists(&#8220;imagecreatetruecolor&#8221;)) {<br
/> $new = imagecreatetruecolor($width, $height);<br
/> ImageCopyResampled($new, $img, 0, 0, 0, 0, $width, $height, $imageInfo["width"], $imageInfo["height"]);<br
/> } else {<br
/> $new = imagecreate($width, $height);<br
/> ImageCopyResized($new, $img, 0, 0, 0, 0, $width, $height, $imageInfo["width"], $imageInfo["height"]);<br
/> }<br
/> $white = imageColorAllocate($new, 255, 255, 255);<br
/> $black = imageColorAllocate($new, 0, 0, 0);<br
/> $red = imageColorAllocate($new, 255, 0, 0);<br
/> $gray = imageColorAllocate($new, 161, 161, 161);</p><p>if($this-&gt;MarkSign&lt;&gt;&#8221;){<br
/> $MarkInfo = $this-&gt;getInfo($this-&gt;MarkSign);<br
/> $widthm = $MarkInfo["width"];<br
/> $heightm = $MarkInfo["height"];<br
/> switch ($MarkInfo["type"]) {<br
/> case 1: $mark = imagecreatefromgif($this-&gt;MarkSign); break;<br
/> case 2: $mark = imagecreatefromjpeg($this-&gt;MarkSign); break;<br
/> case 3: $mark = imagecreatefrompng($this-&gt;MarkSign); break;<br
/> default: return 0; break;<br
/> }<br
/> $w = $widthm;<br
/> $h = $heightm;<br
/> }else{<br
/> $fontsize = $width&gt;300?20:10;<br
/> $temp = imagettfbbox($fontsize, 0, $this-&gt;fontName, $text);<br
/> $w = $temp[2] &#8211; $temp[6];<br
/> $h = $temp[3] &#8211; $temp[7];<br
/> unset($temp);<br
/> }</p><p>switch($this-&gt;WaterPos)        {<br
/> case 0://随机<br
/> $posX = rand(0,($width &#8211; $w));<br
/> $posY = rand($h,($height &#8211; $h));<br
/> break;<br
/> case 1://1为顶端居左<br
/> $posX = 0;<br
/> $posY = 0;<br
/> break;<br
/> case 2://2为顶端居中<br
/> $posX = ($width &#8211; $w) / 2;<br
/> $posY = 0;<br
/> break;<br
/> case 3://3为顶端居右<br
/> $posX = $width &#8211; $w;<br
/> $posY = $h;<br
/> break;<br
/> case 4://4为中部居左<br
/> $posX = 0;<br
/> $posY = ($height &#8211; $h) / 2;<br
/> break;<br
/> case 5://5为中部居中<br
/> $posX = ($width &#8211; $w) / 2;<br
/> $posY = ($height &#8211; $h) / 2;<br
/> break;<br
/> case 6://6为中部居右<br
/> $posX = $width &#8211; $w;<br
/> $posY = ($height &#8211; $h) / 2;<br
/> break;<br
/> case 7://7为底端居左<br
/> $posX = 0;<br
/> $posY = $height &#8211; $h;<br
/> break;<br
/> case 8://8为底端居中<br
/> $posX = ($width &#8211; $w) / 2;<br
/> $posY = $height &#8211; $h;<br
/> break;<br
/> case 9://9为底端居右<br
/> $posX = $width &#8211; $w-5;<br
/> $posY = $height &#8211; $h-5;<br
/> break;<br
/> default://随机<br
/> $posX = rand(0, ($width &#8211; $w));<br
/> $posY = rand($h, ($height &#8211; $h));<br
/> break;<br
/> }</p><p>if($this-&gt;MarkSign&lt;&gt;&#8221;){<br
/> imagecopy($new, $mark, $posX, $posY, 0, 0, $widthm, $heightm);<br
/> imagedestroy($mark);<br
/> }else{<br
/> $alpha = imageColorAllocateAlpha($new, 200, 200, 200, 70);<br
/> ImageFilledRectangle($new, 0, $posY-$h, $width, $posY+5, $alpha);<br
/> //                        ImageFilledRectangle($new, 13, $height-20, 15, $height-7, $black);<br
/> ImageTTFText($new, $fontsize, 0, $posX, $posY, $black, $this-&gt;fontName, $text);<br
/> }<br
/> if ($this-&gt;toFile) {<br
/> if (file_exists($this-&gt;galleryPath . $newName)) unlink($this-&gt;galleryPath . $newName);<br
/> ImageJPEG($new, $this-&gt;galleryPath . $newName);<br
/> return $this-&gt;galleryPath . $newName;<br
/> } else {<br
/> ImageJPEG($new,$sourFile);<br
/> }<br
/> ImageDestroy($new);<br
/> ImageDestroy($img);<br
/> }</p><p>function getInfo($file) {<br
/> $file = $this-&gt;sourcePath . $file;<br
/> $data = getimagesize($file);<br
/> $imageInfo["width"] = $data[0];<br
/> $imageInfo["height"]= $data[1];<br
/> $imageInfo["type"] = $data[2];<br
/> $imageInfo["name"] = basename($file);<br
/> return $imageInfo;<br
/> }</p><p>}</p><p>$mark=new GDMark(&#8221;, &#8221;, 9, &#8221;, &#8216;./watermark.png&#8217;);</p><p>$mark-&gt;waterMark(&#8220;2.jpg&#8221;);</p><p>echo &#8220;<img
src="2.jpg" alt="" />&#8220;;</p><p>?&gt;</p> <img
src="http://code.9enjoy.com/?ak_action=api_record_view&id=50&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://code.9enjoy.com/php/watermark/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>php水印加强版</title><link>http://code.9enjoy.com/php/php%e6%b0%b4%e5%8d%b0%e5%8a%a0%e5%bc%ba%e7%89%88/</link> <comments>http://code.9enjoy.com/php/php%e6%b0%b4%e5%8d%b0%e5%8a%a0%e5%bc%ba%e7%89%88/#comments</comments> <pubDate>Wed, 16 Jul 2008 15:47:55 +0000</pubDate> <dc:creator>enjoy</dc:creator> <category><![CDATA[php]]></category> <category><![CDATA[水印]]></category><guid
isPermaLink="false">http://code.itlearner.com/?p=46</guid> <description><![CDATA[<?php <br/>/* <br/>* 功能：PHP图片水印 (水印支持图片或文字) <br/>* 参数： <br/>*      $groundImage    背景图片，即需要加水印的图片，暂只支持GIF,JPG,PNG格式； <br/>*      $waterPos        水印位置，有10种状态，0为随机位置； <br/>*                        1为顶端居左，2为顶端居中，3为顶端居右； <br/>*                        4为中部居左，5为中部居中，6为中部居右； <br/>*                        7为底端居左，8为底端居中，9为底端居右； <br/>...
]]></description> <content:encoded><![CDATA[<p><?php <br/>/* <br/>* 功能：PHP图片水印 (水印支持图片或文字) <br/>* 参数： <br/>*      $groundImage    背景图片，即需要加水印的图片，暂只支持GIF,JPG,PNG格式； <br/>*      $waterPos        水印位置，有10种状态，0为随机位置； <br/>*                        1为顶端居左，2为顶端居中，3为顶端居右； <br/>*                        4为中部居左，5为中部居中，6为中部居右； <br/>*                        7为底端居左，8为底端居中，9为底端居右； <br/>*      $waterImage        图片水印，即作为水印的图片，暂只支持GIF,JPG,PNG格式； <br/>*      $waterText        文字水印，即把文字作为为水印，支持ASCII码，不支持中文； <br/>*      $textFont        文字大小，值为1、2、3、4或5，默认为5； <br/>*      $textColor        文字颜色，值为十六进制颜色值，默认为#FF0000(红色)； <br/>* <br/>* 注意：Support GD 2.0，Support FreeType、GIF Read、GIF Create、JPG 、PNG <br/>*      $waterImage 和 $waterText 最好不要同时使用，选其中之一即可，优先使用 $waterImage。 <br/>*      当$waterImage有效时，参数$waterString、$stringFont、$stringColor均不生效。 <br/>*      加水印后的图片的文件名和 $groundImage 一样。 <br/>* 作者：longware<br/>*/ <br/>function imageWaterMark($groundImage,$waterPos=9,$waterImage=&#8221;",$waterText=&#8221;",$textFont=5,$textColor=&#8221;#FF0000&#8243;) <br/>{ <br/> $isWaterImage = FALSE; <br/> $formatMsg = &#8220;暂不支持该文件格式，请用图片处理软件将图片转换为GIF、JPG、PNG格式。&#8221;; <br/> //读取水印文件 <br/> if(!empty($waterImage) &#038;&#038; file_exists($waterImage)) <br/> { <br/> $isWaterImage = TRUE; <br/> $water_info = getimagesize($waterImage); <br/> $water_w    = $water_info[0];//取得水印图片的宽 <br/> $water_h    = $water_info[1];//取得水印图片的高 <br/> switch($water_info[2])//取得水印图片的格式 <br/> { <br/> case 1:$water_im = imagecreatefromgif($waterImage);break; <br/> case 2:$water_im = imagecreatefromjpeg($waterImage);break; <br/> case 3:$water_im = imagecreatefrompng($waterImage);break; <br/> default:die($formatMsg); <br/> } <br/> } <br/> //读取背景图片 <br/> if(!empty($groundImage) &#038;&#038; file_exists($groundImage)) <br/> { <br/> $ground_info = getimagesize($groundImage); <br/> $ground_w    = $ground_info[0];//取得背景图片的宽 <br/> $ground_h    = $ground_info[1];//取得背景图片的高 <br/> switch($ground_info[2])//取得背景图片的格式 <br/> { <br/> case 1:$ground_im = imagecreatefromgif($groundImage);break; <br/> case 2:$ground_im = imagecreatefromjpeg($groundImage);break; <br/> case 3:$ground_im = imagecreatefrompng($groundImage);break; <br/> default:die($formatMsg); <br/> } <br/> } <br/> else <br/> { <br/> die(&#8220;需要加水印的图片不存在！&#8221;); <br/> } <br/> //水印位置 <br/> if($isWaterImage)//图片水印 <br/> { <br/> $w = $water_w; <br/> $h = $water_h; <br/> $label = &#8220;图片的&#8221;; <br/> } <br/> else//文字水印 <br/> { <br/> $temp = imagettfbbox(ceil($textFont*2.5),0,&#8221;simfang.ttf&#8221;,$waterText);//取得使用 TrueType 字体的文本的范围 <br/> $w = $temp[2] &#8211; $temp[6]; <br/> $h = $temp[3] &#8211; $temp[7]; <br/> unset($temp); <br/> $label = &#8220;文字区域&#8221;; <br/> } <br/> if( ($ground_w<$w) || ($ground_h<$h) ) <br/> { <br/> echo &#8220;需要加水印的图片的长度或宽度比水印&#8221;.$label.&#8221;还小，无法生成水印！&#8221;; <br/> return; <br/> } <br/> switch($waterPos) <br/> { <br/> case 0://随机 <br/> $posX = rand(0,($ground_w &#8211; $w)); <br/> $posY = rand(0,($ground_h &#8211; $h)); <br/> break; <br/> case 1://1为顶端居左 <br/> $posX = 0; <br/> $posY = 0; <br/> break; <br/> case 2://2为顶端居中 <br/> $posX = ($ground_w &#8211; $w) / 2; <br/> $posY = 0; <br/> break; <br/> case 3://3为顶端居右 <br/> $posX = $ground_w &#8211; $w; <br/> $posY = 0; <br/> break; <br/> case 4://4为中部居左 <br/> $posX = 0; <br/> $posY = ($ground_h &#8211; $h) / 2; <br/> break; <br/> case 5://5为中部居中 <br/> $posX = ($ground_w &#8211; $w) / 2; <br/> $posY = ($ground_h &#8211; $h) / 2; <br/> break; <br/> case 6://6为中部居右 <br/> $posX = $ground_w &#8211; $w; <br/> $posY = ($ground_h &#8211; $h) / 2; <br/> break; <br/> case 7://7为底端居左 <br/> $posX = 0; <br/> $posY = $ground_h &#8211; $h; <br/> break; <br/> case 8://8为底端居中 <br/> $posX = ($ground_w &#8211; $w) / 2; <br/> $posY = $ground_h &#8211; $h; <br/> break; <br/> case 9://9为底端居右 <br/> $posX = $ground_w &#8211; $w; <br/> $posY = $ground_h &#8211; $h; <br/> break; <br/> default://随机 <br/> $posX = rand(0,($ground_w &#8211; $w)); <br/> $posY = rand(0,($ground_h &#8211; $h)); <br/> break; <br/> } <br/> //设定图像的混色模式 <br/> imagealphablending($ground_im, true); <br/> if($isWaterImage)//图片水印 <br/> { <br/> imagecopy($ground_im, $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//拷贝水印到目标文件 <br/> } <br/> else//文字水印 <br/> { <br/> if( !empty($textColor) &#038;&#038; (strlen($textColor)==7) ) <br/> { <br/> $R = hexdec(substr($textColor,1,2)); <br/> $G = hexdec(substr($textColor,3,2)); <br/> $B = hexdec(substr($textColor,5)); <br/> } <br/> else <br/> { <br/> die(&#8220;水印文字颜色格式不正确！&#8221;); <br/> } <br/> //$waterText=iconv(&#8216;utf-8&#8242;,&#8217;gbk&#8217;,$waterText);<br/> imagestring ( $ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B)); <br/> } <br/> //生成水印后的图片 <br/> @unlink($groundImage); <br/> switch($ground_info[2])//取得背景图片的格式 <br/> { <br/> case 1:imagegif($ground_im,$groundImage);break; <br/> case 2:imagejpeg($ground_im,$groundImage);break; <br/> case 3:imagepng($ground_im,$groundImage);break; <br/> default:die($errorMsg); <br/> } <br/> //释放内存 <br/> if(isset($water_info)) unset($water_info); <br/> if(isset($water_im)) imagedestroy($water_im); <br/> unset($ground_info); <br/> imagedestroy($ground_im); <br/>}<br/><br/>//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; <br/>if(isset($_FILES) &#038;&#038; !empty($_FILES['userfile']) &#038;&#038; $_FILES['userfile']['size']>0) <br/>{ <br/> $uploadfile = &#8220;./&#8221;.time().&#8221;_&#8221;.$_FILES['userfile']['name']; <br/> if (copy($_FILES['userfile']['tmp_name'], $uploadfile)) <br/> { <br/> echo &#8220;OK<br
/>&#8220;; <br/> //文字水印 <br/> imageWaterMark($uploadfile,9,&#8221;Noname.gif&#8221;,&#8221;www.nj-kingsway.com &#8220;,5,&#8221;#FF0000&#8243;); <br/> //图片水印 <br/> //$waterImage=&#8221;./Hanweb_shuiyin.gif&#8221;;//水印图片路径 <br/> //imageWaterMark($uploadfile,0,$waterImage); <br/> echo &#8220;<img
src=\"".$uploadfile."\" border=\"0\">&#8220;; <br/> } <br/> else <br/> { <br/> echo &#8220;Fail<br
/>&#8220;; <br/> } <br/>} <br/>?> <br/><br
/><form
enctype="multipart/form-data" method="POST">文件:<br
/> <input
name="userfile" type="file"> <br/><br
/> <input
type="submit" value="上传"> <br/></form> <img
src="http://code.9enjoy.com/?ak_action=api_record_view&id=46&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://code.9enjoy.com/php/php%e6%b0%b4%e5%8d%b0%e5%8a%a0%e5%bc%ba%e7%89%88/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk
Database Caching 8/14 queries in 0.004 seconds using disk

Served from: code.itlearner.com @ 2012-02-07 02:52:18 -->
