立即学习“PHP免费学习笔记(深入)”;
我们在做网站的时候,都会遇到需要将网站上传的图片附加上水印,如果一个一个的手工加水印肯定非常麻烦,也是不实际的操作。那么,我们今天就向大家接受PHP给图片加水印的具体方法,简化操作步骤。
立即学习“PHP免费学习笔记(深入)”;
- 给图片加水印的具体代码如下:
立即学习“PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
<ol class="dp-xml"><li class="alt"><span><strong><font color="#006699"><span class="tag"><?</span><span class="tag-name">php</span></font></strong><span> </span></span></li><li class=""><span>/****************************************************************************** </span></li><li class="alt"><span> </span></li><li class=""><span>参数说明: </span></li><li class="alt"><span>$max_file_size : 上传文件大小限制, 单位BYTE </span></li><li class=""><span>$destination_folder : 上传文件路径 </span></li><li class="alt"><span>$watermark : 是否附加水印(1为加水印,其他为不加水印); </span></li><li class=""><span> </span></li><li class="alt"><span>使用说明: </span></li><li class=""><span>1. 将PHP.INI文件里面的"</span><span class="attribute"><font color="#ff0000">extension</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">php_gd2</font></span><span>.dll"一行前面的;号去掉,因为我们要用到GD库; </span></li><li class="alt"><span>2. 将</span><span class="attribute"><font color="#ff0000">extension_dir</font></span><span> =改为你的php_gd2.dll所在目录; </span></li><li class=""><span>******************************************************************************/ </span></li><li class="alt"><span> </span></li><li class=""><span>//上传文件类型列表 </span></li><li class="alt"><span>$</span><span class="attribute"><font color="#ff0000">uptypes</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">array</font></span><span>( </span></li><li class=""><span> 'image/jpg', </span></li><li class="alt"><span> 'image/jpeg', </span></li><li class=""><span> 'image/png', </span></li><li class="alt"><span> 'image/pjpeg', </span></li><li class=""><span> 'image/gif', </span></li><li class="alt"><span> 'image/bmp', </span></li><li class=""><span> 'image/x-png' </span></li><li class="alt"><span>); </span></li><li class=""><span> </span></li><li class="alt"><span>$</span><span class="attribute"><font color="#ff0000">max_file_size</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">2000000</font></span><span>; //上传文件大小限制, 单位BYTE </span></li><li class=""><span>$</span><span class="attribute"><font color="#ff0000">destination_folder</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"uploadimg/"</font></span><span>; //上传文件路径 </span></li><li class="alt"><span>$</span><span class="attribute"><font color="#ff0000">watermark</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">1</font></span><span>; //是否附加水印(1为加水印,其他为不加水印); </span></li><li class=""><span>$</span><span class="attribute"><font color="#ff0000">watertype</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">1</font></span><span>; //水印类型(1为文字,2为图片) </span></li><li class="alt"><span>$</span><span class="attribute"><font color="#ff0000">waterposition</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">1</font></span><span>; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中); </span></li><li class=""><span>$</span><span class="attribute"><font color="#ff0000">waterstring</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"http://www.xplore.cn/"</font></span><span>; //水印字符串 </span></li><li class="alt"><span>$</span><span class="attribute"><font color="#ff0000">waterimg</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"xplore.gif"</font></span><span>; //水印图片 </span></li><li class=""><span>$</span><span class="attribute"><font color="#ff0000">imgpreview</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">1</font></span><span>; //是否生成预览图(1为生成,其他为不生成); </span></li><li class="alt"><span>$</span><span class="attribute"><font color="#ff0000">imgpreviewsize</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">1</font></span><span>/2; //缩略图比例 </span></li><li class=""><span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span></li><li class="alt"><span></span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">html</span><span class="tag">></span></font></strong><span> </span></li><li class=""><span></span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">head</span><span class="tag">></span></font></strong><span> </span></li><li class="alt"><span></span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">title</span><span class="tag">></span></font></strong><span>ZwelL图片上传程序</span><strong><font color="#006699"><span class="tag"></</span><span class="tag-name">title</span><span class="tag">></span></font></strong><span> </span></li><li class=""><span></span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">style</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"text/css"</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span></li><li class="alt"><span><!-- </span></li><li class=""><span>body </span></li><li class="alt"><span>{ </span></li><li class=""><span> font-size: 9pt; </span></li><li class="alt"><span>} </span></li><li class=""><span>input </span></li><li class="alt"><span>{ </span></li><li class=""><span> background-color: #66CCFF; </span></li><li class="alt"><span> border: 1px inset #CCCCCC; </span></li><li class=""><span>} </span></li><li class="alt"><span>--</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span></li><li class=""><span></span><strong><font color="#006699"><span class="tag"></</span><span class="tag-name">style</span><span class="tag">></span></font></strong><span> </span></li><li class="alt"><span></span><strong><font color="#006699"><span class="tag"></</span><span class="tag-name">head</span><span class="tag">></span></font></strong><span> </span></li><li class=""><span> </span></li><li class="alt"><span></span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">body</span><span class="tag">></span></font></strong><span> </span></li><li class=""><span></span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">form</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">enctype</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"multipart/form-data"</font></span><span> </span><span class="attribute"><font color="#ff0000">method</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"post"</font></span><span> </span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"upform"</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span></li><li class="alt"><span> 上传文件: </span></li><li class=""><span> </span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">input</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"upfile"</font></span><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"file"</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span></li><li class="alt"><span> </span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">input</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"submit"</font></span><span> </span><span class="attribute"><font color="#ff0000">value</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"上传"</font></span><strong><font color="#006699"><span class="tag">></span><span class="tag"><</span><span class="tag-name">br</span><span class="tag">></span></font></strong><span> </span></li><li class=""><span> 允许上传的文件类型为:</span><span class="tag"><strong><font color="#006699"><?</font></strong></span><span>=implode(', ',$uptypes)</span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span></li><li class="alt"><span></span><strong><font color="#006699"><span class="tag"></</span><span class="tag-name">form</span><span class="tag">></span></font></strong><span> </span></li><li class=""><span> </span></li><li class="alt"><span></span><strong><font color="#006699"><span class="tag"><?</span><span class="tag-name">php</span></font></strong><span> </span></li><li class=""><span>if ($_SERVER['REQUEST_METHOD'] == 'POST') </span></li><li class="alt"><span>{ </span></li><li class=""><span> if (!is_uploaded_file($_FILES["upfile"][tmp_name])) </span></li><li class="alt"><span> //是否存在文件 </span></li><li class=""><span> { </span></li><li class="alt"><span> echo "图片不存在!"; </span></li><li class=""><span> exit; </span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">file</font></span><span> = $_FILES["upfile"]; </span></li><li class=""><span> if($max_file_size </span><span class="tag"><strong><font color="#006699"><</font></strong></span><span> $file["size"]) </span></li><li class="alt"><span> //检查文件大小 </span></li><li class=""><span> { </span></li><li class="alt"><span> echo "文件太大!"; </span></li><li class=""><span> exit; </span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li class="alt"><span> if(!in_array($file["type"], $uptypes)) </span></li><li class=""><span> //检查文件类型 </span></li><li class="alt"><span> { </span></li><li class=""><span> echo "文件类型不符!".$file["type"]; </span></li><li class="alt"><span> exit; </span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li class=""><span> if(!file_exists($destination_folder)) </span></li><li class="alt"><span> { </span></li><li class=""><span> mkdir($destination_folder); </span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">filename</font></span><span>=$file["tmp_name"]; </span></li><li class=""><span> $</span><span class="attribute"><font color="#ff0000">image_size</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">getimagesize</font></span><span>($filename); </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">pinfo</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">pathinfo</font></span><span>($file["name"]); </span></li><li class=""><span> $</span><span class="attribute"><font color="#ff0000">ftype</font></span><span>=$pinfo['extension']; </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">destination</font></span><span> = $destination_folder.time().".".$ftype; </span></li><li class=""><span> if (file_exists($destination) && $overwrite != true) </span></li><li class="alt"><span> { </span></li><li class=""><span> echo "同名文件已经存在了"; </span></li><li class="alt"><span> exit; </span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li class=""><span> if(!move_uploaded_file ($filename, $destination)) </span></li><li class="alt"><span> { </span></li><li class=""><span> echo "移动文件出错"; </span></li><li class="alt"><span> exit; </span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li class=""><span> $</span><span class="attribute"><font color="#ff0000">pinfo</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">pathinfo</font></span><span>($destination); </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">fname</font></span><span>=$pinfo[basename]; </span></li><li class=""><span> echo " </span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">font</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">color</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">red</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span>已经成功上传</span><strong><font color="#006699"><span class="tag"></</span><span class="tag-name">font</span><span class="tag">></span><span class="tag"><</span><span class="tag-name">br</span><span class="tag">></span></font></strong><span>文件名: </span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">font</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">color</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">blue</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span>".$destination_folder.$fname."</span><strong><font color="#006699"><span class="tag"></</span><span class="tag-name">font</span><span class="tag">></span><span class="tag"><</span><span class="tag-name">br</span><span class="tag">></span></font></strong><span>"; </span></li><li class="alt"><span> echo " 宽度:".$image_size[0]; </span></li><li class=""><span> echo " 长度:".$image_size[1]; </span></li><li class="alt"><span> echo "</span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">br</span><span class="tag">></span></font></strong><span> 大小:".$file["size"]." bytes"; </span></li><li class=""><span> </span></li><li class="alt"><span> if($</span><span class="attribute"><font color="#ff0000">watermark</font></span><span>==1) </span></li><li class=""><span> { </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">iinfo</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">getimagesize</font></span><span>($destination,$iinfo); </span></li><li class=""><span> $</span><span class="attribute"><font color="#ff0000">nimage</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">imagecreatetruecolor</font></span><span>($image_size[0],$image_size[1]); </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">white</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">imagecolorallocate</font></span><span>($nimage,255,255,255); </span></li><li class=""><span> $</span><span class="attribute"><font color="#ff0000">black</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">imagecolorallocate</font></span><span>($nimage,0,0,0); </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">red</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">imagecolorallocate</font></span><span>($nimage,255,0,0); </span></li><li class=""><span> imagefill($nimage,0,0,$white); </span></li><li class="alt"><span> switch ($iinfo[2]) </span></li><li class=""><span> { </span></li><li class="alt"><span> case 1: </span></li><li class=""><span> $</span><span class="attribute"><font color="#ff0000">simage</font></span><span> =</span><span class="attribute-value"><font color="#0000ff">imagecreatefromgif</font></span><span>($destination); </span></li><li class="alt"><span> break; </span></li><li class=""><span> case 2: </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">simage</font></span><span> =</span><span class="attribute-value"><font color="#0000ff">imagecreatefromjpeg</font></span><span>($destination); </span></li><li class=""><span> break; </span></li><li class="alt"><span> case 3: </span></li><li class=""><span> $</span><span class="attribute"><font color="#ff0000">simage</font></span><span> =</span><span class="attribute-value"><font color="#0000ff">imagecreatefrompng</font></span><span>($destination); </span></li><li class="alt"><span> break; </span></li><li class=""><span> case 6: </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">simage</font></span><span> =</span><span class="attribute-value"><font color="#0000ff">imagecreatefromwbmp</font></span><span>($destination); </span></li><li class=""><span> break; </span></li><li class="alt"><span> default: </span></li><li class=""><span> die("不支持的文件类型"; </span></li><li class="alt"><span> exit; </span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li class=""><span> imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]); </span></li><li class="alt"><span> imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white); </span></li><li class=""><span> </span></li><li class="alt"><span> switch($watertype) </span></li><li class=""><span> { </span></li><li class="alt"><span> case 1: //加水印字符串 </span></li><li class=""><span> imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black); </span></li><li class="alt"><span> break; </span></li><li class=""><span> case 2: //加水印图片 </span></li><li class="alt"><span> $</span><span class="attribute"><font color="#ff0000">simage1</font></span><span> =</span><span class="attribute-value"><font color="#0000ff">imagecreatefromgif</font></span><span>("xplore.gif"; </span></li><li class=""><span> imagecopy($nimage,$simage1,0,0,0,0,85,15); </span></li><li class="alt"><span> imagedestroy($simage1); </span></li><li class=""><span> break; </span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li class="alt"><span> switch ($iinfo[2]) </span></li><li class=""><span> { </span></li><li class="alt"><span> case 1: </span></li><li class=""><span> //imagegif($nimage, $destination); </span></li><li class="alt"><span> imagejpeg($nimage, $destination); </span></li><li class=""><span> break; </span></li><li class="alt"><span> case 2: </span></li><li class=""><span> imagejpeg($nimage, $destination); </span></li><li class="alt"><span> break; </span></li><li class=""><span> case 3: </span></li><li class="alt"><span> imagepng($nimage, $destination); </span></li><li class=""><span> break; </span></li><li class="alt"><span> case 6: </span></li><li class=""><span> imagewbmp($nimage, $destination); </span></li><li class="alt"><span> //imagejpeg($nimage, $destination); </span></li><li class=""><span> break; </span></li><li class="alt"><span> } </span></li><li class=""><span> </span></li><li class="alt"><span> //覆盖原上传文件 </span></li><li class=""><span> imagedestroy($nimage); </span></li><li class="alt"><span> imagedestroy($simage); </span></li><li class=""><span> } </span></li><li class="alt"><span> </span></li><li class=""><span> if($</span><span class="attribute"><font color="#ff0000">imgpreview</font></span><span>==1) </span></li><li class="alt"><span> { </span></li><li class=""><span> echo "</span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">br</span><span class="tag">></span></font></strong><span>图片预览:</span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">br</span><span class="tag">></span></font></strong><span>"; </span></li><li class="alt"><span> echo "</span><strong><font color="#006699"><span class="tag"><</span><span class="tag-name">img</span></font></strong><span> </span><span class="attribute"><font color="#ff0000">src</font></span><span>="".$destination."" </span><span class="attribute"><font color="#ff0000">width</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">".($image_size[0]*$imgpreviewsize)."</font></span><span> </span><span class="attribute"><font color="#ff0000">height</font></span><span>=".($image_size[1]*$imgpreviewsize); </span></li><li class=""><span> echo " </span><span class="attribute"><font color="#ff0000">alt</font></span><span>="图片预览:r文件名:".$destination."r上传时间:"</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>"; </span></li><li class="alt"><span> } </span></li><li class=""><span>} </span></li><li class="alt"><span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span></li><li class=""><span></span><strong><font color="#006699"><span class="tag"></</span><span class="tag-name">body</span><span class="tag">></span></font></strong><span> </span></li><li class="alt"><span></span><strong><font color="#006699"><span class="tag"></</span><span class="tag-name">html</span><span class="tag">></span></font></strong><span> </span></li></ol>以上就是我们为大家奉上的PHP给图片加水印的具体代码,希望对又需要的朋友有所帮助。











