ckedit编辑器增加水印功能

2013-02-20 16:56 来源:www.chinab4c.com 作者:ecshop专家

   ckedit编辑器增加水印功能,这个功能是必须的,我们在文件上传,特别是特片上传的时候,都需要通过ckedit来传图片,为了保证图片的版权和合法性,我们可以通过对ckedit来进行文件上传简单的水印操作功能,最大限度的保证ckedit上传的图片信息得到保障。

   1:制作透明的背景图片。放到images/upload/images目录。

   2:编写以下ckedit水印函数

    public function makewatermark($srcfile,$sServerDir='') {
       
        //$srcfile = '../../../../../../../../'.$srcfile;
        //水印图片
        $watermarkfile = $this->_currentFolder->getServerPath().'shuiyin.png';
       
        if(!file_exists($watermarkfile) || !$water_info = getimagesize($watermarkfile)) {
            return '';
        }
       
        $water_w = $water_info[0];
        $water_h = $water_info[1];
        $water_im = '';
        switch($water_info[2]) {
            case 1:@$water_im = imagecreatefromgif($watermarkfile);break;
            case 2:@$water_im = imagecreatefromjpeg($watermarkfile);break;
            case 3:@$water_im = imagecreatefrompng($watermarkfile);break;
            default:break;
        }
        if(empty($water_im)) {
            return '';
        }

        //原图
        if(!file_exists($srcfile) || !$src_info = getimagesize($srcfile)) {
            return '';
        }
       
        $src_w = $src_info[0];
        $src_h = $src_info[1];
        $src_im = '';
        switch($src_info[2]) {
            case 1:
                //判断是否为动画
                $fp = fopen($srcfile, 'rb');
                $filecontent = fread($fp, filesize($srcfile));
                fclose($fp);
                if(strpos($filecontent, 'NETSCAPE2.0') === FALSE) {//动画图不加水印
                    @$src_im = imagecreatefromgif($srcfile);
                }
                break;
            case 2:@$src_im = imagecreatefromjpeg($srcfile);break;
            case 3:@$src_im = imagecreatefrompng($srcfile);break;
            default:break;
        }
        if(empty($src_im)) {
            return '';
        }

        //加水印的图片的长度或宽度比水印小150px
        if(($src_w < $water_w + 150) || ($src_h < $water_h + 150)) {
            return '';
        }
       
        //位置
        $posx = $src_w - $water_w;
        $posy = $src_h - $water_h;

        //设定图像的混色模式
        @imagealphablending($src_im, true);
        //拷贝水印到目标文件
        @imagecopy($src_im, $water_im, $posx-10, $posy-10, 0, 0, $water_w, $water_h);
        switch($src_info[2]) {
            case 1:@imagegif($src_im, $srcfile);break;
            case 2:@imagejpeg($src_im, $srcfile);break;
            case 3:@imagepng($src_im, $srcfile);break;
            default:return '';
        }
       
        @imagedestroy($water_im);
        @imagedestroy($src_im);

    }

  3:在FileUpload.php里面通过以下方法调用ckedit水印函数

     $this->makewatermark($sFilePath,$sServerDir);

     通过以下操作,我们就完成了ckedit编辑器增加水印功能。

     来源:http://www.chinab4c.com