php 图片批量加水印
来源:互联网 发布:招魂类似的电影知乎 编辑:程序博客网 时间:2024/05/20 05:22
本文实例讲述了PHP图片加水印实现方法。分享给大家供大家参考,代码不是很完善,欢迎大家多多指教!代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>图片批量加水印</title> <script language="javascript" type="text/javascript"> function AddInput(){ var input=document.createElement('input');//创建一个input节点 var br=document.createElement('br');//创建一个br节点 input.setAttribute('type','file');// 设置input节点type属性为file input.setAttribute('name','files[]');//设置input节点 name属性为files[],以 数组的方式传递给服务器端 document.form1.appendChild(br);//把节点添加到 form1表单中 document.form1.appendChild(input); } </script> </head> <?php /** * 为图片加水印 * @param string $desImg 目标图片 参数格式为 ./images/pic.jpg * @param string $waterImg 水印图片 参数格式同上,水印图片为 png格式,背景透明 * @param int positon 水印地位 1:顶部居左 2:顶部居右 3:居中 4 :底部居左 5:底部居右 * @param bool $saveas 能否另存为,默许值false,默示笼盖原图 * @param int $alpha 水印图片的不通明度 * @return string $savepath 新图片的途径 * **/ function watermark($desImg,$waterImg,$positon = 1,$saveas = false,$alpha = 80){ //获取目图片的根基信息 $temp = pathinfo($desImg); $name = $temp["basename"];//文件名 $path = $temp["dirname"];//文件地点的文件夹 $extension = $temp["extension"];//文件扩展名 if($saveas){ //需要另存为 $name = rtrim($name,".$extension")."_2.";//从头命名 $savepath = $path."/".$name.$extension; }else{ //不需要另存为则笼盖原图 $savepath=$path."/".$name; } $info = getImageInfo($desImg);//获取目标图片的信息 $info2 = getImageInfo($waterImg);//获取水印图片的信息 $desImg = create($desImg);//从原图创立 $waterImg = create($waterImg);//从水印图片创立 //地位1:顶部居左 if($positon == 1){ $x = 0; $y = 0; } //地位2:顶部居右 if($positon == 2){ $x = $info[0] - $info2[0]; $y = 0; } //地位3:居中 if($positon == 3){ $x = ($info[0] - $info2[0]) / 2; $y = ($info[1] - $info2[1]) / 2; } //地位4:底部居左 if($positon == 4){ $x = 0; $y = $info[1] - $info2[1]; } //地位5:底部居右 if($positon == 5){ $x = $info[0]-$info2[0]; $y = $info[1]-$info2[1]; } imagecopymerge($desImg,$waterImg,$x,$y,0,0,$info2[0],$info2[1],$alpha); imagejpeg($desImg,$savepath); imagedestroy($desImg); imagedestroy($waterImg); return $savepath; } /** * 获取图片的信息,width,height,image/type * @param string $src 图片途径 * @return 数组 * **/ function getImageInfo($src){ return getimagesize($src); } /** * 创立图片,前往本钱范例 * @param string $src 图片途径 * @return resource $im 前往本钱范例 * **/ function create($src){ $info = getImageInfo($src); switch($info[2]){ case 1: $im=imagecreatefromgif($src); break; case 2: $im=imagecreatefromjpeg($src); break; case 3: $im=imagecreatefrompng($src); break; } return $im; } if(isset($_POST['sub']) && $_POST['sub']=="www"){ $waterimg = "water.png"; // 水印图片 $ftype = array('image/jpg','image/jpeg','imgage/png','image/pjpeg','image/gif');//允许上传的文件类型 $files = $_FILES['files']; $fnum = count($files['name']); //取得上传文件个数 if($fnum > 0){ echo '<div style="width: 600px;margin: 0 auto;">'; for($i = 0;$i < $fnum;$i++){ $n = $i + 1; if($files['name'][$i] != '' && is_uploaded_file($files['tmp_name'][$i])){ //判断文件是否是允许的类型 if(in_array($files['type'][$i],$ftype)){ $fname[$i] = 'upfile/'.rand(0,10000).time().substr($files['name'] [$i],strrpos($files['name'][$i],'.'));//自动命名 move_uploaded_file($files['tmp_name'][$i],$fname[$i]); echo '<br/>'.$n.'. 文件上传成功!('.$fname[$i].')'; // 生成水印图片 watermark($fname[$i],$waterimg); }else{ echo '<br/>'.$n.'. 不允许的文件类型!'; exit; } }else{ echo '<br/>'.$n.'. 该文件不存在!'; } } echo '</div>'; } } ?> <body> <div style="width: 600px;margin: 0 auto;"> <h2>图片批量加水印</h2> <hr> <a href="javascript:;" onclick="AddInput()">再上传一张</a> <!-- <button onclick="AddInput()" type="button" style="color: #FFF;background-color: red;border: 0;padding: 5px;">再上传一张</button> --><br/><br/> <form name="form1" method="post" action="" enctype="multipart/form-data" > <input type="file" name="files[]" id="files[]" /> <input type="submit" name="sub" value="上传"/> <input name="sub" type="hidden" id="sub" value="www" /> </form> </div> </body></html>
0 0
- php 图片批量加水印
- php批量下载图片并加水印
- php图片加水印
- PHP图片上传加水印
- php实现图片加水印
- 图片加水印上传(PHP)
- PHP-给图片加水印
- OpenCV实现批量图片加水印
- OpenCV实现批量图片加水印
- 图片缩放 图片加水印 php类
- php给上传图片加图片水印
- PHP实现给图片加图片水印
- PHP给图片加文字水印和图片水印
- PHP生成加水印的图片类
- php 给图片加水印的函数
- php给上传图片加水印图案
- PHP图片上传加水印(转)
- 图片加水印的php类
- 《APUE》读书笔记—第十章信号(上)
- WPE & LOD(应力效应)
- gdb调试命令
- xcode 编译提速
- android studio 中出现 Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- php 图片批量加水印
- svn提交或更新代码选择性设置后缀类型的文件或文件夹不需要资源同步更新
- android之存储篇_SQLite数据库_让你彻底学会SQLite的使用
- Java传递音频给PC端C#程序<二>
- 我的第一篇博
- BUS,class, 子系统的关系
- 做站群SEO网站对站群服务器的要求高吗?做站群网站都需要注意哪些?
- EL和JSTL
- android 安装apk适配7.0