先看最终效果图:

1、在common.php里定义一个全局方法,代码如下:

<?php
/*** 添加图片全屏水印* $sourcePath 源图片路径* $logoPath   水印logo路径
*  $savePath   添加水印后图片的保存路径*/
function addImageWater($sourcePath,$logoPath,$savePath){$im = imagecreatefromstring(file_get_contents($sourcePath));//获取水印源$watermark = imagecreatefromstring(file_get_contents($logoPath));//获取图、水印 宽高类型list($bgWidth, $bgHight, $bgType) = getimagesize($sourcePath);list($logoWidth, $logoHight, $logoType) = getimagesize($logoPath);//定义平铺数据$x_length = $bgWidth - 10; //x轴总长度$y_length = $bgHight - 10; //y轴总长度//创建透明画布 伪白色$opacity=20;$w = imagesx($watermark);$h = imagesy($watermark);$cut = imagecreatetruecolor($w,$h);$white = imagecolorallocatealpha($cut, 255,255,255,0);imagefill( $cut, 0, 0, $white );//整合水印imagecopy($cut, $watermark, 0, 0, 0, 0, $w, $h);//循环平铺水印for ($x = 0; $x < $x_length; $x++){for ($y = 0; $y < $y_length; $y++) {imagecopymerge($im, $cut, $x, $y, 0, 0, $logoWidth, $logoHight, $opacity);$y += $logoHight;}$x += $logoWidth;}//header("Content-type:image/png");imagejpeg($im,$savePath);
}

2、在控制器里,上传文件的同时调用添加水印的方法:

<?php
private function uploadImg() {//保存图片的路径$path = ROOT_PATH . 'public/uploads/';$file = request()->file("file");if($file) {//限制只能上传2MB图片$info = $file->rule(function() {return md5(microtime(true));})->validate(['size'=>1024*1024*2,'ext'=>'jpg,png,gif,jpeg'])->move($path);if($info) {$filename = $info->getSaveName();$sourcePath = $path.$filename;//原图全路径$logoPath=ROOT_PATH.'public/static/img/water.png';//水印logo图片路径//添加水印(自动覆盖原图)addImageWater($sourcePath,$logoPath,$sourcePath);//保存图片的路径,存入数据库$savepath='/uploads/'.$filename;}unset($info);}unset($file);}

补充说明:

水印图片是png格式的,自己在透明背景图上PS文字,想让水印倾斜,那么就调整文字角度,我的水印logo图片是这样的:

宽度240像素,高度100像素

Thinkphp添加图片全屏水印相关推荐

  1. php分析图片中水印的位置,thinkphp添加图片、文字水印 自定义位置等

    只添加文字水印 //生成带水印的图片 $image = new \Think\Image(); //定义位置 $path="./Upload/water/".$time." ...

  2. 微信小程序页面添加背景图,图片全屏显示

    前言 微信的wxss里面不允许使用使用 background: url(),只能另外找方法进行背景图片显示. 方法 1.wxss页面里面设置页面的全屏宽高,以及view添加宽高 page{height ...

  3. android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...

    AssNineGridView 仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图(可自定义). 写在前面 这是一个九宫格控件,本来是很久之前就写好了,现在才开源出来,也是看了很多优秀 ...

  4. css 全屏显示一张图片_css 如何让图片全屏的问题

    1:一个很小的条状图,通过repeat后,形成一个很规则的大图背景. 但是css3出现以后,这个情况被改善了.background-size 属性可以让我们之前的希望成真.而且这个属性在firefox ...

  5. html加入图片如何自动平铺,html怎么设置背景图片全屏平铺?

    html怎么设置背景图片全屏平铺? 1.新建一个html文档. 2.设置一下HTML的框架,然后把图片设置在同一个文件夹里面. 3.加入,这样可以有样式设置. 4.因为背景设置在主体,所以还要定义为b ...

  6. php全屏水印代码,zblogPHP全屏水印插件防盗图神器上线

    zblogPHP全屏水印,防盗图神器,小插件,大作用! zblogPHP全屏水印插件购买: zblog应用中心价格¥39.8,联系本站管理购买立减5元---> 插件特色/介绍: 1,为图片加上全 ...

  7. uniapp 背景图片全屏显示在整个页面

    要让uniapp中的背景图片全屏,可以在<style>标签中添加以下样式: page {background-image: url('/static/bg.jpg');background ...

  8. html怎么设置背景图 一张图平铺,html怎么设置背景图片全屏平铺?_WEB前端开发...

    ps画笔工具快捷键是什么?_WEB前端开发 ps画笔工具的快捷键是"B":默认使用前景色绘图,通过设置后可以多种色彩一起绘制.ps的画笔分为了4类:常规画笔.干介质画笔.湿介质画笔 ...

  9. js大屏导出图片_超大图片全屏动态展示js插件

    intense-images是一款非常实用的超大图片全屏动态展示js插件.该图片查看插件可以全屏显示超大图片,可以使用鼠标来和图片进行交互,上下左右移动鼠标会相应的移动图片,对于超大图片的展示是非常好 ...

  10. 手机端点击图片全屏预览

    <!doctype html> 手机端点击图片全屏预览 <div class="category"><img src="1.jpg" ...

最新文章

  1. 【百度飞浆】RCNN系列算法优化策略与案例
  2. 先排序,再限定记录数,然后计算指定字段的总和
  3. 中国区块链开发者的热血时代来临!
  4. SpringBoot动漫弹幕网站 cartoon.liuyanzhao.com
  5. Stata15-Unicode:一次性转码解决中文乱码问题
  6. 《熊出没原始时代》总导演丁亮:爱与勇气 穿越古今
  7. 计算机光驱里有硬盘,笔记本电脑光驱位装机械硬盘有以下危害
  8. windows10下F1-F11快捷键及window+Dor+E快捷键打开关闭控制
  9. 聚是一团火散作满天星,前端Vue.js+elementUI结合后端FastAPI实现大文件分片上传
  10. 中国云计算产业发展白皮书
  11. [软件工程]关于调查报告的响应和看到张恂的批评
  12. PDF如何合并,PDF文件合并的技巧
  13. .class .class 和 .class.class 和 .class>.class 比较
  14. 第0期-通过hao123爬取导航网站
  15. 【完善】微信餐厅点单小程序+后台管理系统的设计与实现(python实现)
  16. 如何改善自己的语言表达能力?
  17. centos7搭建owncloud私有云
  18. 求asinx+bcosx的不定积分
  19. 什么是CPC认证,现在亚马逊那边都需要提供CPC认证怎么办
  20. 小册上新 | 如何使用掘金社区

热门文章

  1. 给html标签加上鼠标划过小手样式
  2. Axial Attention 和 Criss-Cross Attention及其代码实现
  3. 肯德尔系数怎么分析_如何通过修改数据提高肯德尔系数?
  4. 打开360浏览器显示无法连接服务器错误,最近360浏览器老是无法打开网页,提示错误如图,但是只要刷新就可以打开了,这是怎么回事?...
  5. win7与internet时间同步出错_时间同步出错,教您时间同步出错
  6. js拖拽(二)仿iGoogle自定义首页模块拖拽
  7. word脚注、尾注小技巧|怎么删除尾注的横线|怎么快速删除页眉的横线|怎么快速将尾注和脚注转为带方括号的格式
  8. 域名被抢注的知名案例有哪些?
  9. esxi 命令行格式化硬盘
  10. [案例2-3]超市购物小程序