本文实例讲述了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属性为fileinput.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>

php 图片批量加水印相关推荐

  1. Linux打印添加水印,Linux 下给图片批量加水印

    一个非盈利组织的项目负责人突发奇想想给他们网站上的每张照片加上水印,说实话那些照片都是平时活动.party 的生活照片用不着用水印那么夸张,第一次听说给生活照加水印的.没办法,谁让我们和他们有合作项目 ...

  2. linux内存水印,Linux图片批量加水印

    在 Linux 下给图片批量加水印很简单,以imagemagick为基础,使用一个Shell命令即可搞定. 批量处理图片需要ImageMagick,ImageMagick的功能 1. 将图片从一个格式 ...

  3. python批量添加水印_python 给目录下的图片批量加水印

    python 给目录下的图片批量加水印 water.py 放到 图片文件夹里 然后cd 到当前文件夹 python water.py #coding=utf-8 import Image import ...

  4. 如何给图片批量加水印?

    如何给图片批量加水印?如果你是开网店的,或者你是一名自媒体创作者,为了防止自己的图片不被别人盗用,每天肯定需要给大量的图片添加水印,如果图片数量较多,那么工作量就肯定非常的大,每天肯定要花费大量的时间 ...

  5. 发布一款给图片批量加水印的程序PicNet V1.0

    PicNet V1.0 下载: http://files.cnblogs.com/skywind/picnet1.0.rar (绿色软件,但需要.netFramwok2.0支持,见置顶文章说明) 技术 ...

  6. 将.docx文件中的图片批量加水印

    如何给word文档里面的图片加水印? 有时候我们可能遇到这样的情况:要给一个word文档里面很多图片加上专属的水印,一张一张将图片复制粘贴出来,弄好水印再加到文档中无疑是件很麻烦的事.那么有没有办法可 ...

  7. html图片加文字批量处理,图片批量加水印工具,图片批量添加文字|图片同时添加文字或图片水印...

    一般在网上下载的图片都会自动带有相应网站的文字或是图片水印,虽然可能在使用图片素材的时候,图片上的水印会在一定程度上影响美观,但是水印是对于版权或者是原创的一个保护,图片水印不仅是可以保护别人的原创图 ...

  8. doc类型文件中的图片批量加水印

    有一个doc/docx类型的文档,其中的图片均无水印,目的是快速实现快速给文档中所有的图片加上统一的水印. 参考视频:如何给word文件中的图片批量添加水印 1.首先,有一个文档,其中的图片都没有水印 ...

  9. 给图片下方加水印_别再看不起美图秀秀啦,想要做长图,批量加水印,用它超级方便...

    Hello大家好,我是撒娇的小肉片. 时隔超长时间的更新,不知道还有多少人记得我哈哈.今天想要和大家分享的是如何批量加水印,如何拼成长图,操作简单,你值得拥有哦~ 最重要的是免费!免费!完全免费! 由 ...

最新文章

  1. linux下bash脚本常用的十个技巧:显示执行脚本花费的时间,在脚本退出时杀死后台运行的程序,在脚本退出时跳出循环,读取命令行参数来决定循环次数
  2. EasyX识别不到VC++6.0
  3. Matlab语音信号频谱分析代码实现
  4. 如何防止同一账号多次登录
  5. 复旦研究生怒怼华为:2w 月薪是侮辱价!
  6. vscode编辑器,自己喜欢的颜色
  7. mysql config.path_mysql之 mysql_config_editor/login-path 登录密码保护
  8. Android(Lollipop/5.0) Material Design(六) 使用图像
  9. 【xxl-job】轻松实现分布式定时任务demo实例
  10. 拿来就能用!用爬虫秒抢到孩子心仪的幼儿园 | CSDN 博文精选
  11. ROS机器人编程新书推荐(附免费下载)
  12. C# EF The instance of entity type ‘EqInfo‘ cannot be tracked because another instance with the
  13. 干货 | Elasticsearch 8.X 版本升级指南
  14. SpringSecurity自定义认证成功处理器
  15. http 返回码 405 解决方案之一
  16. 7.(css)使用浮动布局学成网案例
  17. html中自动随机点名的程序,JavaScript实现随机点名程序
  18. 如何将图片批量压缩?全面盘点这几种小方法
  19. C# 接口和抽象类的区别和使用场景
  20. you-get使用方法

热门文章

  1. IP视频语音对讲4G应急广播具有稳定的组网结构
  2. 很好的文章 藏 如何在30岁前年薪超过30万
  3. html点击导航变色,点击导航后,当前导航的颜色变色
  4. 『最新』关于联想IdeaPad Y430A-TSI一周有感!!
  5. 2020最新Java面试题总结
  6. 职场小故事,工作大道理——动物王国(10)
  7. #MATLAB rectangle函数
  8. SI PI学习笔记1 信号完整性概述
  9. 计算机软件里CR与CF什么意思,统计学中CR,PR,SD,PD,RR是什么意思
  10. 南通贝尔机器人_南通中专获世界机器人大赛总决赛二等奖