国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Ueditor上傳圖片自動(dòng)添加水?。ㄍㄓ脠D片文件)

這篇具有很好參考價(jià)值的文章主要介紹了Ueditor上傳圖片自動(dòng)添加水印(通用圖片文件)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、找到config.json,在配置文件中新增水印效果

 /* 上傳圖片配置項(xiàng) */
    "imageWater": "true",/*******************新增圖片水印設(shè)置  這里是新增*/
    "imageActionName": "uploadsimage", /* 執(zhí)行上傳圖片的action名稱 */
    "imageFieldName": "upfile", /* 提交的圖片表單名稱 * /* 上傳圖片配置項(xiàng) */
    "imageWater": "true",/*******************新增圖片水印設(shè)置  這里是新增*/
    "imageActionName": "uploadsimage", /* 執(zhí)行上傳圖片的action名稱 */
    "imageFieldName": "upfile", /* 提交的圖片表單名稱 */復(fù)制代碼/復(fù)制代碼

?2、找到php目錄下的 action_uploads.php 文件

(1)在上傳文件的時(shí)候讀取配置文件
/* 上傳配置 */
$base64 = "uploads";
switch (htmlspecialchars($_GET['action'])) {
    case 'uploadsimage':
        $config = array(
            "pathFormat" => $CONFIG['imagePathFormat'],
            "maxSize" => $CONFIG['imageMaxSize'],
            "allowFiles" => $CONFIG['imageAllowFiles']
        );
        $watermark = $CONFIG['imageWater']; //************************新增讀取參數(shù)
        $fieldName = $CONFIG['imageFieldName'];
        break;
    case 'uploadsscrawl':
 
 
(2)在實(shí)例化的時(shí)候傳入配置參數(shù)
$up = new uploadser($fieldName, $config, $base64,$watermark); // 最后的參數(shù)是新增

3、找到php同級(jí)目錄下的類 uploadser.class.php?

?

(1)實(shí)例化類的時(shí)候新增私有屬性
class uploadser
{
    private $water; //是否添加水印(屬性) *******************新增
 
 
 
(2)在構(gòu)造函數(shù)中添加傳遞的參數(shù),新增最后一個(gè)參數(shù)
public function __construct($fileField, $config, $type = "uploads",$watermark = false)
    {
        $this->water = $watermark;
        $this->fileField = $fileField;
 
(3)在文件上傳完成之后 upFile方法 的最后添加
    //移動(dòng)文件
        if (!(move_uploadsed_file($file["tmp_name"], $this->filePath) && file_exists($this->filePath))) { //移動(dòng)失敗
            $this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE");
        } else { //移動(dòng)成功
            $this->stateInfo = $this->stateMap[0];
        }
        //********************新增
        if( $this->water ){
            $this->watermark($this->filePath,$this->filePath);
        }
 
(4)添加水印函數(shù)和檢測(cè)文件是否存在函數(shù)
 /*
    * 圖片加水印
    * $source  string  圖片資源
    * $target  string  添加水印后的名字
    * $w_pos   int     水印位置 具體看代碼
    * $w_img   string  水印圖片路徑
    * $w_text  string  顯示的文字
    * $w_font  int     字體大小
    * $w_color string  字體顏色
    */
    private function watermark($source, $target = '', $w_pos = '', $w_img = '', $w_text = 'zhiwuhao.com',$w_font = 10, $w_color = '#CC0000') {
        $this->w_img = 'logo.png';//水印圖片的路徑
        $this->w_pos = 9;
        $this->w_minwidth = 400;//最少寬度
        $this->w_minheight = 200;//最少高度
        $this->w_quality = 80;//圖像質(zhì)量
        $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 < $this->w_minwidth || $source_h < $this->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); //關(guān)閉混色模式
                imagesavealpha($source_img,true); //設(shè)置標(biāo)記以在保存 PNG 圖像時(shí)保存完整的 alpha 通道信息(與單一透明色相反)
                break;
            default :
                return false;
        }
        if(!empty($w_img) && file_exists($w_img)) { //水印圖片有效
            $ifwaterimage = 1; //標(biāo)記
            $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($w_img,false);
                    imagesavealpha($w_img,true);
                    break;
                default :
                    return;
            }
        }else{
            $ifwaterimage = 0;
            $temp = imagettfbbox(ceil($w_font*2.5), 0, '../../texb.ttf', $w_text); //imagettfbbox返回一個(gè)含有 8 個(gè)單元的數(shù)組表示了文本外框的四個(gè)角
            $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;
    }
    /**
     * 檢測(cè)文件是否存在
     * @param $image
     * @return bool
     */
    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]));
    }
 
 
