这篇文章将为大家详细讲解有关使用TP5.1 怎么为图片添加水印,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
在 Linux 和 Mac OS X 中可以运行如下命令:
curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer
在 Windows 中,你需要下载并运行 Composer-Setup.exe。具体的安装在这里就不详说了,安装完成Composer软件之后,就需要安装图片插件了,打开运行窗口(系统键+R),输入cmd,回车后,定位到自己的项目目录,然后运行:composer require topthink/think-image
。
安装完成后就可以进行下一步的工作了。
下面是我的部分代码,仅供大家参考。
【HTML】
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>{$site.company}会员管理系统</title> <link rel="stylesheet" href="layui/css/layui.css"> <link rel="stylesheet" href="/css/main.css"> <script type="text/javascript" src="layui/layui.js"></script></head><body> <div> <div> <label>照片上传</label> <div> <input type="text" name="face" id="face" placeholder="请上传照片"> </div> <div style="width: 80px!important;"> <button type="button" id="face1">上传照片</button> </div> </div> <div> <div> <div> <div> <img src="/images/thumb.png" id="face_show" width="100px"> <p id="faceText"></p> </div> </div> </div> </div> <div> <div> <input type="button" lay-submit="" lay-filter="add" value="提交"> </div> </div> </div> <script type="text/javascript">layui.use(['form','layer','upload','element'], function(){ $ = layui.jquery;var form = layui.form,layer = layui.layer;var upload = layui.upload;var element = layui.element;//常规使用 - 普通图片上传var uploadInst = upload.render({ elem: '#face1',url: '{:url("uploadFile")}',before: function(obj){ //预读本地文件示例,不支持ie8obj.preview(function(index, file, result){ $('#face_show').attr('src', result); //图片链接(base64)});element.progress('demo', '0%'); //进度条复位layer.msg('上传中', {icon: 16, time: 0});} ,done: function(data){ //如果上传失败if(data.code > 0){ layer.msg('上传成功');document.getElementById('face').value = data.path;$('#faceText').html(''); //置空上传失败的状态}else { layer.msg('上传失败',{icon:2});} } ,error: function(){ //演示失败状态,并实现重传var demoText = $('#faceText');demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');demoText.find('.demo-reload').on('click', function(){ uploadInst.upload();});} //进度条,progress: function(n, index, e){ element.progress('demo', n + '%'); //可配合 layui 进度条元素使用if(n == 100){ layer.msg('上传完毕', {icon: 1});} } });form.on('submit(add)', function(data){ console.log(data);//发异步,把数据提交给php$.post('{:url(\'save\')}',$('form').serialize(),function(data){ if(data.code == 1){ layer.msg(data.msg);setTimeout(function(){parent.window.location.reload();},1000);}else{ layer.alert(data.msg, {icon: 6});} }) return false;});});</script></body></html>
【图片上传】
public function uploadFile(){ //获取上传文件信息 $file = request()->file('file'); //以在上传目录下面生成以当前日期为子目录,存放上传文件 $path = date("Ymd"); //以当前时间和100~1000之间的随机数作为文件名称 $filename = time().rand(100,1000); //将上传的文件移动到指定目录下 $info = $file->move('uploadfile/'.$path.'/',$filename); //验证图片并移动到指定目录 if ($info){ //返回上传成功提示信息 //获取图片的名字 $imgName = $info->getFilename(); $size = $info->getInfo('size'); //获取图片的路径 $photo1 ='/uploadfile/'.$path.'/'.$info->getSaveName(); return json(['code'=>1,'path'=>$photo1]); }else{ //返回上传失败提示信息 return $file->getError(); }}
【水印类库】
namespace app\api\classes;use think\Image;class imgWaterClass{ public function imageWaterText($path,$text){ $img = ".".$path; $image = Image::open($img); $image->text($text,'./static/style/font/simsun.ttc',20,'#ffffff',9 ,"-10px")->save($img); return $img; } public function imageWaterImg($path,$logo){ $img = ".".$path; $logo = ".".$logo; $image = Image::open($img); $image->water($logo,Image::WATER_SOUTHEAST)->save($img); return $img; }}
【后台程序处理】
public function save(){ $data = Request::param(); $water = new imgWaterClass(); $img_url = $data['face'];//需要添加水印的图片 $path = "/uploads/logo.png";//水印图片 $img = $water->imageWaterImg($img_url,$path);//添加水印图片 $img_text = $water->imageWaterText($img_url,'我是水印');//添加水印文字 if($img){ return ['code'=>1,'msg'=>'保存成功']; }else{ return ['code'=>0,'msg'=>'保存失败']; }}
关于使用TP5.1 怎么为图片添加水印就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。