好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 前端canvas水印快速制作(附完整代碼)

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

熱門標(biāo)簽:搜狗星級酒店地圖標(biāo)注 洛陽市伊川縣地圖標(biāo)注中心官網(wǎng) 地圖標(biāo)注自己去過的地方 高德地圖標(biāo)注錯誤怎么修改 江蘇高頻外呼系統(tǒng)線路 電銷機器人視頻 標(biāo)準(zhǔn)智能外呼系統(tǒng) 平頂山電子地圖標(biāo)注怎么修改 會聲會影怎樣做地圖標(biāo)注效果

兩種水印效果如圖:

原理解析:

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

代碼分析:

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

圖一

<!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);
      }
      // 創(chuàng)建 canvas 元素
      var can = document.createElement('canvas');
      // 獲取 content 元素
      var report = $('.content')[0]
      // 將 canvas 元素添加到 content 中
      report.appendChild(can);
      // 設(shè)置 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');
      // 設(shè)置文字傾斜角度為 -25 度以及樣式
      cans.rotate(-25 * Math.PI / 180);
      cans.font = "800 30px Microsoft JhengHei";
      cans.fillStyle = "#000";
      cans.textAlign = 'center';
      cans.textBaseline = 'Middle';
      // 動態(tài)改變字體大小
      if(cans.measureText(cpyName).width > 180) {
        var size = 180 / cpyName.length
        cans.font = '800 ' + size +'px '+ ' Microsoft JhengHei'
      }
      /* 
        雙重遍歷,
        當(dāng) 寬度小于頁面寬度時,
        當(dāng) 高度小于頁面高度時,
        這里的寬高可以適當(dāng)寫大,目的是為了讓水印文字鋪滿
       */
      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 轉(zhuǎn)化為圖片并且設(shè)置為背景
      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>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:松原 蚌埠 鄂爾多斯 常德 廣西 果洛 廣東 阿克蘇

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《前端canvas水印快速制作(附完整代碼)》,本文關(guān)鍵詞  前端,canvas,水印,快速,制作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《前端canvas水印快速制作(附完整代碼)》相關(guān)的同類信息!
  • 本頁收集關(guān)于前端canvas水印快速制作(附完整代碼)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 精品人妻无码一区二区三区色欲| 中国最小的比赛三点式视频| 啊~嗯~轻点嗯~轻点~嗯| 十大禁用软件app黄台大全下载 | 啊轻点灬大ji巴太粗太高h| 湘乡市| 老师的兔子好多软水视频播放 | 嗯~啊嗯嗯用力快点| 被各种道具调教肉np文| 狼毫笔湿h调教| 被迫改造禁脔尿孔改造扩张bl| 91午夜精品亚洲一区二区三区| 女人一级A片色黄情免费| 一夜未拔h| 床戏进去了h文| 昂~不要~咿呀| 志强小可的奶水爽文| 黄色中文字幕在线观看| 极品全能学生| 白丝美女被羞羞视频| 欧美精品96成人无码一区| 苍井无码一区二区三区黑太吊| 和主人玩露出调教暴露羞耻| 99亚洲精品自拍AV成人软件| 91福利社区在线观看| 秋霞一级成人欧美理论| 国产成人久久爽AAA| xxxx日本免费高清视频| 蜜臀91精品国产高清在线观看| 精品呦啊呦v视频在线观看| 大学生自慰AV片又黄又爽APP| 巨胸喷奶水| 超清波多野结衣精品一区| 亚洲国产精品无码久久久久高潮| 榴莲视频无码乱码A片不卡AV| 91麻豆精品国产理论片在线观看 | 95精品视频播放| 国产脚交footjob脚交HD| 国产精品极品白嫩在线播放| 国产精品久久久久精品三级红治院 | 一七六九精品视频在线观看|