PHP实例解析:实现给上传图片加水印图案
给图片增加水印相信大家都了解。这里教大家给上传的图片加水印图案。 <br />用PHP给上传图片加水印的程序是通过判断文件类型建立图形,然后把其复制到原建立的图形上,填充并建立rectangle,以备写入imagestring()或是原已经定好的图像程序当中判断水印类型:一是字符串,另是增加一个图形对象在上面。如果你对PHP的GD库比较熟悉,看懂这篇文章一点都不难了! <br />以下是引用片段: <br />以下为引用的内容:<br />/***************************************************** <br />参数说明: <br />$max_file_size : 上传文件大小限制, 单位BYTE <br />$destination_folder : 上传文件路径 <br />$watermark : 是否附加水印(1为加水印,其他为不加水印); <br />使用说明: <br />1. 将PHP.INI文件里面的\"extension=php_gd2.dll\"一行前面的;号去掉,因为我们要用到GD库; <br />2. 将extension_dir =改为你的php_gd2.dll所在目录; <br />3. http://www.knowsky.com/php.asp; <br />****************************************************/ <br />//上传文件类型列表 <br />$uptypes=array( <br />\'image/jpg\', <br />\'image/jpeg\', <br />\'image/png\', <br />\'image/pjpeg\', <br />\'image/gif\', <br />\'image/bmp\', <br />\'image/x-png\' <br />); <br />$max_file_size=2000000; //上传文件大小限制, 单位BYTE <br />$destination_folder=\"uploadimg/\"; //上传文件路径 <br />$watermark=1; //是否附加水印(1为加水印,其他为不加水印); <br />$watertype=1; //水印类型(1为文字,2为图片) <br />$waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中); <br />$waterstring=\"http://www.xplore.cn/\"; //水印字符串 <br />$waterimg=\"xplore.gif\"; //水印图片 <br />$imgpreview=1; //是否生成预览图(1为生成,其他为不生成); <br />$imgpreviewsize=1/2; //缩略图比例 <br />?> <br /> <br /><html> <br /><head> <br /><title>ZwelL图片上传程序</title> <br /><style type=\"text/css\"> <br /><!-- <br />body <br />{ <br /> font-size: 9pt; <br />} <br />input <br />{ <br /> background-color: #66CCFF; <br /> border: 1px inset #CCCCCC; <br />} <br />--> <br /></style> <br /></head> <br /><body> <br /><form enctype=\"multipart/form-data\" method=\"post\" name=\"upform\"> <br />上传文件: <br /><input name=\"upfile\" type=\"file\"> <br /><input type=\"submit\" value=\"上传\"><br> <br />允许上传的文件类型为:<?=implode(\', \',$uptypes)?> <br /></form> <br /><?php <br />if ($_SERVER[\'REQUEST_METHOD\'] == \'POST\') <br />{ <br /> if (!is_uploaded_file($_FILES[\"upfile\"])) <br /> //是否存在文件 <br /> { <br /> echo \"图片不存在!\"; <br /> exit; <br /> } <br /> $file = $_FILES[\"upfile\"]; <br /> if($max_file_size < $file[\"size\"]) <br /> //检查文件大小 <br /> { <br /> echo \"文件太大!\"; <br /> exit; <br /> } <br /> if(!in_array($file[\"type\"], $uptypes)) <br /> //检查文件类型 <br /> { <br /> echo \"文件类型不符!\".$file[\"type\"]; <br /> exit; <br /> } <br /> if(!file_exists($destination_folder)) <br /> { <br /> mkdir($destination_folder); <br /> } <br /> $filename=$file[\"tmp_name\"]; <br /> $image_size = getimagesize($filename); <br /> $pinfo=pathinfo($file[\"name\"]); <br /> $ftype=$pinfo[\'extension\']; <br /> $destination = $destination_folder.time().\".\".$ftype; <br /> if (file_exists($destination) && $overwrite != true) <br /> { <br /> echo \"同名文件已经存在了\"; <br /> exit; <br /> } <br /> if(!move_uploaded_file ($filename, $destination)) <br /> { <br /> echo \"移动文件出错\"; <br /> exit; <br /> } <br /> $pinfo=pathinfo($destination); <br /> $fname=$pinfo; <br /> echo \" <font color=red>已经成功上传</font><br>文件名:<br /><font color=blue>\".$destination_folder.$fname.\"</font><br>\"; <br /> echo \" 宽度:\".$image_size; <br /> echo \" 长度:\".$image_size; <br /> echo \"<br> 大小:\".$file[\"size\"].\" bytes\"; <br /> if($watermark==1) <br /> { <br /> $iinfo=getimagesize($destination,$iinfo); <br /> $nimage=imagecreatetruecolor($image_size,$image_size); <br /> $white=imagecolorallocate($nimage,255,255,255); <br /> $black=imagecolorallocate($nimage,0,0,0); <br /> $red=imagecolorallocate($nimage,255,0,0); <br /> imagefill($nimage,0,0,$white); <br /> switch ($iinfo) <br /> { <br /> case 1: <br /> $simage =imagecreatefromgif($destination); <br /> break; <br /> case 2: <br /> $simage =imagecreatefromjpeg($destination); <br /> break; <br /> case 3: <br /> $simage =imagecreatefrompng($destination); <br /> break; <br /> case 6: <br /> $simage =imagecreatefromwbmp($destination); <br /> break; <br /> default: <br /> die(\"不支持的文件类型\"); <br /> exit; <br /> } <br /> imagecopy($nimage,$simage,0,0,0,0,$image_size,$image_size); <br /> imagefilledrectangle($nimage,1,$image_size-15,80,$image_size,$white); <br /> switch($watertype) <br /> { <br /> case 1: //加水印字符串 <br /> imagestring($nimage,2,3,$image_size-15,$waterstring,$black); <br /> break; <br /> case 2: //加水印图片 <br /> $simage1 =imagecreatefromgif(\"xplore.gif\"); <br /> imagecopy($nimage,$simage1,0,0,0,0,85,15); <br /> imagedestroy($simage1); <br /> break; <br /> } <br /> switch ($iinfo) <br /> { <br /> case 1: <br /> //imagegif($nimage, $destination); <br /> imagejpeg($nimage, $destination); <br /> break; <br /> case 2: <br /> imagejpeg($nimage, $destination); <br /> break; <br /> case 3: <br /> imagepng($nimage, $destination); <br /> break; <br /> case 6: <br /> imagewbmp($nimage, $destination); <br /> //imagejpeg($nimage, $destination); <br /> break; <br /> } <br /> //覆盖原上传文件 <br /> imagedestroy($nimage); <br /> imagedestroy($simage); <br /> } <br /> if($imgpreview==1) <br /> { <br /> echo \"<br>图片预览:<br>\"; <br /> echo \"<ccid_file values=\"\\\" width=\".($image_size*$imgpreviewsize).\"<br />height=\".($image_size*$imgpreviewsize);\" <br /> echo \" alt=\\\"图片预览:\\r文件名:\".$destination.\"\\r上传时间:\\\" />\"; <br /> } <br />} <br />?> <br /></body> <br /></html> <br /><br /><br /><br /><blockquote class="blockquote">From: http://www.lantuz.com/read.php?tid=4142&newpost=1Powered by PHPWind.com</blockquote>
页:
[1]