• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > ThinkPHP5实现图片水印平铺效果

ThinkPHP5实现图片水印平铺效果

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了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 < $this->info['width']-10; $x) {            for ($y = 0; $y < $this->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 "<img src='/water_image.png'/>";}

效果如下:

5f6c62e7a9412.jpg

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ThinkPhp5.1制作微信支付以及支付后的几种状态说明
  • 你知道Thinkphp5.1让验证码在Electron-vue中怎么用?
  • ThinkPHP5通过ajax插入图片并实时显示(完整代码)
  • 分析 thinkphp5 显示render不兼容问题
  • ThinkPHP5访问怎么去除/public/index.php
  • Thinkphp5.1详细讲解中间件的用法
  • ThinkPHP5分页paginate代码实例解析
  • 关于thinkphp5中分页paginate()之后的数据中添加键值
  • Thinkphp5+Redis实现商品秒杀代码实例讲解
  • 如何使用thinkphp5.1的数组查询对象

相关文章

  • vuejs中v-show和v-if的区别是什么
  • 突破dedecms软件下载地址数30个的限制
  • PhotoShop打造漂亮的花草装饰艺术字效果教程
  • PHP+jQuery+MySql实现红蓝投票功能
  • 分享Laravel7消息通知日期序列化解决方案
  • 浅谈如何在制作dedecms模板中进行一些SEO设置
  • DEDECMS的优化方案
  • DEDECMS robots文件SEO优化设置的具体方法
  • Vue模仿ElementUI的form表单实例代码
  • 解决Thinkphp5+部署到宝塔LNMP后404 NOT FOUND的问题

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • PHPCMS模型字段单选复选只能填写不能使用SQL语句查询
    • Vue+ElementUI怎么处理超大表单
    • JavaScript的math方法有哪些
    • 聊聊TP在app接口开发过程中的安全验证问题
    • JavaScript 如何实现横向瀑布流
    • PS简单制作碎花布上的拼贴瓷砖文字效果教程
    • 如何使用PhpSpreadsheet导入导出Excel
    • js如何获取UEditor富文本编辑器中的图片地址
    • Photoshop制作超酷的秋季风格立体字
    • 织梦cms内容页调用评论数量的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有