首頁 > php > phpcms > > 正文

phpcms V9.6.0版本整合百度ueditor1.4.3.2,包括水圖片上傳水印

發布人:[email protected]    點擊:

phpcms,整合Ueditor的教程很多,但是,都是云里霧里。你看我的文章,然后,安裝文章,一步步去找目錄,找文件,搜索關鍵詞,替換。然后,okay了……so easy,媽媽再也不用擔心編輯器不好用了…… phpcms的ckeditor太難用啊!!

第一步:下載ueitor:http://ueditor.baidu.com/website/download.html

解壓,把Ueditor,移動到static/js/目錄下

Unnamed QQ Screenshot20160301190408.jpg

Unnamed QQ Screenshot20160301190500.jpg

在找到如下地方:

4.jpg

把toolbar屬性修改為:

toolbars: [
     [
         'anchor', //錨點
         'undo', //撤銷
         'redo', //重做
         'bold', //加粗
         'indent', //首行縮進
         'snapscreen', //截圖
         'italic', //斜體
         'underline', //下劃線
         'strikethrough', //刪除線
         'subscript', //下標
         'fontborder', //字符邊框
         'superscript', //上標
         'formatmatch', //格式刷
         'source', //源代碼
         'blockquote', //引用
         'pasteplain', //純文本粘貼模式
         'selectall', //全選
         //'print', //打印
         'preview', //預覽
         'horizontal', //分隔線
         'removeformat', //清除格式
         'time', //時間
         'date', //日期
         'unlink', //取消鏈接
         'insertrow', //前插入行
         'insertcol', //前插入列
         'mergeright', //右合并單元格
         'mergedown', //下合并單元格
         'deleterow', //刪除行
         'deletecol', //刪除列
         'splittorows', //拆分成行
         'splittocols', //拆分成列
         'splittocells', //完全拆分單元格
         'deletecaption', //刪除表格標題
         'inserttitle', //插入標題
         'mergecells', //合并多個單元格
         'deletetable', //刪除表格
         'cleardoc', //清空文檔
         'insertparagraphbeforetable', //"表格前插入行"
         'insertcode', //代碼語言
         'fontfamily', //字體
         'fontsize', //字號
         'paragraph', //段落格式
         'simpleupload', //單圖上傳
         'insertimage', //多圖上傳
         'edittable', //表格屬性
         'edittd', //單元格屬性
         'link', //超鏈接
         'emotion', //表情
         'spechars', //特殊字符
         'searchreplace', //查詢替換
         'map', //Baidu地圖
         //'gmap', //Google地圖
         'insertvideo', //視頻
         'help', //幫助
         'justifyleft', //居左對齊
         'justifyright', //居右對齊
         'justifycenter', //居中對齊
         'justifyjustify', //兩端對齊
         'forecolor', //字體顏色
         'backcolor', //背景色
         'insertorderedlist', //有序列表
         'insertunorderedlist', //無序列表
         'fullscreen', //全屏
         'directionalityltr', //從左向右輸入
         'directionalityrtl', //從右向左輸入
         'rowspacingtop', //段前距
         'rowspacingbottom', //段后距
         'pagebreak', //分頁
         'insertframe', //插入Iframe
         'imagenone', //默認
         'imageleft', //左浮動
         'imageright', //右浮動
         'attachment', //附件
         'imagecenter', //居中
         'wordimage', //圖片轉存
         'lineheight', //行間距
         'edittip ', //編輯提示
         'customstyle', //自定義標題
         'autotypeset', //自動排版
         //'webapp', //百度應用
         'touppercase', //字母大寫
         'tolowercase', //字母小寫
         'background', //背景
         'template', //模板
         'scrawl', //涂鴉
         'music', //音樂
         'inserttable', //插入表格
         'drafts', // 從草稿箱加載
         'charts', // 圖表
     ]
 ]

initialFrameWidth屬性該為650,當然,你也可以修改全局樣式,把頁面變大

blob.png

        ,initialFrameWidth:650  //初始化編輯器寬度,默認1000

        //,initialFrameHeight:320  //初始化編輯器高度,默認320

同時,記得

5.jpg

讓提交按鈕到最頂層!

blob.png修改上傳路徑

/uploadfile/image/{yyyy}/{mm}{dd}/{yyyy}{mm}{dd}{hh}{ii}{ss}{rand:9}


最后,添加水印:

blob.png每一個這個后面那添加,添加類……類,class添加下面才成員方法!

7.jpg

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);
}

搜索,覆蓋……

大工告成!!

示范網站:

www.qsexmk.tw(周陸軍的個人網站,一起分享技術,一起學習……)