成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 基于html5 canvas做批改作業(yè)的小插件

基于html5 canvas做批改作業(yè)的小插件

熱門標(biāo)簽:機器人外呼系統(tǒng)存在哪些能力 電話機器人黑斑馬免費 高德地圖標(biāo)注地點糾錯 電話機器人電銷系統(tǒng)掙話費 只辦理400電話 南昌仁和怎么申請開通400電話 平?jīng)龅貓D標(biāo)注位置怎么弄 如何獲取地圖標(biāo)注客戶 拓展地圖標(biāo)注

今天公司有一個新的需求,就是要在返回的作業(yè)照片里面可以涂鴉批改,批改完后就連同批改后的照片上傳到服務(wù)器。這對我不怎么熟悉canvas的人來說是個挑戰(zhàn)。

需求分析

  1. 能進行批改,就是相當(dāng)于畫筆
  2. 能進行畫筆的撤回功能
  3. 能進行全部畫筆的清除功能
  4. 可以轉(zhuǎn)化畫筆的顏色

技術(shù)上的實現(xiàn)思路

  在聽到這需求后的第一反應(yīng)就是用canvas來做,所以我在w3school閱讀了 canvas的API .

1.將圖片轉(zhuǎn)到canvas,用到API: drawImage()

2畫筆的實現(xiàn)

  • 當(dāng)按下鼠標(biāo)(mousedown)記錄開始點startX, startY
  • 當(dāng)移動鼠標(biāo)的時候(mousemove)就獲取當(dāng)前的鼠標(biāo)的坐標(biāo)e.clientX, e.clientY,獲取到了當(dāng)前的坐標(biāo)后,與上一個點的坐標(biāo)軸的左邊進行連線(lineTo ),這樣就能畫出了一條橫線了
  • 當(dāng)鼠標(biāo)松開左鍵(mouseup)時候,就清除mousemove的函數(shù)

3.清除功能:講原始的圖片再次用drawImage()函數(shù)來重置
4.撤回功能:在每次按下鼠標(biāo)那時候,用getImageData()函數(shù)獲取當(dāng)前的圖像記錄到數(shù)組里面,然后按撤回則使用putImageData()函數(shù)放在canvas
5.畫筆的顏色:在mousemove里面改變strokeStyle筆的顏色

代碼實現(xiàn)

移動鼠標(biāo)畫出線條的代碼

let self = this;
    this.canvasNode = document.createElement('canvas');
    let styleString = this.utils.formatStyle(CANVAS_STYLE); // CANVAS_STYLE是canvas的樣式
    this.canvasNode.setAttribute('id','canvas');
    // 一定要設(shè)置這width 和 height
    let ratio = this.imgNode.width / this.imgNode.height, height = this.imgNode.height, width = this.imgNode.width;
    let tempWidth , tempHeight;
    // 按比例伸縮
    if(ratio >= window.innerWidth / window.innerHeight){
      if(width > window.innerWidth){
        tempWidth = window.innerWidth;
        tempHeight = height * window.innerWidth / width;
      } else {
        tempWidth = width;
        tempHeight = height;
      }
    }else{
      if(height > window.innerHeight){
        tempWidth = width * window.innerHeight / width;
        tempHeight = window.innerHeight;
      }else{
        tempWidth = width;
        tempHeight = height;
      }
    }
    this.canvasNode.height = tempHeight;
    this.canvasNode.width = tempWidth;
    styleString = Object.assign({'width': tempWidth, 'height': tempHeight}, CANVAS_STYLE);
    this.canvasNode.setAttribute('style', styleString);

    let ctx = this.canvasNode.getContext('2d'), startX = 0, startY = 0;
    let image = new Image() ;
    image.setAttribute("crossOrigin",'Anonymous')
    // 加時間戳因為這圖片的域名沒設(shè)置跨域https://www.jianshu.com/p/c3aa975923de
    image.src = this.imgNode.src + '?t=' + new Date().getTime(); 
    image.height = tempHeight;
    image.width = tempWidth;
    image.onload = function(){
      ctx.drawImage(image, 0, 0, tempWidth, tempHeight);
    }
    // 鼠標(biāo)移動事件
    let mousemoveFn = function(e) {
      ctx.beginPath();
      ctx.lineWidth = 3;
      ctx.strokeStyle = self.currentColor;
      if(startX == e.clientX - self.canvasNode.offsetLeft || startY ===  e.clientY - self.canvasNode.offsetTop  ) return
      ctx.moveTo(startX,startY);
      ctx.lineTo(e.clientX - self.canvasNode.offsetLeft , e.clientY - self.canvasNode.offsetTop );
      ctx.stroke();
      startX = e.clientX - self.canvasNode.offsetLeft;
      startY = e.clientY - self.canvasNode.offsetTop ; // 37是header的高度
    }
    // 鼠標(biāo)按下事件
    this.canvasNode.addEventListener("mousedown",function(e){
      startX = e.clientX - self.canvasNode.offsetLeft;
      startY = e.clientY - self.canvasNode.offsetTop ;

      // 如果在mouseup那里記錄 則在撤回時候要做多一個步驟
      let imageData = ctx.getImageData(0,0, self.canvasNode.width, self.canvasNode.height);
      self.imageDataArray.push(imageData); // 這imageDataArray用來記錄畫筆的筆畫
      self.canvasNode.addEventListener("mousemove", mousemoveFn, false);
    },false);
    this.canvasNode.addEventListener('mouseup', function(e){
      self.canvasNode.removeEventListener('mousemove', mousemoveFn);
    });
    this.bgNode.appendChild(this.canvasNode);

