使用阿里雲OSS給圖片添加水印


一、需求。

  1.1、Laravel下給圖片添加水印;

二、分析。

  2.1、給圖片添加水印,一個是可以用PHP的GD庫處理,Laravel下可以直接通過Composer安裝別人寫好的處理擴展實現。

composer require intervention/image

  2.2、第二種推薦使用阿里雲對象存儲OSS實現。下面簡單記錄下Laravel6.0下使用OSS實現給圖片添加水印。

------------------------------------------沉默的分割線---------------------------------------------------------

三、Laravel6.0使用阿里雲對象存儲OSS具體步驟。

  第一步:通過Composer安裝對象存儲的PHP SDK:https://help.aliyun.com/document_detail/85580.html

composer require aliyuncs/oss-sdk-php

  第二步:安裝完擴展后,修改Laravel的文件存儲磁盤為OSS,在config/filesystems.php中添加oss配置參數,如下參數具體值可以從自己的注冊阿里雲oss上獲取:https://help.aliyun.com/document_detail/31827.html

        'oss' => [
            'driver' => 'oss',//存儲方式oss
            'access_id' => env('阿里雲oss賬戶'),
            'access_key' => env('阿里雲oss密鑰'),
            'bucket' => env('你的桐名'),
            'endpoint' => env('你的端點名'),
            'url' => env('你的域名'),
            'ssl' => env('是否開啟ssl'),
        ],

  第三步:如上安裝后,使用Laravel上傳圖片,如果接口報 Driver [oss] is not supported,可安裝如下擴展解決。

composer require  "jacobcyl/ali-oss-storage: dev-master"

  第四步:創建測試上傳接口,開始測試圖片上傳,代碼如下。

    public function updateOSS(Request $request)
    {
        $file = $request->file();
        //圖片驗證
        $imgKeyArr = array_keys($file);
        try {
            $savename = Storage::putFile('watermark', $request->file($imgKeyArr[0]));
        } catch (\Exception $e) {
            dd($e->getMessage());//上傳出錯
        }
        //拼接域名前綴
        $url = env('OSS_URL');
        $fileUrl = $url . '/' . $savename;
        dd($fileUrl);
    }

  第五步:通過Postman請求上傳接口,結果如下。

   第六步:訪問圖片地址。

  第七步:給圖片加文字水印,效果如下。

  :該圖片效果的url

 

   重點:效果實現說明:

  3.1、如果直接添加文字水印,直接將文字進行base64編碼后,添加相應參數,然后加到圖片url后面既可。

  3.2、如果是給圖片添加圖片水印,先將該水印上傳到OSS上,然后將返回的水印圖片地址base64編碼后,添加相應參數,然后加到圖片url后面既可。

  3.3、如果是對圖片進行縮放/放大處理,直接在圖片url后添加相應參數既可。

  具體參數說明參考 阿里雲的文檔,寫的很詳細:https://help.aliyun.com/document_detail/44957.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM