如何用ueditor上傳圖片加浮水印?以下這篇文章為大家介紹一下使用ueditor上傳圖片加浮水印的方法,希望對大家有幫助!
部落格上傳圖片的時候,我希望能打上我部落格連結的水印,掘金,csdn都是這麼幹的,這事我得學習。
平常的圖片上傳還好說,在文章編輯的時候,使用ueditor上傳圖片加浮水印需要修改ueditor部分PHP的源碼,我這裡大概記錄一下。
先開啟php資料夾下的Uploader.class.php
#找到private function upFile(),這是上傳檔案的主處理方法,
找到122行:$this->stateInfo = $this->stateMap[0];
在這個下面加入:$this-> ;imageWaterMark($this->filePath,9,'logo.png');
imageWaterMark是自訂的函數,
在下面會說到,$this- >filePath 這是上傳圖片的路徑,9 表示的是浮水印的位置,在右下角,logo.png這個就是你要加入的浮水印圖片了,這個在同一目錄下/php/,如果要放到其它路徑請用相對路徑。
下面這個就是自訂函數了,加入到Uploader 類別中 所有的參數都已在函數註解中說明,呼叫的時候需要注意一下
/* * 功能:PHP图片水印 (水印支持图片或文字) * 参数: *$groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式; *$waterPos水印位置,有10种状态,0为随机位置; *1为顶端居左,2为顶端居中,3为顶端居右; *4为中部居左,5为中部居中,6为中部居右; *7为底端居左,8为底端居中,9为底端居右; *$waterImage图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式; *$waterText文字水印,即把文字作为为水印,支持ASCII码,不支持中文; *$textFont文字大小,值为1、2、3、4或5,默认为5; *$textColor文字颜色,值为十六进制颜色值,默认为#FF0000(红色); * 注意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG *$waterImage 和 $waterText 最好不要同时使用,选其中之一即可,优先使用 $waterImage。 *当$waterImage有效时,参数$waterString、$stringFont、$stringColor均不生效。 *加水印后的图片的文件名和 $groundImage 一样。 */ 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<p>好啦,這個就好用了。上傳圖片加浮水印就好了。 </p><p>請注意:浮水印功能需要用到GD庫模組,請檢查下php是否安裝了GD庫模組。 </p><p>推薦學習:《<a href="https://www.php.cn/course/list/29/type/2.html" target="_blank">PHP影片教學</a>》</p>
以上是聊聊如何使用ueditor上傳圖片加浮水印的詳細內容。更多資訊請關注PHP中文網其他相關文章!