iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >聊聊如何使用ueditor上传图片加水印
  • 632
分享到

聊聊如何使用ueditor上传图片加水印

2024-04-02 19:04:59 632人浏览 八月长安
摘要

如何用ueditor上传图片加水印?下面本篇文章给大家介绍一下使用ueditor上传图片加水印的方法,希望对大家有所帮助!博客在上传图片的时候,我希望能打上我博客链接的水印,掘金,csdn都是这么干的,这事我得学习。平时的图片上传还好说,在

如何用ueditor上传图片加水印?下面本篇文章给大家介绍一下使用ueditor上传图片加水印的方法,希望对大家有所帮助!

博客在上传图片的时候,我希望能打上我博客链接的水印,掘金,csdn都是这么干的,这事我得学习

平时的图片上传还好说,在文章编辑的时候,使用ueditor上传图片加水印需要修改ueditor部分PHP源码,我这里大概记录一下。

首先打开php文件夹下的Uploader.class.php

1.png

找到private function upFile(),这是上传文件的主处理方法,

找到122行:$this->stateInfo = $this->stateMap[0];

在这个下面加入:$this->imageWaterMark($this->filePath,9,'loGo.png');

imageWaterMark是自定义的函数,

在下面会说到,$this->filePath 这是上传图片的路径,9 表示的是水印的位置,在右下角,logo.png这个就是你要添加的水印图片了,这个在同一目录下/php/,如果要放到其它路径请用相对路径。

2.png

下面这个就是自定义函数了,添加到Uploader 类中 所有的参数都已在函数注释中说明,调用的时候需要注意一下


    private function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$textFont=5,$textColor="#FF0000")
    {
        $isWaterImage = FALSE;
        $fORMatMsg = "暂不支持该文件格式,请用图片处理软件将图片转换为GIF、JPG、PNG格式。";
        //读取水印文件
        if(!empty($waterImage) && file_exists($waterImage))
        {
            $isWaterImage = TRUE;
            $water_info = getimagesize($waterImage);
            $water_w = $water_info[0];//取得水印图片的宽
            $water_h = $water_info[1];//取得水印图片的高 
            switch($water_info[2])//取得水印图片的格式
            {
                case 1:$water_im = imagecreatefromgif($waterImage);break;
                case 2:$water_im = imagecreatefromjpeg($waterImage);break;
                case 3:$water_im = imagecreatefrompng($waterImage);break;
                default:die($formatMsg);
            }
        }
        //读取背景图片
        if(!empty($groundImage) && file_exists($groundImage))
        {
            $ground_info = getimagesize($groundImage);
            $ground_w = $ground_info[0];//取得背景图片的宽
            $ground_h = $ground_info[1];//取得背景图片的高
            switch($ground_info[2])//取得背景图片的格式
            {
                case 1:$ground_im = imagecreatefromgif($groundImage);break;
                case 2:$ground_im = imagecreatefromjpeg($groundImage);break;
                case 3:$ground_im = imagecreatefrompng($groundImage);break;
                default:die($formatMsg);
            }
        }
        else
        {
            die("需要加水印的图片不存在!");
        }
        //水印位置
        if($isWaterImage)//图片水印
        {
            $w = $water_w;
            $h = $water_h;
            $label = "图片的";
        }
        else//文字水印
        {
            $temp = imagettfbbox(ceil($textFont*5),0,"./cour.ttf",$waterText);//取得使用 TrueType 字体的文本的范围
            $w = $temp[2] - $temp[6];
            $h = $temp[3] - $temp[7];
            unset($temp);
            $label = "文字区域";
        }
        if( ($ground_w<$w) || ($ground_h<$h) )
        {
            echo "需要加水印的图片的长度或宽度比水印".$label."还小,无法生成水印!";
            return;
        }
        switch($waterPos)
        {
            case 0://随机
                $posX = rand(0,($ground_w - $w));
                $posY = rand(0,($ground_h - $h));
                break;
            case 1://1为顶端居左
                $posX = 0;
                $posY = 0;
                break;
            case 2://2为顶端居中
                $posX = ($ground_w - $w) / 2;
                $posY = 0;
                break;
            case 3://3为顶端居右
                $posX = $ground_w - $w;
                $posY = 0;
                break;
            case 4://4为中部居左
                $posX = 0;
                $posY = ($ground_h - $h) / 2;
                break;
            case 5://5为中部居中
                $posX = ($ground_w - $w) / 2;
                $posY = ($ground_h - $h) / 2;
                break;
            case 6://6为中部居右
                $posX = $ground_w - $w;
                $posY = ($ground_h - $h) / 2;
                break;
            case 7://7为底端居左
                $posX = 0;
                $posY = $ground_h - $h;
                break;
            case 8://8为底端居中
                $posX = ($ground_w - $w) / 2;
                $posY = $ground_h - $h;
                break;
            case 9://9为底端居右
                $posX = $ground_w - $w - 10;   // -10 是距离右侧10px 可以自己调节
                $posY = $ground_h - $h - 10;   // -10 是距离底部10px 可以自己调节
                break;
            default://随机
                $posX = rand(0,($ground_w - $w));
                $posY = rand(0,($ground_h - $h));
                break;
        }
        //设定图像的混色模式
        imagealphablending($ground_im, true);
        if($isWaterImage)//图片水印
        {
            imagecopy($ground_im, $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//拷贝水印到目标文件 
        }
        else//文字水印
        {
            if( !emptyempty($textColor) && (strlen($textColor)==7) )
            {
                $R = hexdec(substr($textColor,1,2));
                $G = hexdec(substr($textColor,3,2));
                $B = hexdec(substr($textColor,5));
            }
            else
            {
                die("水印文字颜色格式不正确!");
            }
            imagestring ( $ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B)); 
        }
        //生成水印后的图片
        @unlink($groundImage);
        switch($ground_info[2])//取得背景图片的格式
        {
            case 1:imagegif($ground_im,$groundImage);break;
            case 2:imagejpeg($ground_im,$groundImage);break;
            case 3:imagepng($ground_im,$groundImage);break;
            default:die($errorMsg);
        }
        //释放内存
        if(isset($water_info)) unset($water_info);
        if(isset($water_im)) imagedestroy($water_im);
        unset($ground_info);
        imagedestroy($ground_im);
    }

