php实现ckeditor编辑器添加水印及使用误区

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27905477/article/details/78880821
是这个样子的,我的在给一个比较老的网站需要增加文章水印的功能,本来我是想拷贝来的 用就成了, 但是总是有错误提示!

因此,只能自己写了;

一、定义了一个 setwater.php的文件

```


function setwater($src,$water){
        //$src 为需要添加图片的源途径;$water为水印图片路径;
        //测试后,路径可采取相对路径进行访问;对此网站我们需要去掉 uploadfiles前的/

        $src_path = substr($src, 1);
        $water_path = $water;

        //获取图片的类型及宽/高
        list($src_w,$src_h,$src_type) = getimagesize($src_path);
        list($water_w,$water_h) = getimagesize($water_path);
        //pos 为水印放置的位置;右下角
        $posX = $src_w - $water_w;
        $posY = $src_h-$water_h;//假设它是符合坐标系y原则,

        //关于 水印宽度高度设置;我们采取不设置,那么水印的大小就是原始大小;

        if($src_w>400 && $src_h>200){
            //1 = GIF,2 = JPG,3 = PNG,4 = SWF
            $water_source = imagecreatefrompng($water_path);
            switch ($src_type) {
                case 1:
                    $src_source = imagecreatefromgif($src_path);
                    imagecopy($src_source, $water_source, $posX, $posY, 0, 0, $src_w, $src_h);
                    imagegif($src_source,$src_path);
                    break;
                case 2:
                    $src_source = imagecreatefromjpeg($src_path);
                    imagecopy($src_source, $water_source, $posX, $posY, 0, 0, $src_w, $src_h);
                    imagejpeg($src_source,$src_path);
                    break;
                case 3:
                    $src_source = imagecreatefrompng($src_path);
                    imagecopy($src_source, $water_source, $posX, $posY, 0, 0, $src_w, $src_h);
                    imagepng($src_source,$src_path);
                    break;
                default:
                    break;
            }
            $src = "/".$src_path;
            return $src;

        }else{
            //小图片不加水印
            return $src;
        }
        
        imagedestroy($src_source);
        imagedestroy($water_source);

    }
```
在编辑器图片板块的文件中设置调用:

```
//添加水印开始

    $filename = $config['site_url'].$file_abso;
    $wate = syurl;
    setwater($filename,$wate);

//添加水印结束
```

这个方法呢只传入两个参数,是图片的源路径,

关于路径,就是类似 很多网站自己定义的/upfileloads/…….......jpg,是读取不到图片的,可以使用网站的绝对路径或者相对路径才能进行访问!

第二个,网站有个随机命名图片名称的方式,但是在我设置图片增加水印的方法后,提示

it is,总之就是时区不对 的意思,在php.ini增加,时区为重庆,才ok了!

猜你喜欢

转载自blog.csdn.net/qq_27905477/article/details/78880821
今日推荐