復(fù)制代碼

注意:以上代碼會(huì)提示一個(gè)錯(cuò)誤

imagealphablending() expects parameter 1 to be resource

imagesavealpha() expects parameter 1 to be resource

在這個(gè)位置:

Ueditor上傳圖片自動(dòng)添加水?。ㄍㄓ脠D片文件)

這個(gè)錯(cuò)誤是因?yàn)?imagealphablending()?和?imagesavealpha()?這兩個(gè)函數(shù)需要傳遞一個(gè)圖像資源作為參數(shù),但是在代碼中傳遞的參數(shù)?$w_img?是一個(gè)字符串(水印圖片的路徑),而不是一個(gè)圖像資源。

你需要將這兩個(gè)函數(shù)的參數(shù)改為?$water_img,也就是水印圖片創(chuàng)建的圖像資源。同時(shí),你需要修改以下代碼:

$water_img = imagecreatefrompng($w_img);

imagealphablending($water_img, false);

imagesavealpha($water_img, true);

修改后的代碼如下:

$water_img = imagecreatefrompng($w_img);
imagealphablending($source_img, false);
imagesavealpha($source_img, true);

?

文章來源:在線字典 www.zxzidian.com文章來源地址http://www.zghlxwxcb.cn/news/detail-523306.html

到了這里,關(guān)于Ueditor上傳圖片自動(dòng)添加水印(通用圖片文件)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 圖片和視頻的上傳(文件上傳通用)

    流程如下: 1、先引入 el-upload 2、調(diào)用上傳前事件 3、上傳前事件中將 file 文件轉(zhuǎn) formData 4、調(diào)用后端 oss 接口上傳文件 5、上傳完成后回顯數(shù)據(jù) 6、點(diǎn)擊圖片/視頻預(yù)覽 圖片和視頻的上傳(文件上傳通用) beforeAvatarUpload 為文件上傳前的操作,該方法中會(huì)攜帶一個(gè)參數(shù) file , f

    2024年02月08日
    瀏覽(13)
  • UEditor配置后端上傳圖片

    UEditor配置后端上傳圖片

    ??? 博客主頁 :?破浪前進(jìn) ?? 系列專欄 :?Vue、React、PHP ?? 感謝大家點(diǎn)贊??收藏?評(píng)論?? 接口:

    2024年02月06日
    瀏覽(31)
  • 百度ueditor如何能實(shí)現(xiàn)直接粘貼把圖片上傳到服務(wù)器中

    1.4.2之后官方并沒有做功能的改動(dòng),1.4.2在word復(fù)制這塊沒有bug,其他版本會(huì)出現(xiàn)手動(dòng)無法轉(zhuǎn)存的情況 本文使用的后臺(tái)是Java。前端為Jsp(前端都一樣,后臺(tái)如果語言不通得自己做 Base64編碼解碼) 因?yàn)楣緲I(yè)務(wù)需要支持IE8 ,網(wǎng)上其實(shí)有很多富文本框,效果都很好。 例如www.wan

    2024年02月04日
    瀏覽(31)
  • UEditor富文本編輯器上傳圖片打不開,提示“后端配置項(xiàng)沒有正常加載,上傳插件不能正常使用”

    UEditor富文本編輯器上傳圖片打不開,提示“后端配置項(xiàng)沒有正常加載,上傳插件不能正常使用”

    1、安裝 npm install?vue-ueditor-wrap 2、下載所需資源 這一步在解決報(bào)錯(cuò)的時(shí)候會(huì)用到 ?????????? UEditor資源下載鏈接 上面的打不開請(qǐng)從下面鏈接下載項(xiàng)目 ueditor-download: vue項(xiàng)目中集成ueditor的UE資源 3、下載完成后將文件夾放到public文件夾下 4、 配置ueditor.config.js,并且在main.j

    2024年02月13日
    瀏覽(97)
  • Ueditor編輯器任意文件上傳漏洞

    Ueditor編輯器任意文件上傳漏洞

    UEditor是一款所見即所得的開源富文本編輯器,具有輕量、可定制、用戶體驗(yàn)優(yōu)秀等特點(diǎn),被廣大WEB應(yīng)用程序所使用。本次爆出的高危漏洞屬于.NET版本,其它的版本暫時(shí)不受影響。漏洞成因是在抓取遠(yuǎn)程數(shù)據(jù)源的時(shí)候未對(duì)文件后綴名做驗(yàn)證導(dǎo)致任意文件寫入漏洞,黑客利用此

    2024年01月21日
    瀏覽(102)
  • 給圖片添加圖片水印

    ????????react + antd 4.x(此版本沒有watermark水?。枰獙⒑蠖藗鬟f的圖片添加圖片水印 1、水印添加問題 2、水印添加完成后顯示問題 ????????將watermark水印圖片和img需要添加水印的圖片同時(shí)創(chuàng)建了,以至于在img創(chuàng)建成功后watermark有可能還沒有創(chuàng)建成功,導(dǎo)致沒有進(jìn)入

    2024年02月21日
    瀏覽(16)
  • uniapp制作水印相機(jī)給圖片添加水印并且保存圖片至本地

    uniapp制作水印相機(jī)給圖片添加水印并且保存圖片至本地

    文件主要分為兩大類: 1.代碼包文件:代碼包文件指的是在項(xiàng)目目錄中添加的文件。 2.本地文件:通過調(diào)用接口本地產(chǎn)生,或通過網(wǎng)絡(luò)下載下來,存儲(chǔ)到本地的文件。 其中本地文件又分為三種: 1.本地臨時(shí)文件:臨時(shí)產(chǎn)生,隨時(shí)會(huì)被回收的文件。運(yùn)行時(shí)最多存儲(chǔ) 4GB,結(jié)束運(yùn)

    2024年02月11日
    瀏覽(34)
  • 自動(dòng)化測(cè)試工具airtest之上傳文件或圖片(web自動(dòng)化上傳圖片)

    自動(dòng)化測(cè)試工具airtest之上傳文件或圖片(web自動(dòng)化上傳圖片)

    web自動(dòng)化測(cè)試圖片上傳的方法: 第一種為當(dāng)具有input標(biāo)簽時(shí),如: input?type=\\\"file\\\" name=\\\"file\\\" multiple=\\\"multiple\\\" 這類可以通過selenium中的send_keys()上傳 直接實(shí)現(xiàn): driver.find_element_by_css_selector(\\\"[type=\\\'file\\\']\\\").send_keys(r\\\"文件地址\\\")? 第二種為當(dāng)不是input標(biāo)簽時(shí),將不能使用上述方法我們可以

    2024年02月06日
    瀏覽(24)
  • Python操作Word水?。禾砑游淖只驁D片水印

    Python操作Word水?。禾砑游淖只驁D片水印

    在Word文檔中,可以添加半透明的圖形或文字作為水印,以保護(hù)文檔的原創(chuàng)性,防止未經(jīng)授權(quán)的復(fù)制或使用。除了提供安全功能外,水印還可以展示文檔創(chuàng)作者的信息、附加的文檔信息,或者僅用于文檔的裝飾。本文將介紹如何使用 Spire.Doc for Python 在程序中的輕松 添加文字和

    2024年02月08日
    瀏覽(24)
  • 圖片添加水印,仿照水印相機(jī)樣式,定位時(shí)間備注等

    圖片添加水印,仿照水印相機(jī)樣式,定位時(shí)間備注等

    開發(fā)思路1、將每個(gè)元素添加分別單獨(dú)到背景圖片上,調(diào)整位置和透明度 開發(fā)思路2、將水印信息先整合為一張水印圖片,再將水印圖片添加到背景圖片,調(diào)整位置和透明度 因?yàn)榭紤]到不同圖片尺寸大小等問題,元素內(nèi)容又多,根據(jù)思路1,定位問題太麻煩,而且還因調(diào)整大小

    2024年02月20日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包