这篇文章将为大家详细讲解有关使用TP5.1 怎么为图片添加水印,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
在 Linux 和 Mac OS X 中可以运行如下命令:
curl -sS https://getcomposer.org/installer | php
mv 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){
//预读本地文件示例,不支持ie8
obj.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
{
/**图片文字水印
* object(think\Image)#47 (3) {
["im":protected] => resource(96) of type (gd)
["gif":protected] => NULL
["info":protected] => array(4) {
["width"] => int(750)
["height"] => int(450)
["type"] => string(4) "jpeg"
["mime"] => string(10) "image/jpeg"
}
}
*
*/
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 怎么为图片添加水印就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。