婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

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

兩種水印效果如圖:

原理解析:

  • 圖一斜紋類:創(chuàng)建一個和頁面一樣大的畫布,根據(jù)頁面大小以及傾斜角度大致鋪滿水印文字,最后轉化為一張圖片設為背景
  • 圖二傾斜類:將文字傾斜后轉化為圖片,然后設置背景圖片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);
      }
      // 創(chuàng)建 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';
      // 動態(tài)改變字體大小
      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>

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

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

巨人網絡通訊聲明:本文標題《前端canvas水印快速制作(附完整代碼)》,本文關鍵詞  前端,canvas,水印,快速,制作,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《前端canvas水印快速制作(附完整代碼)》相關的同類信息!
  • 本頁收集關于前端canvas水印快速制作(附完整代碼)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产黄色精品网站| 欧美一区二区三区视频免费| 欧美精品久久久久久久多人混战 | 亚洲精品中文在线观看| 久久国产尿小便嘘嘘尿| 色94色欧美sute亚洲13| 久久综合色天天久久综合图片| 亚洲国产一二三| kk眼镜猥琐国模调教系列一区二区| 91精品国产综合久久小美女| 中文字幕视频一区| 国内精品嫩模私拍在线| 欧美人妖巨大在线| 一区二区三区鲁丝不卡| 94-欧美-setu| 久久精品亚洲麻豆av一区二区| 人人狠狠综合久久亚洲| 欧美图片一区二区三区| 亚洲人成在线播放网站岛国| 国产福利一区在线| 久久久www成人免费毛片麻豆| 日韩成人一区二区| 8v天堂国产在线一区二区| 亚洲综合精品久久| 色欧美片视频在线观看| 亚洲女与黑人做爰| 色综合久久久久| 亚洲欧洲另类国产综合| av成人动漫在线观看| 国产精品色在线| a级精品国产片在线观看| 国产日韩欧美精品综合| 国产精品一品二品| 久久蜜桃av一区二区天堂| 国产乱码精品一品二品| 久久久久久麻豆| 国产麻豆成人精品| 亚洲国产精品成人综合 | 亚洲男人的天堂一区二区| 99久免费精品视频在线观看| 欧美激情在线免费观看| av中文字幕在线不卡| 亚洲免费在线看| 欧美日韩精品欧美日韩精品| 日韩黄色片在线观看| 精品国产污网站| 国产成人免费网站| 亚洲激情在线激情| 在线综合视频播放| 国内精品写真在线观看| 亚洲天堂成人在线观看| 欧美日韩免费在线视频| 青青青爽久久午夜综合久久午夜| 精品久久久久久久久久久久久久久| 国产乱理伦片在线观看夜一区| 国产人成一区二区三区影院| 一本一道综合狠狠老| 天堂成人国产精品一区| 精品国产一区a| 色婷婷久久久久swag精品| 日韩精品一二三区| 久久综合九色综合97婷婷女人 | 国产欧美一区二区精品秋霞影院| a4yy欧美一区二区三区| 亚洲va欧美va人人爽| 亚洲精品在线一区二区| 波多野结衣欧美| 男人的天堂久久精品| 国产精品三级电影| 337p亚洲精品色噜噜| 成人中文字幕电影| 日本一区中文字幕| 中文字幕欧美区| 91精品欧美久久久久久动漫 | 91欧美激情一区二区三区成人| 日韩电影在线免费| 中文字幕亚洲一区二区av在线 | 国产欧美一区二区精品忘忧草 | 亚洲香肠在线观看| 亚洲精品在线观| 欧美精品自拍偷拍动漫精品| 国产91精品一区二区麻豆亚洲| 三级亚洲高清视频| 亚洲三级理论片| 国产亚洲综合在线| 91精品国产aⅴ一区二区| 色综合久久中文综合久久牛| 国产宾馆实践打屁股91| 美女在线一区二区| 洋洋成人永久网站入口| 国产欧美综合在线观看第十页| 日韩午夜av电影| 欧美日韩国产欧美日美国产精品| 不卡av在线网| 国产sm精品调教视频网站| 国产一区二区三区日韩| 美脚の诱脚舐め脚责91 | 欧美一卡二卡三卡四卡| 在线一区二区视频| 97精品国产97久久久久久久久久久久| 国内一区二区视频| 久久9热精品视频| 美女一区二区视频| 精品在线一区二区| 久久99精品国产麻豆婷婷| 日本中文在线一区| 蜜臀av一区二区在线观看| 秋霞成人午夜伦在线观看| 琪琪久久久久日韩精品| 免费国产亚洲视频| 久久精品国产秦先生| 国内精品伊人久久久久av一坑| 奇米精品一区二区三区在线观看| 亚洲成精国产精品女| 日韩精品福利网| 蜜桃视频在线观看一区二区| 久久精工是国产品牌吗| 久久成人免费日本黄色| 久久99久久99小草精品免视看| 极品尤物av久久免费看| 国产成人精品影视| 成人精品在线视频观看| 色综合视频在线观看| 色噜噜久久综合| 欧美日韩一区二区欧美激情| 欧美日韩精品一区二区| 日韩欧美在线影院| 国产女主播一区| 亚洲人成精品久久久久久| 亚洲国产综合视频在线观看| 日韩精品1区2区3区| 国产资源在线一区| heyzo一本久久综合| 欧美在线看片a免费观看| 欧美成人三级在线| 国产精品成人免费| 午夜视频一区二区| 国产自产v一区二区三区c| 91麻豆123| 欧美不卡激情三级在线观看| 中文字幕 久热精品 视频在线| 一区2区3区在线看| 久久99精品久久只有精品| 91网址在线看| 欧美大片顶级少妇| 亚洲蜜臀av乱码久久精品| 琪琪久久久久日韩精品| 97精品久久久久中文字幕 | 欧美日韩国产综合一区二区| 精品日韩在线观看| 亚洲一区自拍偷拍| 国产精一区二区三区| 欧美视频中文字幕| 国产网站一区二区三区| 午夜精品免费在线| 成人h动漫精品| 日韩一区二区三区在线视频| 国产精品国产三级国产普通话三级 | 欧美色偷偷大香| 中文字幕乱码日本亚洲一区二区| 亚洲高清三级视频| 国产成人小视频| 欧美刺激午夜性久久久久久久| 亚洲欧美成人一区二区三区| 国产一区二区三区最好精华液| 在线观看不卡一区| 国产精品久久久久婷婷| 狠狠色丁香久久婷婷综| 欧美精品自拍偷拍动漫精品| 亚洲男人的天堂av| 9久草视频在线视频精品| 日韩一级高清毛片| 午夜久久久久久电影| av在线不卡免费看| 国产欧美日本一区二区三区| 久久国产精品99久久人人澡| 7777女厕盗摄久久久| 一级日本不卡的影视| av中文字幕不卡| 中文字幕在线不卡一区二区三区| 久久99精品久久久久久久久久久久| 51久久夜色精品国产麻豆| 亚洲一区二区视频在线观看| 91免费国产视频网站| 国产精品国产精品国产专区不片| 国内精品视频一区二区三区八戒 | 国产精品18久久久久久久久久久久 | **网站欧美大片在线观看| 成人免费不卡视频| 欧美激情一区二区在线| 国产大陆精品国产| 欧美极品aⅴ影院| 粉嫩aⅴ一区二区三区四区| 国产婷婷色一区二区三区四区| 激情综合亚洲精品| 国产三级精品视频| 成人性生交大合| 亚洲欧美日韩中文播放| 日本久久精品电影| 日韩**一区毛片|