亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

前端canvas水印快速制作(附完整代碼)

2024-09-05 07:19:30
字體:
來源:轉載
供稿:網友

兩種水印效果如圖:

原理解析:

  • 圖一斜紋類:創建一個和頁面一樣大的畫布,根據頁面大小以及傾斜角度大致鋪滿水印文字,最后轉化為一張圖片設為背景
  • 圖二傾斜類:將文字傾斜后轉化為圖片,然后設置背景圖片repeat填充整個頁面

代碼分析:

這里我只簡略分析圖一斜紋類,事實上這兩種方式都較為簡單,不需要特別強的canvas基礎,只需大概了解就行,直接上完整代碼吧

圖一

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <meta http-equiv="X-UA-Compatible" content="ie=edge">  <title>Document</title>  <style>    .water {      width: 100vw;      height: 2000px;      position: absolute;      top: 0;      left: 0;      background-repeat: no-repeat;    }    .content {      width: 800px;      height: 2000px;      margin-left: auto;      margin-right: auto;      background: cadetblue;      overflow: hidden;          }  </style>  <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script></head><body>  <div class="content">    <div class="water"></div>  </div>    <script>    function addWaterMarker(str) {      // 這里限制了不超過15個字,實際按需求來      var cpyName = str;      if (str.length > 16) {        cpyName = str.substring(0, 16);      }      // 創建 canvas 元素      var can = document.createElement('canvas');      // 獲取 content 元素      var report = $('.content')[0]      // 將 canvas 元素添加到 content 中      report.appendChild(can);      // 設置 canvas頁面寬度,這里的 800 是因為我司水印文件大小固定,可按需求更改      can.width = 800;      // 獲取整個body高度      can.height = document.body.offsetHeight;      // 隱藏 canvas 元素      can.style.display = 'none';      can.style.zIndex = '999'      // 獲取 canvas 元素工具箱      var cans = can.getContext('2d');      // 設置文字傾斜角度為 -25 度以及樣式      cans.rotate(-25 * Math.PI / 180);      cans.font = "800 30px Microsoft JhengHei";      cans.fillStyle = "#000";      cans.textAlign = 'center';      cans.textBaseline = 'Middle';      // 動態改變字體大小      if(cans.measureText(cpyName).width > 180) {        var size = 180 / cpyName.length        cans.font = '800 ' + size +'px '+ ' Microsoft JhengHei'      }      /*         雙重遍歷,        當 寬度小于頁面寬度時,        當 高度小于頁面高度時,        這里的寬高可以適當寫大,目的是為了讓水印文字鋪滿       */      for(let i = (document.body.offsetHeight*0.5)*-1; i<800; i+=160) {        for(let j = 0; j<document.body.offsetHeight*1.5; j+=60) {          // 填充文字,x 間距, y 間距          cans.fillText(cpyName, i, j)        }      }      // 將 canvas 轉化為圖片并且設置為背景      report.style.backgroundImage = "url(" + can.toDataURL("image/png") + ")";    }    addWaterMarker('測試水印');  </script></body></html>

圖二

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <meta http-equiv="X-UA-Compatible" content="ie=edge">  <title>Document</title>  <style>    .water {      width: 100vw;      height: 2000px;      position: absolute;      top: 0;      left: 0;      background-repeat: no-repeat;    }    .content {      width: 800px;      height: 2000px;      margin-left: auto;      margin-right: auto;      background: cadetblue;      overflow: hidden;    }  </style></head><body>    <div class="content">      <div class="water"></div>    </div>  <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>  <script>    // 添加水印方法    function addWaterMarker(str) {      var cpyName = str;      if (str.length > 16) {        cpyName = str.substring(0, 16);      }      var can = document.createElement('canvas');      var report = $('.content')[0];      report.appendChild(can);      can.width = 180;      can.height = 110;      can.style.display = 'none';      can.style.zIndex = '999'      var cans = can.getContext('2d');      cans.rotate(-25 * Math.PI / 180);      cans.font = "800 30px Microsoft JhengHei";      cans.fillStyle = "#000";      cans.textAlign = 'center';      cans.textBaseline = 'Middle';      if(cans.measureText(cpyName).width > 180) {        var size = 180 / cpyName.length        cans.font = '800 ' + size +'px '+ ' Microsoft JhengHei'      }      cans.fillText(cpyName, 60, 100);      report.style.backgroundImage = "url(" + can.toDataURL("image/png") + ")";    }    addWaterMarker('測試水印');  </script></body></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久国产精品久久久久久久久久| 久久久国产一区二区三区| 亚洲天堂第二页| 97精品视频在线播放| 国产欧美欧洲在线观看| 韩国v欧美v日本v亚洲| 亚洲精品国产精品久久清纯直播| 日韩av中文字幕在线播放| 久久精品99国产精品酒店日本| 亚洲aaaaaa| 欧美成人午夜免费视在线看片| 久久99精品久久久久久噜噜| 国产精品国产亚洲伊人久久| 隔壁老王国产在线精品| 精品福利视频导航| 久久精品电影网| 亚洲成色777777在线观看影院| 伊是香蕉大人久久| 欧美自拍大量在线观看| 大胆人体色综合| 久久久av电影| 欧美激情日韩图片| 久色乳综合思思在线视频| 国产精品精品国产| 欧美午夜片欧美片在线观看| 久久久天堂国产精品女人| 亚洲自拍小视频| 中文字幕欧美亚洲| 欧美亚洲成人xxx| 欧美性少妇18aaaa视频| 精品国产1区2区| 狠狠色狠色综合曰曰| 91精品国产91久久久久久吃药| 日韩va亚洲va欧洲va国产| 日韩大片免费观看视频播放| 欧美日在线观看| 久久久精品欧美| 中文字幕视频一区二区在线有码| 91九色国产社区在线观看| 中文字幕久久久av一区| 欧美电影在线观看网站| 有码中文亚洲精品| 38少妇精品导航| 久久精品99国产精品酒店日本| 秋霞午夜一区二区| 国产精品丝袜久久久久久高清| 一区二区国产精品视频| 一区二区三区久久精品| 日韩精品在线免费观看| 国产精品美女在线观看| 中文字幕久久久av一区| 成人激情免费在线| 永久555www成人免费| 亚洲人高潮女人毛茸茸| 成人黄在线观看| 在线亚洲欧美视频| 国产视频精品免费播放| 久久精品视频播放| 91国偷自产一区二区三区的观看方式| 欧美视频裸体精品| 欧美巨大黑人极品精男| 日韩电影中文字幕一区| 日韩成人免费视频| 最近2019中文字幕大全第二页| 日韩美女激情视频| 久久精品99久久香蕉国产色戒| 69久久夜色精品国产69乱青草| 91国内产香蕉| 性色av一区二区三区红粉影视| 国产精品爽爽爽爽爽爽在线观看| 精品国产拍在线观看| 国产精品久久久久久久一区探花| 激情av一区二区| 亚洲国产精品成人av| 国产日韩换脸av一区在线观看| 日本久久亚洲电影| 久久不射热爱视频精品| 2019国产精品自在线拍国产不卡| 色诱女教师一区二区三区| 黑人与娇小精品av专区| 日韩毛片在线观看| 性视频1819p久久| 久久久久久久久爱| 黑人极品videos精品欧美裸| 亚洲精品成人久久电影| 羞羞色国产精品| 伊人久久久久久久久久久| 亚洲精品国产精品自产a区红杏吧| 国产精品久久久久久久久久小说| 亚洲最新av在线| 久久伊人精品视频| 美日韩精品视频免费看| 久久久久久久久久国产| 久久精品视频在线播放| 97福利一区二区| 国产精品永久免费视频| 国产欧美日韩免费| 免费91麻豆精品国产自产在线观看| 亚洲xxxx做受欧美| 日韩中文av在线| 亚洲精品国产精品国产自| 亚洲人成电影在线播放| 成人国产精品一区二区| 久久综合国产精品台湾中文娱乐网| 国产成人精品久久久| 国产在线播放91| 亚洲精品美女在线| 国产精品高清在线观看| 久久久精品久久久久| 欧美性猛交xxxx乱大交蜜桃| 国产亚洲一区二区在线| 91精品国产乱码久久久久久蜜臀| 欧美国产视频一区二区| 精品视频久久久久久| 91精品国产乱码久久久久久蜜臀| 亚洲最大激情中文字幕| 国产日韩精品综合网站| 成人做爰www免费看视频网站| 久久久国产91| 日韩精品中文字幕视频在线| 亚洲va码欧洲m码| 97热精品视频官网| 日韩成人在线电影网| 欧美性极品少妇精品网站| 亚洲免费一在线| 欧美华人在线视频| 亚洲free性xxxx护士白浆| 亚洲3p在线观看| 欧美成人国产va精品日本一级| 欧美午夜女人视频在线| 亚洲精品国产精品国自产在线| 欧美成年人视频网站| 亚洲欧洲一区二区三区在线观看| 成人黄色影片在线| 亚洲成人黄色在线观看| 亚洲激情在线观看| 久久久精品免费| 久久久久久久久久久人体| **欧美日韩vr在线| 国产精品国产三级国产aⅴ浪潮| 中文字幕亚洲综合| 欧美日韩在线免费| 国产精品久久久久久婷婷天堂| 久久91亚洲精品中文字幕奶水| 国产乱人伦真实精品视频| 精品女同一区二区三区在线播放| 亚洲最新视频在线| 欧美精品久久久久| 欧美国产日韩一区二区三区| 国产欧美一区二区三区久久人妖| 91在线观看免费高清完整版在线观看| 91久久久在线| 青青青国产精品一区二区| 久久综合色影院| 成人字幕网zmw| 国产日韩在线亚洲字幕中文| 久久精品亚洲热| 亲子乱一区二区三区电影| 日本精品久久久| 欧美激情视频给我| 亚洲色图五月天| 国产精品久久久久久久久免费| 久久免费少妇高潮久久精品99| 国产福利精品av综合导导航|