一个正规的网站,在需要上传图片时,往往都会需要在图片上增加自己网站的LOGO水印。那么如何实现这一步骤呢?首先让我们来了解PHP图片加水印的原理。#t#

通过判断文件类型建立图形,然后把其复制到原建立的图形上,填充并建立rectangle,以备写入imagestring()或是在原已经定好的图像程序当中判断水印类型:一是字符串,另是增加一个图形对象在上面。以下是PHP图片加水印的转载!
参数说明:
$max_file_size : 上传文件大小限制, 单位BYTE
 $destination_folder : 上传文件路径
 $watermark : 是否附加水印(1为加水印,其他为不加水印);
PHP图片加水印使用说明:
1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;
 2. 将extension_dir =改为你的php_gd2.dll所在目录;
PHP图片加水印的代码示例:
- //上传文件类型列表
 - $uptypes=array(
 - 'image/jpg',
 - 'image/jpeg',
 - 'image/png',
 - 'image/pjpeg',
 - 'image/gif',
 - 'image/bmp',
 - 'image/x-png'
 - );
 - $max_file_size=2000000; //上传文件大小限制, 单位BYTE
 - $destination_folder="uploadimg/"; //上传文件路径
 - $watermark=1; //是否附加水印(1为加水印,其他为不加水印);
 - $watertype=1; //水印类型(1为文字,2为图片)
 - $waterposition=1; //水印位置(1为左下角,2为右下角
 - ,3为左上角,4为右上角,5为居中);
 - $waterstring="< A href="http://www.xplore.cn/">
 - http://www.xplore.cn/< /A>"; //水印字符串
 - $waterimg="xplore.gif"; //水印图片
 - $imgpreview=1; //是否生成预览图(1为生成,其他为不生成);
 - $imgpreviewsize=1/2; //缩略图比例
 - ?>
 - < html>
 - < head>
 - < title>ZwelL图片上传程序
 - < style type="text/css">
 - < /style>
 - < /head>
 - < body>
 - < form enctype="multipart/form-data"
 - method="post" name="upform">
 - 上传文件:
 - < input type="submit" value="上传">< br>
 - 允许上传的文件类型为:=implode(', ',$uptypes)?>
 - < /form>
 - < ?php
 - if ($_SERVER['REQUEST_METHOD'] == 'POST')
 - {
 - if (!is_uploaded_file($_FILES["upfile"]
 - [tmp_name]))
 - //是否存在文件
 - {
 - echo "图片不存在!";
 - exit;
 - }
 - $file = $_FILES["upfile"];
 - if($max_file_size < $file["size"])
 - //检查文件大小
 - {
 - echo "文件太大!";
 - exit;
 - }
 - if(!in_array($file["type"], $uptypes))
 - //检查文件类型
 - {
 - echo "文件类型不符!".$file["type"];
 - exit;
 - }
 - if(!file_exists($destination_folder))
 - {
 - mkdir($destination_folder);
 - }
 - $filename=$file["tmp_name"];
 - $image_size = getimagesize($filename);
 - $pinfo=pathinfo($file["name"]);
 - $ftype=$pinfo['extension'];
 - $destination = $destination_folder.
 - time().".".$ftype;
 - if (file_exists($destination) &&
 - $overwrite != true)
 - {
 - echo "同名文件已经存在了";
 - exit;
 - }
 - if(!move_uploaded_file ($filename,
 - $destination))
 - {
 - echo "移动文件出错";
 - exit;
 - }
 - $pinfo=pathinfo($destination);
 - $fname=$pinfo[basename];
 - echo " 已经成功上传
 - < /font>
 
文件名:- < font color=blue>".$destination_folder.
 - $fname."< /font>< br>";
 - echo " 宽度:".$image_size[0];
 - echo " 长度:".$image_size[1];
 - echo "
 
大小:".$file["size"]." bytes";- if($watermark==1)
 - {
 - $iinfo=getimagesize($destination,$iinfo);
 - $nimage=imagecreatetruecolor($image_size[0]
 - ,$image_size[1]);
 - $white=imagecolorallocate($nimage,255,255,255);
 - $black=imagecolorallocate($nimage,0,0,0);
 - $red=imagecolorallocate($nimage,255,0,0);
 - imagefill($nimage,0,0,$white);
 - switch ($iinfo[2])
 - {
 - case 1:
 - $simage =imagecreatefromgif($destination);
 - break;
 - case 2:
 - $simage =imagecreatefromjpeg($destination);
 - break;
 - case 3:
 - $simage =imagecreatefrompng($destination);
 - break;
 - case 6:
 - $simage =imagecreatefromwbmp($destination);
 - break;
 - default:
 - die("不支持的文件类型");
 - exit;
 - }
 - imagecopy($nimage,$simage,0,0,0,0,
 - $image_size[0],$image_size[1]);
 - imagefilledrectangle($nimage,1,
 - $image_size[1]-15,80,$image_size[1],$white);
 - switch($watertype)
 - {
 - case 1: //加水印字符串
 - imagestring($nimage,2,3,$image_size[1]-15,
 - $waterstring,$black);
 - break;
 - case 2: //加水印图片
 - $simage1 =imagecreatefromgif("xplore.gif");
 - imagecopy($nimage,$simage1,0,0,0,0,85,15);
 - imagedestroy($simage1);
 - break;
 - }
 - switch ($iinfo[2])
 - {
 - case 1:
 - //imagegif($nimage, $destination);
 - imagejpeg($nimage, $destination);
 - break;
 - case 2:
 - imagejpeg($nimage, $destination);
 - break;
 - case 3:
 - imagepng($nimage, $destination);
 - break;
 - case 6:
 - imagewbmp($nimage, $destination);
 - //imagejpeg($nimage, $destination);
 - break;
 - }
 - //覆盖原上传文件
 - imagedestroy($nimage);
 - imagedestroy($simage);
 - }
 - if($imgpreview==1)
 - {
 - echo "< br>图片预览:
 
";- echo "< ccid_file values="\" width=".
 - ($image_size[0]*$imgpreviewsize)."
 - height=".($image_size[1]*$imgpreviewsize);"
 - echo " alt=\"图片预览:\r文件名:".
 - $destination."\r上传时间:\" />";
 - }
 - }
 - ?>
 - < /body>
 - < /html>
 
以上这段代码范例就是PHP图片加水印的具体实现方法。
                本文标题:PHP图片加水印代码示例解析
                
                当前路径:http://www.csdahua.cn/qtweb/news5/448855.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网