日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

齐博php百度编辑器上传图片_php版百度编辑器ueditor怎样给上传图片自动添加水印?...

發布時間:2023/12/10 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 齐博php百度编辑器上传图片_php版百度编辑器ueditor怎样给上传图片自动添加水印?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

百度ueditor是廣泛使用的所見即所得圖文排版編輯插件,功能比較完善,美中不足就是不支持自動加水印。萬維景盛工程師搜集到php版ueditor自動加水印的教程,希望對大家有幫助。

1.打開ueditor目錄下的php目錄下的config.json?文件

在上傳配置項添加下面代碼:

"iswatermark": "true",

2.打開ueditor目錄下的php目錄下的action_upload.php文件,搜索代碼:case?'uploadimage':

$config?=?array(

"pathFormat"?=>?$CONFIG['imagePathFormat'],

"maxSize"?=>?$CONFIG['imageMaxSize'],

"allowFiles"?=>?$CONFIG['imageAllowFiles']

);

$fieldName?=?$CONFIG['imageFieldName'];

break;

在“break;”前添加:$watermark?=

$CONFIG['is

watermark

']

;

這句話就可以讀取配置文件的"iswatermark"值了。

繼續在這個文件搜索代碼:$up?=?new?Uploader($fieldName,?$config,?$base64);

把它改成:$up?=?new?Uploader($fieldName,?$config,?$base64,?$watermark);

這樣就可以實例化Uploader類時帶上$watermark變量。

3.這是最后一步,也是最重要的一步。打開ueditor目錄下的php目錄下的Uploader.class.php文件。

在這個類里面添加private?$water;?//是否添加水印(屬性)

這句話。

把構造方法改成public?function?__construct($fileField,?$config,?$type?=?"upload",?$watermark?=?false)

在構造方法里面寫上 ?($this->water = $watermark; )這句話。

在upFile 方法內部后面添加以下代碼:if(?$this->water?){

$this->watermark($this->filePath,$this->filePath);

}

在這個類文件里添加以下方法,實現圖片添加水印就靠它了。【*

*?圖片加水印

*?$source??string??圖片資源

*?$target??string??添加水印后的名字

*?$w_pos???int?????水印位置安排(1-10)【1:左頭頂;2:中間頭頂;3:右頭頂...值空:隨機位置】

*?$w_img???string??水印圖片路徑

*?$w_text??string??顯示的文字

*?$w_font??int?????字體大小

*?$w_color?string??字體顏色

*】

public?function?watermark($source,?$target?=?'',?$w_pos?=?'',?$w_img?=?'',?$w_text?=?'www.aiyu.com',$w_font?=?10,?$w_color?=?'#CC0000')?{

$this->w_img?=?'../watermark.png';//水印圖片

$this->w_pos?=?9;

$this->w_minwidth?=?400;//最少寬度

$this->w_minheight?=?200;//最少高度

$this->w_quality?=?80;//圖像質量

$this->w_pct?=?85;//透明度

$w_pos?=?$w_pos???$w_pos?:?$this->w_pos;

$w_img?=?$w_img???$w_img?:?$this->w_img;

if(!$this->check($source))?return?false;

if(!$target)?$target?=?$source;

$source_info?=?getimagesize($source);//圖片信息

$source_w??=?$source_info[0];//圖片寬度

$source_h??=?$source_info[1];//圖片高度

if($source_w?w_minwidth?||?$source_h?w_minheight)?return?false;

switch($source_info[2])?{?//圖片類型

case?1?:?//GIF格式

$source_img?=?imagecreatefromgif($source);

break;

case?2?:?//JPG格式

$source_img?=?imagecreatefromjpeg($source);

break;

case?3?:?//PNG格式

$source_img?=?imagecreatefrompng($source);

//imagealphablending($source_img,false);?//關閉混色模式

imagesavealpha($source_img,true);?//設置標記以在保存?PNG?圖像時保存完整的?alpha?通道信息(與單一透明色相反)

break;

default?:

return?false;

}

if(!empty($w_img)?&&?file_exists($w_img))?{?//水印圖片有效

$ifwaterimage?=?1;?//標記

$water_info??=?getimagesize($w_img);

$width????=?$water_info[0];

$height????=?$water_info[1];

switch($water_info[2])?{

case?1?:

$water_img?=?imagecreatefromgif($w_img);

break;

case?2?:

$water_img?=?imagecreatefromjpeg($w_img);

break;

case?3?:

$water_img?=?imagecreatefrompng($w_img);

imagealphablending($water_img,false);

imagesavealpha($water_img,true);

break;

default?:

return;

}

}else{

$ifwaterimage?=?0;

$temp?=?imagettfbbox(ceil($w_font*2.5),?0,?'../../texb.ttf',?$w_text);?//imagettfbbox返回一個含有?8?個單元的數組表示了文本外框的四個角

$width?=?$temp[2]?-?$temp[6];

$height?=?$temp[3]?-?$temp[7];

unset($temp);

}

switch($w_pos)?{

case?1:

$wx?=?5;

$wy?=?5;

break;

case?2:

$wx?=?($source_w?-?$width)?/?2;

$wy?=?0;

break;

case?3:

$wx?=?$source_w?-?$width;

$wy?=?0;

break;

case?4:

$wx?=?0;

$wy?=?($source_h?-?$height)?/?2;

break;

case?5:

$wx?=?($source_w?-?$width)?/?2;

$wy?=?($source_h?-?$height)?/?2;

break;

case?6:

$wx?=?$source_w?-?$width;

$wy?=?($source_h?-?$height)?/?2;

break;

case?7:

$wx?=?0;

$wy?=?$source_h?-?$height;

break;

case?8:

$wx?=?($source_w?-?$width)?/?2;

$wy?=?$source_h?-?$height;

break;

case?9:

$wx?=?$source_w?-?($width+5);

$wy?=?$source_h?-?($height+5);

break;

case?10:

$wx?=?rand(0,($source_w?-?$width));

$wy?=?rand(0,($source_h?-?$height));

break;

default:

$wx?=?rand(0,($source_w?-?$width));

$wy?=?rand(0,($source_h?-?$height));

break;

}

if($ifwaterimage)?{

if($water_info[2]?==?3)?{

imagecopy($source_img,?$water_img,?$wx,?$wy,?0,?0,?$width,?$height);

}else{

imagecopymerge($source_img,?$water_img,?$wx,?$wy,?0,?0,?$width,?$height,?$this->w_pct);

}

}else{

if(!empty($w_color)?&&?(strlen($w_color)==7))?{

$r?=?hexdec(substr($w_color,1,2));

$g?=?hexdec(substr($w_color,3,2));

$b?=?hexdec(substr($w_color,5));

}else{

return;

}

imagestring($source_img,$w_font,$wx,$wy,$w_text,imagecolorallocate($source_img,$r,$g,$b));

}

switch($source_info[2])?{

case?1?:

imagegif($source_img,?$target);

//GIF?格式將圖像輸出到瀏覽器或文件(欲輸出的圖像資源,?指定輸出圖像的文件名)

break;

case?2?:

imagejpeg($source_img,?$target,?$this->w_quality);

break;

case?3?:

imagepng($source_img,?$target);

break;

default?:

return;

}

if(isset($water_info)){

unset($water_info);

}

if(isset($water_img))?{

imagedestroy($water_img);

}

unset($source_info);

imagedestroy($source_img);

return?true;

}

public?function?check($image){

return?extension_loaded('gd')?&&?preg_match("/\.(jpg|jpeg|gif|png)/i",?$image,?$m)?&&?file_exists($image)?&&?function_exists('imagecreatefrom'.($m[1]?==?'jpg'???'jpeg'?:?$m[1]));

}

4.設定水印圖片文件

把水印圖片命名為watermark.png,把它存放在ueditor目錄下。如果你覺得這樣不好,那么你在步驟3.4時候就寫你水印圖片的路徑,溫馨提醒一下:ueditor目錄下的php目錄是當前目錄。

總結

以上是生活随笔為你收集整理的齐博php百度编辑器上传图片_php版百度编辑器ueditor怎样给上传图片自动添加水印?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。