php图片平铺,ThinkPHP5实现图片水印平铺效果
我们有时需要对推片打上水印,防止别人盗用,thinkphp 自己的水印功能只能选择位置添加水印,但是有时候图片某些位置比较干净(空白部分),很容易处理掉,这样就无法起到防止盗用图片的效果。
这篇教程分享一下使用 ThinkPHP5 实现图片水印平铺的效果。
关键代码操作
1、打开第三方类库文件:vendor\topthink\think-image\src\Image.php
2、把下面代码复制到上方地址的图片处理类库中(即增加一个图片处理方法)/**
* 添加图片水印平铺
*
* @param string $source 水印图片路径
* @param int $alpha 透明度
* @return $this
*/
public function tilewater($source, $alpha = 100)
{
if (!is_file($source)) {
throw new ImageException('水印图像不存在');
}
//获取水印图像信息
$info = getimagesize($source);
if (false === $info || (IMAGETYPE_GIF === $info[2] && empty($info['bits']))) {
throw new ImageException('非法水印文件');
}
//创建水印图像资源
$fun = 'imagecreatefrom' . image_type_to_extension($info[2], false);
$water = $fun($source);
//设定水印图像的混色模式
imagealphablending($water, true);
do {
//添加水印
$src = imagecreatetruecolor($info[0], $info[1]);
// 调整默认颜色
$color = imagecolorallocate($src, 255, 255, 255);
imagefill($src, 0, 0, $color);
//循环平铺水印
for ($x = 0; $x info['width']-10; $x) {
for ($y = 0; $y info['height']-10; $y) {
imagecopy($src, $this->im, 0, 0, $x, $y, $info[0], $info[1]);
imagecopy($src, $water, 0, 0, 0, 0, $info[0], $info[1]);
imagecopymerge($this->im, $src, $x, $y, 0, 0, $info[0], $info[1], $alpha);
$y += $info[1];
}
$x += $info[0];
}
//销毁临时图片资源
imagedestroy($src);
} while (!empty($this->gif) && $this->gifNext());
//销毁水印资源
imagedestroy($water);
return $this;
}
使用方法:
注意:仅供参考,你可以改造到你的项目的上传图片部分!use think\Image;
class ....
public function test(){
$image = Image::open('bg.jpg');
// 给原图设置水印图片(colleced.png)并保存 water_image.png(可以带路径)
$image->tilewater('colleced.png',100)->save('water_image.png');
echo "";
}
效果如下:
php图片平铺,ThinkPHP5实现图片水印平铺效果相关推荐
- 在线图片水印平铺工具
在线图片水印平铺工具 在线图片水印平铺工具 本工具可以为图片添加自定义的平铺文本水印,可以用于给证件添加水印,隐私图片添加水印等,方便快捷,工具仅支持较新的浏览器版本. 工具为纯客户端处理,数据将不会 ...
- php 图片水印平铺,EmpireCMS 水印平铺
这篇文章主要介绍了关于EmpireCMS 水印平铺,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 修改 /e/class/gd.php下的imageWaterMark方法 如下if($ ...
- php如何平铺背景图片,css如何让背景图片平铺?css背景图片平铺四种方式介绍
在网页设计的过程中,有时候可能会要求背景图片平铺,因为这样会让整个网页看起来比较好看,图片平铺可以不用具体设置body宽度和高度大小,就可以直接将图片平铺整个页面,那么,如何让背景图片平铺呢?接下来本 ...
- Css的背景(背景颜色、背景图片、背景平铺、背景图片位置、背景图像固定)
通过css背景属性,可以给页面元素添加背景样式. 背景属性可以设置背景颜色.背景图片.背景平铺.背景图片位置.背景图像固定等. 背景颜色: Background-color:#******: < ...
- 黑马程序员前端-CSS背景:颜色、图片、平铺、背景图片位置、背景图像
前端学习笔记教程不定期更新中,传送门: 前端HTML第一天:什么是网页?什么是HTML?网页怎么形成? 黑马程序员前端-CSS入门总结 黑马程序员前端-CSS之emmet语法 黑马程序员前端-CSS的 ...
- java怎么让图片铺满_Java实现水印铺满图片
public class ImageMarkUtil { /** 水印透明度 */ private static float alpha = 0.5f; /** 水印图片旋转角度 */ private ...
- HTML让背景图片铺满整个图片
有时候我们加入背景图片时,会由于图片的大小不一致,导致图片进行平铺,以下代码可以解决这个问题 <style> body {background:url("./images/bac ...
- CSS的背景(背景颜色,背景图片,背景平铺,背景图片位置,背景图片固定(图片附着),背景复合写法)
CSS的背景 通过 CSS 背景属性,可以给页面元素添加背景样式. 背景属性可以设置背景颜色.背景图片.背景平铺.背景图片位置.背景图像固定等. 背景颜色 background-color 定义元素的 ...
- C#图片处理示例(裁剪,缩放,清晰度,水印)
前言 需求源自项目中的一些应用,比如相册功能,通常用户上传相片后我们都会针对该相片再生成一张缩略图,用于其它页面上的列表显示.随便看一下,大部分网站基本都是将原图等比缩放来生成缩略图.但完美主义者会发 ...
最新文章
- 远程连接docker中的mysql容器_docker构建mysql容器及Navicat 远程连接
- Oracle分页查询2
- lua math.random()
- 数论 —— 佩尔方程与连分数
- 遥感影像处理有高招,“专治”各类花式并发的述求!
- mysql capi函数详解_技术分享|MySQLCAPI参数MYSQL_OPT_READ_TIMEOUT的一些行为分析
- linux信任主机建立不了,openssh主机间信任关系建立
- linux交叉编译jpeg,libjpeg的交叉编译以及jpeg图片的缩放(缩略图)
- matlab2c使用c++实现matlab函数系列教程-find函数
- Java基础梳理(一)
- python实现猴子排序(Monkey_sort)闲聊睡眠排序
- AOP 实现请求参数打印
- Android模拟器读取GPS串口模拟器GPS数据
- SQL server 2008 R2 使用教程
- 均值滤波器、中值滤波器、滤波器的常见应用。
- P1322 logo语言
- Word中插入目录时未找到目录项
- 计算机wordif函数,wordif函数怎么用
- 中台详解(上)-什么是中台
- Python数据分析_美国犯罪数据_US_Crime_Rates EDA.csv
热门文章
- 最经典的常用拍照姿势大全,顶级POSE
- USACO Mooo Moo
- Flink + 强化学习搭建实时推荐系统
- python的基本原理_python基础1(理论基础)
- java mysql方言_支持的数据库方言 · drinkjava2/jDialects Wiki · GitHub
- linux ps与top 命令下wa,hi,si,st等及 VSZ,RSS,VIRT,RES,等关键字含义详解!
- python进阶学习--PyCharm使用
- 怎么用蓝光u宝装linux系统,蓝光U宝U盘启动盘制作工具V3.3(完整版)使用教程
- CTFshow web3 菜鸡刷题记录
- unity3d 禁用脚本