好啦,这个就好用了。上传图片加水印就好用了。

请注意:水印功能需要用到GD库模块,请检查下php是否安装了GD库模块。

VIP推荐:共22门课程,总价3725元,开通VIP会员免费

以上就是聊聊如何使用ueditor上传图片加水印的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 聊聊如何使用ueditor上传图片加水印

本文链接: https://www.lsjlt.com/news/33933.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 聊聊如何使用ueditor上传图片加水印
    如何用ueditor上传图片加水印?下面本篇文章给大家介绍一下使用ueditor上传图片加水印的方法,希望对大家有所帮助!博客在上传图片的时候,我希望能打上我博客链接的水印,掘金,csdn都是这么干的,这事我得学习。平时的图片上传还好说,在...
    99+
    2022-08-31
  • PHP利用ueditor实现上传图片添加水印
    博客在上传图片的时候,我希望能打上我博客链接的水印,掘金,csdn都是这么干的,这事我得学习。 平时的图片上传还好说,在文章编辑的时候,使用ueditor上传图片加水印需要修改ued...
    99+
    2022-11-13
  • 聊聊如何用php实现图片上传
    随着互联网的发展,图片上传成为了网站开发中非常常见的功能之一。利用php语言实现图片上传功能非常简单,只要掌握了一定的php基础知识,就可以轻松地完成这个任务。本文将介绍如何用php实现图片上传,具体步骤如下:一、创建html页面首先,我们...
    99+
    2023-05-14
    php 上传图片
  • 如何使用python给图片加水印
    这篇文章主要介绍如何使用python给图片加水印,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方式一:叠加文字水印最简单的一种方式是,在图片上绘制半透明文本来实现水印效果。主要用到Figure.text函数参数类型说...
    99+
    2023-06-15
  • 如何利用Java在图片上添加文字水印效果
    目录前言【1】获取原图片对象(1.1)读取本地图片(1.2)读取网络图片【2】创建画笔【3】添加文字水印【4】获取处理图片【5】源代码总结前言 今天分享一个:通过Java代码,给图片...
    99+
    2022-11-12
  • 如何使用canvas实现给图片添加平铺水印
    小编给大家分享一下如何使用canvas实现给图片添加平铺水印,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近项目中遇到一个需求,需要把一张图片加上平铺的水印类似...
    99+
    2023-06-09
  • 如何用nodejs给图片添加半透明水印
    本文小编为大家详细介绍“如何用nodejs给图片添加半透明水印”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何用nodejs给图片添加半透明水印”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2022-10-19
  • 帝国cms用户前台投稿上传图片自动加水印的实现方法
    帝国7.0 前台编辑器增加 上传图片加水印功能! 我的是最新版 ecms 7.0 utf-8 : 修改  e/class/qinfofun.php 的第1225行 复制代码代码如下:if($type==1)//...
    99+
    2022-06-12
    帝国cms 自动加水印
  • 如何使用js给网页加上水印背景
    这篇文章将为大家详细讲解有关如何使用js给网页加上水印背景,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。水印方法export function wat...
    99+
    2022-10-19
  • 如何在Vue中使用axios上传图片
    如何在Vue中使用axios上传图片?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在vue和axios的配合下实战一波<!--   &nbs...
    99+
    2023-06-15
  • vue项目中如何使用axios上传图片
    这篇文章将为大家详细讲解有关vue项目中如何使用axios上传图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。axios 简介axios 是一个基于Promise 用于...
    99+
    2022-10-19
  • vue如何使用element实现上传图片和修改图片功能
    本篇内容主要讲解“vue如何使用element实现上传图片和修改图片功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue如何使用element实现上传图片和修改图片功能”吧!一、应用场景1....
    99+
    2023-07-02
  • HTML5可预览多图片如何使用Ajax上传
    这篇文章主要介绍了HTML5可预览多图片如何使用Ajax上传,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、关于图片上传什么什么的在XHT...
    99+
    2022-10-19
  • 如何使用HTML5实现多张图片上传功能
    小编给大家分享一下如何使用HTML5实现多张图片上传功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! HTML结构: &l...
    99+
    2022-10-19
  • Android如何使用腾讯X5浏览器上传图片
    小编给大家分享一下Android如何使用腾讯X5浏览器上传图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这几天在客户端接入一个Web页的客服系统,用来接受用户...
    99+
    2023-06-14
  • 如何android在中使用springMvc实现图片上传功能
    本篇文章为大家展示了如何android在中使用springMvc实现图片上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体内容如下Android端:String fileName = tvF...
    99+
    2023-05-31
    android roi springmvc
  • 如何使用HTML5移动开发图片压缩上传功能
    这篇文章主要为大家展示了“如何使用HTML5移动开发图片压缩上传功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用HTML5移动开发图片压缩上传功能”这...
    99+
    2022-10-19
  • html5如何使用Drag事件编辑器拖拽上传图片
    小编给大家分享一下html5如何使用Drag事件编辑器拖拽上传图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!本站的编辑器图片...
    99+
    2022-10-19
  • 如何使用express+multer实现node中的图片上传功能
    小编给大家分享一下如何使用express+multer实现node中的图片上传功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容介绍如下所示:在前端中,我们使用ajax来异步上传图...
    99+
    2022-10-19
  • HTML中如何使用上传图片插件、图文编辑、时间插件
    这篇文章将为大家详细讲解有关HTML中如何使用上传图片插件、图文编辑、时间插件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。<!DOCTYPE html>&l...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作