php 上传加水印,php 图片上传加水印(自动增加水印)
function upload($uploadfile,$watermark=1,$watertype=1,$content){
foreach($uploadfile['name'] as $key=>$name) { //多文件上传函数
uploadall($uploadfile,$key,$watermark,$watertype,$content);
}
}
function uploadall($uploadfile,$i,$watermark,$watertype,$content) {
$watermark=$watermark; //是否附加水印(1为加水印,其他为不加水印);
$watertype=$watertype; //水印类型(1为文字,2为图片)
$watercontent=$content; //水印的内容
if(empty($uploadfile['name'][$i])) {
die("未选择文件上传");
}
if($uploadfile['error'][$i] == 2) { //验证html判断结果
die("上传的文件太大了");
}
$allow_filemaxsize = 2048000; // 2m
$filesize = $uploadfile['size'][$i];
if($filesize > $allow_filemaxsize) {
die("上传的文件太大了");
}
$allow_filetypes = array("jpeg", "gif", "png","jpg","pjpeg");//允许上传的文件统一资源类型 mimetype
$allow = false; //默认都不允许
$mimetype = $uploadfile['type'][$i]; //上传文件的mime文件类型
foreach($allow_filetypes as $t) {
if(strpos($mimetype, $t) !== false) {
$allow = true; //找到了符合上传条件的文件类型
break;
}
}
if($allow == false) {
die("上传的文件类型不被允许");
}
$result = is_uploaded_file($uploadfile['tmp_name'][$i]); //判断是否为上传动作产生的
if(!$result) {
die("上传的文件有误");
}
$uploaddir = "img/"; //上传文件保存目录
if(!file_exists($uploaddir)) mkdir($uploaddir, 0777, true);//若上传保存目录不存在,则递归创建
/**重命名文件**/
$filetype = explode(".", $uploadfile['name'][$i]);
$filetype = array_pop($filetype);
$uploadfilename = time().".".$filetype;
$_session['filename'] = $uploadfilename;
//end
$result = move_uploaded_file($uploadfile['tmp_name'][$i], $uploaddir.$uploadfilename);
if($result) {
echo "文件上传成功";
}else{
switch($uploadfile['error'][$i]) {
case 1:return "上传的文件超出了php.ini中设定的最大值";break;
case 2:return "上传的文件超出了html中设定的最大值";break;
case 3:return "文件只有部分被上传";break;
case 4;return "没有文件被上传";break;
default:die("文件上传失败");
}
}
if($watermark==1) {
$iinfo=getimagesize($uploaddir.$uploadfilename); //获取图片的相关信息,得到数组
$nimage=imagecreatetruecolor($iinfo[0],$iinfo[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($uploaddir.$uploadfilename);
break;
case 2:
$simage =imagecreatefromjpeg($uploaddir.$uploadfilename);
break;
case 3:
$simage =imagecreatefrompng($uploaddir.$uploadfilename);
break;
case 6:
$simage =imagecreatefromwbmp($uploaddir.$uploadfilename);
break;
default:
die("不支持的文件类型");
exit;
}
imagecopy($nimage,$simage,0,0,0,0,$iinfo['0'],$iinfo['1']);
switch($watertype) {
case 1: //加水印字符串
imagestring($nimage,5,$iinfo['0']/2-50,$iinfo['1']-30,$watercontent,$black);
break;
case 2: //加水印图片
$simage1 =imagecreatefromgif($watercontent);
$size = getimagesize($watercontent);
imagecopy($nimage,$simage1,$iinfo['0']/2+50,$iinfo['1']-100,0,0,$size[0],$size[1]);
imagedestroy($simage1);
break;
}
switch ($iinfo[2]) {
case 1:
imagejpeg($nimage, $uploaddir.$uploadfilename); //将图像$nimage以$destination文件名创建一个jpeg的格式文件
break;
case 2:
imagejpeg($nimage, $uploaddir.$uploadfilename);
break;
case 3:
imagepng($nimage, $uploaddir.$uploadfilename);
break;
case 6:
imagewbmp($nimage, $uploaddir.$uploadfilename);
break;
}
imagedestroy($nimage); //覆盖原上传文件
imagedestroy($simage);
}
}
if(@$_get['act'] == "insert") { //未作参数校验
//该函数的四个参数分别是:上传控件的name值;是否加水印(1为加,其他数字为不佳);
//水印的类型(1为字符串,2为图片);水印的内容,字符串时写数据,图片时写图片的地址;
$picture = upload($_files['picture'],1,2,"img/watermark.gif");//上传文件,并返回上传后的文件路径名
}
?>
php 上传加水印,php 图片上传加水印(自动增加水印)相关推荐
- 怎么加水印在图片上?
怎么加水印在图片上?随着时代的发展,大家对于作品版权的保护意识也越来越高,例如制作拍摄或者制作的视频.自己录制的歌曲.写的小说等等,都需要我们保护自己的版权不受侵犯.除此之外还有一个非常重要的文件需要 ...
- html 头像选择,html5点击上传头像选取本地图片上传代码
特效描述:html5 点击上传头像 选取本地图片 上传代码.html5点击上传头像,图片上传代码 代码结构 1. HTML代码 上传头像 //获取上传按钮 var input1 = document. ...
- 直播平台软件开发,input限制上传数量,规定图片上传数量
直播平台软件开发,input限制上传数量,规定图片上传数量 /*** [fileCountCheck 上传文件数量检测]* @param {[Object]} filesObj [文件对象|input ...
- moba上传文件到服务器,图片上传到远程服务器上的方法
图片上传到远程服务器上的方法 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows ...
- PHP图片加水印,然后将加水印的图片上传到七牛云
今天项目有这么一个需求,简单实现了一下,当然用起来是没有任何问题的,现在把实现代码分享给小伙伴们 public function uploadImgToQiniu($picture_id){$wate ...
- php 上传加水印,PHP 图片上传加水印实例
function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$t ...
- php 缩略图增加水印,php 图片上传代码(具有生成缩略图与增加水印功能)
class upfile { public $filepath = "www.111com.net/"; //上传文件存放文件夹 public $filesize = 100000 ...
- php 图片上传 水印,PHP - 图片上传并添加水印
一个的面向过程的 PHP 图片上传并对其添加文字水印的功能. 还有很多待需完善的地方. index.php $conn=@mysql_connect("localhost",&qu ...
- php 文件预览 水印,PHP图片上传,预览图上传,水印设置
//设置图片的存放目录 设置水印的存放地址如果愿意,可以给预览图.上传图片分设不同的存储地址 $img_path = $_SERVER['DOCUMENT_ROOT']."/data/img ...
最新文章
- python测试代码_python入门-测试代码
- 【PAT乙级】1076 Wifi密码 (15 分)
- 两本电子书 |Flink 最佳学习实践 | 从 0 到 1 学会 Apache Flink
- c语言ds12c887,ds12c887引脚图 DS12C887中文资料.doc
- solr为什么比MySQL快_Solr原理?为什么要用Solr?Solr为什么比较快?
- Segmentree beats!---吉如一线段树学习笔记
- 《引爆点》学习笔记二
- App逆向|一个案例教你如何进行APP逆向
- 发那科sub_FANUC PMC功能指令之计数器 CTR SUB5-共享屋共享屋
- iOS调用手机振动和铃声
- 区块链需要c语言和linux嘛,区块链技术如何运作?使用什么开发语言?
- Postman批量提交
- 计算机考研815指什么,考研815化学包括什么
- [AHOI2014/JSOI2014] 骑士游戏
- php 感叹号有什么用,感叹号!代表什么意思?(标点符号的用法之感叹号)
- tomcat管理界面登录无法进入
- 杭州封杀嘀嘀、快的打车的加价功能
- 电子商务网站开发流程
- DbVisualizer Pro 9.1.1连DB2数据库中文显示乱码的解决【一篇就够】
- linux下运行讯飞语音云的测试程序
热门文章
- 双11怎么那么强!之二:浅析淘宝网络通信库tbnet的实现
- 政府门户网站建设解决方案
- Redis 命令--Redis哈希(hash)
- linux deepin 20.4升级至20.5教程:升级系统和升级内核两个步骤(手动升级deepin内核命令)
- Fedora换源:换成aliyun镜像源
- Linux 防火墙的基本认识
- k8s部署dubbo-admin 2.5.10
- k8s pod应用升级回滚(set image/rollout)和弹性伸缩(scale)示例
- k8s使用kubectl命令部署nginx并以nodeport方式暴露端口
- 【PyQT5编程】Pycharm结合QtDesigner使用示例:创建登录窗体