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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ue编辑器拖拽上传图片_为百度UE编辑器上传图片添加水印功能

發布時間:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ue编辑器拖拽上传图片_为百度UE编辑器上传图片添加水印功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前些日子把phpcms的內置編輯器改成了百度UE編輯器,非常好用,但是有個地方不是很滿意,就是沒法給上傳的圖片加水印了,經過一番研究終于實現了出來,分享給大家

UEditor編輯器上傳圖片是自動提取的,但是圖片沒有水印功能,下面小編和各位一起來看看。

UEditor編輯器沒有上傳圖片加水印的功能,需要進行二次開發,本例是在PHPCMS系統中對百度編輯器進行二次開發,添加上傳圖片加水印功能。

首先打開UEditor編輯器文件目錄的php文件夾,打開Uploader.class.php,把PHPCMS添加水印的方法復制過來,加到這個類所有成員方法最后面,然后進行修改如下:

//圖片加水印

public function watermark($source, $target = '', $w_pos = '', $w_img = '', $w_text = '99danji',$w_font = 8, $w_color = '#ff0000') {

$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->watermark_enable || !$this->check($source)) return false;

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

//$w_img = PHPCMS_PATH.$w_img;

//define('WWW_PATH', dirname(dirname(dirname(__FILE__)));

$w_img = '../../../images/water/'.$w_img;

$source_info = getimagesize($source);

$source_w = $source_info[0];

$source_h = $source_info[1];

//if($source_w < $this->w_minwidth || $source_h < $this->w_minheight) return false;

switch($source_info[2]) {

case 1 :

$source_img = imagecreatefromgif($source);

break;

case 2 :

$source_img = imagecreatefromjpeg($source);

break;

case 3 :

$source_img = imagecreatefrompng($source);

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

break;

default :

return;

}

} else {

$ifwaterimage = 0;

$temp = imagettfbbox(ceil($w_font*2.5), 0, PC_PATH.'libs/data/font/elephant.ttf', $w_text);

$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;

$wy = $source_h - $height;

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

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

}

對比我修改的部分,由于phpcms水印可以在后臺管理設置,,phpcms自帶的水印方法通過讀取配置文件獲取路徑,和讀取數據庫設置獲取參數設置,那么這些地方需要手動進行設置。

對了,在upFile方法還要添加一段函數:

復制代碼 代碼如下:

if ($this->watermark) {

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

}

然后打開UEditor百度編輯器php目錄下的action_upload.php文件,加上是否添加水印的參數:

/* 上傳配置 */

$base64 = "upload";

switch (htmlspecialchars($_GET['action'])) {

case 'uploadimage':

$config = array(

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

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

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

);

$fieldName = $CONFIG['imageFieldName'];

$watermark = true;

break;

然后在后面還有一句要改成:

復制代碼 代碼如下:

/* 生成上傳實例對象并完成上傳 */

$up = new Uploader($fieldName, $config, $base64, $watermark);

這樣就大功告成了,本文主要是提供思路和參考。

以上所述就是本文的全部內容了,希望大家能夠喜歡,能夠對大家使用ue編輯器有所幫助。

本文原創發布php中文網,轉載請注明出處,感謝您的尊重!

總結

以上是生活随笔為你收集整理的ue编辑器拖拽上传图片_为百度UE编辑器上传图片添加水印功能的全部內容,希望文章能夠幫你解決所遇到的問題。

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