Home  >  Article  >  Backend Development  >  Let’s talk about how to use ueditor to upload pictures and add watermarks

Let’s talk about how to use ueditor to upload pictures and add watermarks

青灯夜游
青灯夜游forward
2022-08-31 10:35:052980browse

How to use ueditor to upload pictures and add watermarks? The following article will introduce to you how to use ueditor to upload pictures and add watermarks. I hope it will be helpful to you!

Let’s talk about how to use ueditor to upload pictures and add watermarks

When the blog uploads pictures, I hope to put the watermark of my blog link. Nuggets and CSDN all do this. I have to learn this.

Usual picture uploading is okay. When editing articles, using ueditor to upload pictures and add watermarks requires modifying part of the PHP source code of ueditor. I will briefly record it here.

First open Uploader.class.php under the php folder

Let’s talk about how to use ueditor to upload pictures and add watermarks

Find the private function upFile(), which is the main processing method for uploading files,

Find line 122: $this->stateInfo = $this->stateMap[0];

Add below this: $this-&gt ;imageWaterMark($this->filePath,9,'logo.png');

imageWaterMark is a custom function,

will be mentioned below, $this- >filePath This is the path to upload the image. 9 represents the location of the watermark. In the lower right corner, logo.png is the watermark image you want to add. This is in the same directory/php/. If you want to put it in another path Please use relative paths.

Let’s talk about how to use ueditor to upload pictures and add watermarks

The following is a custom function, added to the Uploader class All parameters have been described in the function comments. You need to pay attention to

/*
    * 功能:PHP图片水印 (水印支持图片或文字)
    * 参数:
    
    *$groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式;
    
    *$waterPos水印位置,有10种状态,0为随机位置;
    
    *1为顶端居左,2为顶端居中,3为顶端居右;
    *4为中部居左,5为中部居中,6为中部居右;
    *7为底端居左,8为底端居中,9为底端居右;
    
    *$waterImage图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式;
    
    *$waterText文字水印,即把文字作为为水印,支持ASCII码,不支持中文;
    
    *$textFont文字大小,值为1、2、3、4或5,默认为5;
    
    *$textColor文字颜色,值为十六进制颜色值,默认为#FF0000(红色);
    
    * 注意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG
    
    *$waterImage 和 $waterText 最好不要同时使用,选其中之一即可,优先使用 $waterImage。
    
    *当$waterImage有效时,参数$waterString、$stringFont、$stringColor均不生效。
    
    *加水印后的图片的文件名和 $groundImage 一样。
    */
    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<p> when calling. Okay, this is easy to use. It's easy to upload pictures and add watermarks. </p><p>Please note: The watermark function requires the use of the GD library module. Please check whether PHP has the GD library module installed. </p><p> Recommended learning: "<a href="https://www.php.cn/course/list/29/type/2.html" target="_blank">PHP Video Tutorial</a>"</p>

The above is the detailed content of Let’s talk about how to use ueditor to upload pictures and add watermarks. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:juejin.cn. If there is any infringement, please contact admin@php.cn delete