遇到的問題

1.圖片的跨域問題   因為這個域名只設(shè)置了192.168.6.*的跨域,所以我localhost的域名會報跨域的問題(只對192.168.6.*的跨域是同事告訴我的,不然我還在傻乎乎的查問題)

解決辦法:設(shè)置vue.congfig.js文件的dev下的host

2.圖片的按比例伸縮完按保存后圖片的尺寸變了   我用toDataURL()方法輸出的base64后的圖片尺寸變了。原因:在我把圖片draw上canvas上時候,用了上面代碼的圖片那比例伸縮的算法把圖片變小了,所以畫在canvas上的圖片也變小了...

解決辦法:(待解決)

總結(jié)

  • 第一次接觸canvas與圖片相結(jié)合的功能,讓我熟悉了canvas的api
  • 在遇到?jīng)]做過的功能之前,一定要先定下心來運用你所知道的知識思考下有沒可行的方法,找到了突破點就可以做了
  • 在你碰上不熟悉的知識時候,一定要先看api,我這canvas之前不怎么會的,之后我細(xì)看了幾遍的api,我就可以上手去做功能了,并且在w3school看到的例子讓我覺得canvas真的很強大

到此這篇關(guān)于基于html5 canvas做批改作業(yè)的小插件的文章就介紹到這了,更多相關(guān)canvas 批改作業(yè)插件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標(biāo)簽:西藏 新疆 棗莊 遼源 漯河 池州 永州 青島

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于html5 canvas做批改作業(yè)的小插件》,本文關(guān)鍵詞  基于,html5,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)文章
  • 下面列出與本文章《基于html5 canvas做批改作業(yè)的小插件》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于html5 canvas做批改作業(yè)的小插件的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    91精品国产91久久久久久| 色中色综合网| av电影在线观看一区二区三区| 一区二区中文字幕在线观看| 亚洲黄色天堂| 一道精品视频一区二区三区男同| 又黄又爽在线观看| 97人洗澡人人免费公开视频碰碰碰| 亚洲自拍第二页| 中文字幕制服丝袜| 亚洲精品免费一二三区| 久久久久这里只有精品| 26uuu久久噜噜噜噜| 欧美69精品久久久久久不卡| av在线播放一区二区| 一本一本久久a久久精品综合小说| 亚洲成人av免费观看| 日韩精品一二区| 国产精品久久久久精k8| 在线一区欧美| 中文字幕2020第一页| 欧洲成人一区二区| yjizz视频网站在线播放| 欧美国产一区二区在线观看| 免费成人在线视频观看| 又粗又大的机巴好爽欧美| 久久综合综合久久综合| 伊人青青综合网站| 狠狠综合久久av一区二区小说| 欧美性受xxxx黒人xyx性爽| 久久影视中文粉嫩av| 国产美女撒尿一区二区| 日本一区二区不卡在线| 欧美中文字幕视频在线观看| 国内精品久久国产| 欧美尤物巨大精品爽| 番号集在线观看| 色成人亚洲网| 国产精品一区二区无码对白| 亚洲欧洲xxxx| www.jizz在线观看| 韩国一区二区三区四区| 日韩精品中文字幕视频在线| 51国产成人精品午夜福中文下载| 性欧美freehd18| 亚洲精品乱码久久久久久久久| 日本高清不卡中文字幕| 久久久av毛片精品| xxxcom在线观看| 成人精品一区二区三区校园激情| av无码一区二区三区| 久久夜色精品国产欧美乱极品| 国产精品小仙女| 亚洲一级免费毛片| 综合欧美一区二区三区| 欧美情侣在线播放| 欧美日韩一视频区二区| 国产男女av| 色激情天天射综合网| 国产成人精品a视频一区www| 欧美日韩成人综合天天影院| 中文字幕在线中文| 日韩一区二区视频在线观看| 日本三级一区二区| 日韩综合在线观看| 欧美激情办公室videoshd| 日日躁夜夜躁白天躁晚上躁91| 日韩在线精品强乱中文字幕| 精品丝袜一区二区三区| 免费观看在线午夜影视| 欧美中日韩免费视频| 国产精品揄拍一区二区| 中日韩一区二区三区| 精品视频在线观看免费观看| 毛片.com| 精品国产日本| 亚洲免费看黄网站| 猫咪成人在线观看| 国产精品人人妻人人爽| 国产午夜亚洲精品理论片色戒| 免费一级在线观看| 成人久久久久爱| 久久久精品91| 日韩毛片在线一区二区毛片| 精品一区二区三区免费播放| 超碰中文字幕在线观看| 黄色污网站在线免费观看| 男女av在线| 熟女少妇在线视频播放| 中文字幕在线播出| 91丨九色丨国产在线| 91亚洲精品国偷拍自产在线观看| 成人免费高清观看| 国产精品一区二区久久不卡| 亚洲国产精品ⅴa在线观看| 亚洲欧美日韩国产成人综合一二三区| 日本一区二区三区高清不卡| 亚洲图区一区| 亚洲精品.www| 亚洲综合激情另类小说区| 国产在线视频综合| 日韩第一页在线| aaaa欧美| 精品国内亚洲在观看18黄| 欧美猛交xxxxx| 亚洲精品7777xxxx青睐| 欧美96在线| 久久精品国产成人一区二区三区| 免费av观看网站| 精品手机在线视频| 99精品国产一区二区三区2021| eeuss影院www影院入口| 四虎影视成人精品国库在线观看| 老太脱裤子让老头玩xxxxx| 日韩av在线免费观看| 国产精品老熟女一区二区| 成人网免费视频| 亚洲综合图片| 日日摸日日碰夜夜爽无码| 久热精品在线观看| 亚洲国产成人私人影院| freexxxx性特大另类| 精品精品国产高清一毛片一天堂| 92久久精品一区二区| 国产九九精品| 第一福利在线| 日韩欧美国产综合在线| 国产成人av一区二区三区在线| 国产福利在线导航| 日韩中文字幕在线视频观看| 污污的网站在线免费观看| 男人添女人下面免费视频| aaa毛片在线观看| 福利视频导航一区| 欧美一区二区三区日韩| 视频一区视频二区视频三区视频四区国产| 4438x成人网最大色成网站| 免费欧美激情| 欧美国产综合色视频| 韩日精品在线| 国产一级片麻豆| 国产伦精品一区二区三区视频我| 在线观看免费观看在线91| 欧美性生交xxxxxdddd| 国产伦精品一区二区三区高清版禁| 久久66热这里只有精品| 国产乱子夫妻xx黑人xyx真爽| 日韩禁在线播放| 欧美成熟视频| 欧美又粗又大又长| 性欧美18~19sex高清播放| 国产成人女人毛片视频在线| 亚洲一区二区在线视频观看| 69久久夜色精品国产69| 国产女优在线播放| av免费中文字幕| 久久97精品| 精品久久久久久久久久久久久久| 蜜臀一区二区三区精品免费视频| 日韩高清av电影| 国产一级久久| 老司机成人免费视频| 亚洲成a人片777777久久| 看女生喷水的网站在线观看| 日韩精品免费观看视频| 欧美成人综合色| 日韩电影免费观看中文字幕| 中文字幕乱码在线播放| 在线国产99| 丁香五精品蜜臀久久久久99网站| 在线观看视频免费一区二区三区| 国产chinesehd精品露脸| 久久免费视频一区| 亚洲欧美日韩一二三区| 成人免费精品动漫网站| 你懂得在线网址| 在线视频一二三区| 蜜臀尤物一区二区三区直播| 日日摸夜夜夜夜夜添| 欧美另类一区| 男女做暖暖视频| 91大神福利视频在线| 一级毛片aaaaaa免费看| 自拍视频亚洲| 天堂在线视频观看| 激情综合五月婷婷| 欧美精品三级在线| 蜜臀av性久久久久蜜臀av| 三上悠亚一区二区| 在线播放国产精品| 九九久久久久午夜精选| 捆绑调教美女网站视频一区| 日韩在线观看中文字幕| 国产精品伦理久久久久久| 亚洲传媒在线| 99国产精品一区| 欧美激情18p| 三级影片在线看| 51xtv成人影院| 国产成人无码一二三区视频| 亚洲美女福利视频网站| 亚洲v在线观看| 国内精品久久久久伊人av| av男人天堂网| av毛片在线免费看| 97人妻人人澡人人爽人人精品| 久久久久毛片免费观看| 狠狠躁夜夜躁人人爽视频| 69xxxx国产| 亚洲一区在线观| 午夜精品亚洲| 日韩aⅴ视频一区二区三区| 免费高清视频日韩| 色中色一区二区| 羞羞色国产精品| 国产精品综合网站| 亚洲欧美一级二级三级| 老司机免费视频久久| 超碰国产在线观看| 91嫩草在线| av黄色在线网站| 国产特级淫片免费看| 国产精品网红福利| 日韩在线视频在线| 中文字幕免费视频| 日本一区二区三区在线播放| 日本亚洲最大的色成网站www| 在线永久免费观看黄网站| 国产精品久久久一区| 久久久精品在线| 日本高清一二三区| 国产女18毛片多18精品| 激情亚洲影院在线观看| 日韩午夜电影在线观看| 99精品国产99久久久久久97| 欧美人xxxxx| 国产一区二区三区四| 黄色一区二区在线观看| 欧美高清www午色夜在线视频| 丁香六月婷婷综合| 免费黄网大全| 国产一区二区三区视频在线播放| 国产成人自拍视频在线| 圆产精品久久久久久久久久久| 久久不卡免费视频| 中文字幕中文在线| 国产一二三四区在线| 91精品国产综合久久精品性色| 欧美涩涩网站| 精品国产1区2区| 国产精品㊣新片速递bt| 精品国产91久久久久久老师| 国产亚洲一二三区| wwwwww.欧美系列| 亚洲精品久久久久久下一站| 91国产高清在线| 在线精品亚洲欧美日韩国产| 成人网址大全| 免费日韩中文字幕| 中文字幕天天干| 91白丝在线| 91在线无精精品白丝| 九九视频免费观看| 久久精品波多野结衣| 国产精品青草综合久久久久99| 91国偷自产中文字幕久久| 国产美女精品视频| 成人动漫网站在线观看| 最近中文字幕在线视频| 精品国产91亚洲一区二区三区www| 欧美xxbbb1手交| 日本不卡二区| 亚欧无线一线二线三线区别| 91手机在线观看| 综合精品久久久| 3d动漫精品啪啪一区二区下载| 久久午夜宅男免费网站| 日韩电影免费观看高清完整版在线观看| 色欧美自拍视频| 久久国产66| www亚洲精品| 久久久www免费人成精品| 97在线免费观看| 国产精品成人无码免费| 成人91在线观看| 亚洲专区在线视频| 亚洲视频在线观看三级| 国产精品av一区二区三区| 亚洲人成网站精品片在线观看| 久久久男人的天堂| 日韩精品久久久久久| 日韩黄色av| 亚洲精品日产精品乱码不卡| 91免费在线看片| 日韩久久久久久久久久久| 天天色综合久久| 中文字幕视频一区二区在线有码| 欧美国产视频| 黄色小视频在线看| 国产美女直播视频一区| 伊人狠狠色丁香综合尤物| 欧美性猛交久久久乱大交小说| 久草综合在线| 亚洲精品videosex极品| 国内精品久久久久影院 日本资源| 国产尤物在线播放| 欧美一级淫片aaaaaaa视频| 亚洲成年网站在线观看| 97超级碰碰人国产在线观看| 97在线免费| 香蕉久久一区二区三区| 久久精品久久久久电影| 国产精品久久国产三级国电话系列| 日本一道本久久| 久久国产高清视频| 久热在线中文字幕色999舞| 国产精品自在线| 国产人妻精品一区二区三区不卡| 一区二区视频免费在线观看| 精品福利樱桃av导航| 最好看的2019的中文字幕视频| 成人免费在线观看网站| 欧美 日韩 国产 成人 在线 91| 精品久久久久久无码中文野结衣| mm视频在线视频| 你懂的在线视频| 欧美精品与人动性物交免费看| 四虎4hu永久免费入口|