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

主頁 > 知識(shí)庫 > Canvas實(shí)現(xiàn)放大鏡效果完整案例分析(附代碼)

Canvas實(shí)現(xiàn)放大鏡效果完整案例分析(附代碼)

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

本文主要記錄 canvas 在圖像、文字處理、離屏技術(shù)和放大鏡特效的實(shí)現(xiàn)過程中使用到的API。先看下效果吧:

一張模糊的圖片:

鼠標(biāo)點(diǎn)擊任意位置,產(chǎn)生放大效果:

哇塞~ 一個(gè)帥哥,哈哈哈哈~

1、放大鏡原理

實(shí)現(xiàn)效果:如上圖,點(diǎn)擊或點(diǎn)擊滑動(dòng)鼠標(biāo)顯示一個(gè)區(qū)域,區(qū)域中顯示對(duì)應(yīng)點(diǎn)擊部分范圍的放大清晰圖片。那么問題就可以肢解為3部分:

1、如何在canvas(模糊圖)上再畫出另外一個(gè)canvas(清晰放大圖);

2、如何將canvas中顯示的(清晰放大圖)剪切出圓形區(qū)域。

3、如何在鼠標(biāo)點(diǎn)擊滑動(dòng)的時(shí)候顯示該區(qū)域;

 

2、顯示模糊照片

其實(shí)一般的交互不是模糊照片,這里我只是為了夸張下效果,用了張模糊的原圖,哈哈哈,canvas本身是可以對(duì)清晰的圖片做濾鏡處理,涉及到很多圖形學(xué)的算法,然后我不會(huì),默默的打開了PS手動(dòng)高斯模糊了一張照片...嗯,沒毛??!

首先定義一個(gè) canvas 元素

  <canvas id="canvas"></canvas>
//定義canvas畫布
var canvas1 = document.getElementById('canvas1');
    ctx1 = canvas.getContext('2d');

//模糊圖片加載
var image1 = new Image();
image1.src = "./模糊.png";

//圖片加載成功后繪制圖片
image1.onload = function() {
  //drawImage 在畫布上繪制模糊圖片
  ctx1.drawImage(image1, 0, 0, canvas1.width, canvas1.height);
};     

ctx1.drawImage(圖片,x位置,y位置,圖片顯示寬度,圖片顯示高度)

3、加載清晰圖片

我們?cè)偌右粋€(gè)canvas(放大鏡看到的圖片),初始隱藏:

<canvas id="canvas2" style="display:none"></canvas>
var canvas2 = document.getElementById('canvas2'),
    ctx2 = canvas2.getContext('2d'),
    scale = 2; // 放大倍數(shù)

// canvas2的圖片大小是模糊圖片的2倍
canvas2.width = canvas.width * scale;
canvas2.height = canvas.height * scale;

// 在canvas2中加載圖片
var image2 = new Image();
image2.src = "name2.png";

image2.onload = function() {
  ctx2.drawImage(image2, 0, 0, canvas2.width, canvas2.height);
};

4、顯示放大鏡

4.1 繪制放大鏡

鼠標(biāo)所處的位置點(diǎn)(x,y)是區(qū)域的中心,計(jì)算出清晰圖所在的位置點(diǎn),截取圓形

// 保存當(dāng)前狀態(tài)
ctx1.save();
// 邊框
ctx1.strokeStyle = "#9eddf1";
ctx1.lineWidth = 3;
// 開始繪制
ctx1.beginPath();
// ⚪
ctx1.arc(x, y, mr, 0, Math.PI * 2);
ctx1.stroke();
// 表示剪切
ctx1.clip();

// 畫圖
ctx1.drawImage(that.canvas2, sx, sy, 2 * mr, 2 * mr, dx, dy, 2 * mr, 2 * mr);

// 釋放當(dāng)前狀態(tài)
ctx1.restore();

繪制狀態(tài)的最佳搭檔save()和restore():用于對(duì)當(dāng)前狀態(tài)的保存及釋放不影響其他操作;可用于重復(fù)的繪制圖形的變化過程;

clip():表示剪切區(qū)域

4.2 離屏技術(shù)

所謂的離屏技術(shù)就是在一個(gè)canvas上繪制另外一個(gè)canvas,前面使用的繪制圖片的API是 drawImage() ,它分別可以支持,3個(gè)、5個(gè)和9個(gè)參數(shù); 其中第一個(gè)參數(shù)既可以是圖片,也可以是canvas對(duì)象!那么我們就可以使用這個(gè)方法,在圓上繪制出清晰圖了~

// 圓的半徑是mr
var mr = 100;

// 對(duì)應(yīng)模糊圖的左上角起點(diǎn)
var dx = x - mr,
    dy = y - mr;

// 找出清晰圖截圖的左上角起點(diǎn)
var sx = x * scale - mr,
    sy = y * scale- mr;

   ...
    ctx.clip();
    // 在對(duì)應(yīng)的位置上重新繪制圖片
    //drawImage(img,sx,sy,swidth,sheight,x,y,width,height) 9個(gè)參數(shù)時(shí)
    //img: 圖片/canvas
    //sx: 圖片的X起點(diǎn)
    //sy: 圖片的Y起點(diǎn)
    //swidth:要繪制的圖片選取的寬度
    //sheight:要繪制的圖片選取的高度
    //x,y:圖片在canvas上顯示的位置
    //width,height:在Canvas上要顯示的大小
    ctx1.drawImage(canvas2, sx, sy, 2 * mr, 2 * mr, dx, dy, 2 * mr, 2 * mr);    
    ...

5、鼠標(biāo)交互事件

效果:鼠標(biāo)點(diǎn)擊并滑動(dòng)鼠標(biāo)產(chǎn)生反應(yīng),松開鼠標(biāo)或者移除畫布則失效。

//定義一個(gè)判斷鼠標(biāo)是否是點(diǎn)擊滑動(dòng)的標(biāo)識(shí)符
var flag;

//鼠標(biāo)點(diǎn)入事件
canvas.onmousedown = function(e) {
  flag = true;
  //顯示放大鏡
}
// 鼠標(biāo)移動(dòng)事件
canvas.onmousemove = function(e) {
  if (flag) {
    //顯示放大鏡
  }
}
//鼠標(biāo)松開事件
canvas.onmouseup = function(e) {
  flag = false;
  // 隱藏放大鏡
}
//鼠標(biāo)離開事件
canvas.onmouseout = function(e) {
  flag = false;
  // 隱藏放大鏡
}

完整代碼:

var scale = 3;
var mr = 150;
var photo = {
  //初始化
  init: function() {
    var that = this;

    that.canvas = document.getElementById('canvas');
    that.ctx = that.canvas.getContext('2d');

    that.canvas2 = document.getElementById('canvas2');
    that.ctx2 = that.canvas2.getContext('2d');

    that.canvas.width = 800;
    that.canvas.height = 500;

    that.canvas2.width = that.canvas.width * scale;
    that.canvas2.height = that.canvas.height * scale;
    that.image1 = new Image();
    that.image1.src = "./name3.jpg";

    that.image2 = new Image();
    that.image2.src = "./name4.jpg";

    that.image1.onload = function() {
      that.ctx.drawImage(that.image1, 0, 0, that.canvas.width, that.canvas.height);
    };

    that.image2.onload = function() {
      that.ctx2.drawImage(that.image2, 0, 0, that.canvas2.width, that.canvas2.height);
      that.moveEvt();
    };
  },

  bigerImage: function(x, y) {
    var that = this;
    var imageX = x * scale,
      imageY = y * scale,
      sx = imageX - mr,
      sy = imageY - mr;

    var dx = x - mr,
      dy = y - mr;

    that.ctx.save();

    that.ctx.strokeStyle = "#9eddf1";
    that.ctx.lineWidth = 3;

    that.ctx.beginPath();
    that.ctx.arc(x, y, mr, 0, Math.PI * 2);


    that.ctx.shadowColor = "#6ed25b";
    that.ctx.shadowBlur = 10;

    that.ctx.stroke();
    that.ctx.clip();

    that.ctx.drawImage(that.canvas2, sx, sy, 2 * mr, 2 * mr, dx, dy, 2 * mr, 2 * mr);

    that.ctx.restore();
  },

  //移動(dòng)
  moveEvt: function() {
    var that = this;
    that.canvas.onmousedown = function(e) {
    	that.flag = true;
      that.showImage(e);
    }

    that.canvas.onmousemove = function(e) {
      if (that.flag) {
        that.showImage(e)
      }
    }

    that.canvas.onmouseup = function(e) {
      that.hideImage(e)
    }

    that.canvas.onmouseout = function(e) {
      that.hideImage(e)
    }
  },

  showImage: function(e) {
    e.preventDefault()
    var x = e.offsetX,
      y = e.offsetY,
      that = this;
    that.ctx.clearRect(0, 0, that.canvas.width, that.canvas.height);
    that.ctx.drawImage(that.image1, 0, 0, that.canvas.width, that.canvas.height);
    that.bigerImage(x, y);
  },

  hideImage: function(e) {
    e.preventDefault()
    var that = this;
    
    that.flag = false;
    that.ctx.clearRect(0, 0, that.canvas.width, that.canvas.height);
    that.ctx.drawImage(that.image1, 0, 0, that.canvas.width, that.canvas.height);
  }
}

window.onload = function() {
  photo.init();
}

到此這篇關(guān)于Canvas實(shí)現(xiàn)放大鏡效果完整案例分析(附代碼)的文章就介紹到這了,更多相關(guān)Canvas 放大鏡內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Canvas實(shí)現(xiàn)放大鏡效果完整案例分析(附代碼)》,本文關(guān)鍵詞  Canvas,實(shí)現(xiàn),放大鏡,效果,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Canvas實(shí)現(xiàn)放大鏡效果完整案例分析(附代碼)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Canvas實(shí)現(xiàn)放大鏡效果完整案例分析(附代碼)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产a视频精品免费观看| 成年人的黄色片| 性xxxxx| 欧美丝袜足交| 久久精品国产成人| 久久久久久国产精品视频| 摸bbb搡bbb搡bbbb| youjizz亚洲| 天天色图综合网| 国产喷水吹潮视频www| 国产精品久久久久久久岛一牛影视| 在线视频一区二区三| 欧美日韩国产综合视频| 激情图片小说一区| 亚洲一区二区三区精品在线观看| 中国色在线日|韩| 精品福利视频导航| 色综合视频一区中文字幕| 成年永久一区二区三区免费视频| 亚洲精品555| 神马午夜电影一区二区三区在线观看| 影音先锋黄色网址| 中文字幕一区二区三区四区五区六区| 超碰在线电影| 97色在线播放视频| 国产精品a成v人在线播放| 欧美一级大片| 国产精品毛片无遮挡高清| 日本一二区不卡| av网站在线观看不卡| 精品国产精品自拍| 久久黄色一级视频| 91国偷自产一区二区三区成为亚洲经典| 91福利视频免费观看| 国产精品自拍偷拍视频| 国产亚洲自拍偷拍| 精品96久久久久久中文字幕无| 91精品国产91久久久久久最新| 欧美午夜一区二区福利视频| 亚洲精品乱码久久久久久黑人| 欧美中文字幕在线观看视频| 欧美日韩中文国产| 头脑特工队2免费完整版在线观看| 欧美性感美女一区二区| 伦理片一区二区三区| 亚洲激情五月婷婷| 国产精品激情av在线播放| 亚洲а∨天堂久久精品喷水| 亚洲深夜福利网站| 国产成人亚洲综合91精品| 国产成人精品视| 国产亚洲精品va在线观看| 欧美日本精品在线| 久久三级毛片| 一级黄色免费看| 日韩高清影视在线观看| 欧美成人精品在线播放| 性欧美超级视频| 中文字幕在线中文字幕在线中三区| 永久免费网站在线| 国内精品麻豆美女在线播放视频| 亚洲毛片在线免费观看| 午夜久久黄色| 国产免费叼嘿网站免费| 欧美人与物videos另类xxxxx| 久久久999精品| 国产免费一区二区三区香蕉精| 伊人国产在线视频| 灌醉mj刚成年的大学平面模特| 九九九九精品九九九九| 美女被黑人40厘米进入| 在线观看私人影院w| 在线免费观看污| 国产黄色大片在线观看| 亚洲综合丝袜美腿| 亚洲视频在线一区观看| 91精品国产91久久久久久最新毛片| 日韩高清一二三区| 久久久久久久久岛国免费| 日本午夜精品一区二区| 91sp网站在线观看入口| 欧美另类69xxx| 国产亚洲精品熟女国产成人| 最近免费中文字幕视频2019| 久久亚洲精品中文字幕| 日韩伦理三区| 激情综合网天天干| 国产美女扒开尿口久久久| 亚洲一区影音先锋| 亚洲午夜精品久久久中文影院av| 国产精品久久国产三级国电话系列| 亚洲AV成人无码精电影在线| 成人免费高清在线观看| 国卡一卡二卡三免费网站| 久久在线91| 亚洲性线免费观看视频成熟| 精品在线视频免费观看| 国产婷婷色一区二区三区在线| 成人av影院在线观看| 熟妇人妻系列aⅴ无码专区友真希| 精品久久久久成人码免费动漫| 色综合五月婷婷| 麻豆精品视频在线| 玖玖玖视频精品| 天海翼一区二区| 久草视频精品在线| 黄色片视频在线| 成人免费网站观看| 伊人国产视频| 亚洲欧美日本韩国| 另类激情视频| 亚洲天堂第二页| 国产视频一区免费看| 午夜私人影院在线观看| 亚洲自拍偷拍网站| 美女流白浆视频| 成年人黄视频网站| 97se综合| 一二三区精品| 久久精品国产网站| 欧美另类videoxo高潮| 污污视频在线免费| 日本vs亚洲vs韩国一区三区| 色爱区成人综合网| c#hpsocket| 三区在线观看| 国产熟妇久久777777| 亚洲成av人片在线观看香蕉| 中文字幕剧情在线观看| 男人的天堂av高清在线| 国产视频第一页在线观看| 国产极品模特精品一二| 波多野结衣乳巨码无在线观看| 成年人免费看毛片| 欧美日韩中文字幕综合视频| 国产黄色麻豆视频| 日韩av三级在线观看| 水蜜桃亚洲一二三四在线| 精品国产免费人成电影在线观看四季| 在线激情影院一区| 国产精品久久无码| 国产午夜在线一区二区三区| 久久久亚洲欧洲日产国码aⅴ| 日韩欧美在线播放| 麻豆国产入口在线观看免费| 99久久精品免费看国产交换| 亚洲第一福利专区| 欧洲午夜精品| 亚洲区欧美区| 日韩精品无码一区二区三区免费| 精品久久久久一区二区| 九九热精品免费视频| 在线视频一二三区| 国产黄色网址在线观看| 北条麻妃在线视频观看| 国产91露脸合集magnet| 久久免费精品视频在这里| 亚州综合一区| h网站免费看| 极品日韩av| 免费三级欧美电影| 亚洲国产一区二区三区高清| 美腿丝袜亚洲综合| av网站在线不卡| 另类的小说在线视频另类成人小视频在线| 欧美日韩爱爱| 国产成人亚洲综合a∨婷婷图片| 一个人www视频在线免费观看| 日韩午夜电影在线观看| 国产真实乱偷精品视频免| 欧美一区二区大胆人体摄影专业网站| 国产成人精品最新| 亚洲欧美国产高清va在线播放| 欧美日韩中文一区| 图片专区亚洲欧美另类| jizz老师| 亚洲综合图片一区| 欧美激情一区二区三级高清视频| 欧美日韩亚洲一区在线观看| 农民人伦一区二区三区| 亚洲色图一区二区三区| 国产精品无码白浆高潮| 日韩在线视频精品| 成人综合国产精品| 亚洲av无码国产精品永久一区| 久无码久无码av无码| av电影在线免费观看| 一区二区三区欧美久久| 亚洲一区电影777| 免费的av电影| 久久久久无码精品| 韩国国内大量揄拍精品视频| 日本一区二区在线播放| 在线国产一区二区三区| 国产大尺度视频| 人妻少妇无码精品视频区| 国产中文字幕在线视频| 刘亦菲毛片一区二区三区| 日韩精品一区二区三区swag| 欧美中文在线| 亚洲一级视频在线观看| 午夜精品区一区二区三| 精灵使的剑舞无删减版在线观看| 91九色视频在线观看| 4438x全国最大成人| 青娱乐国产在线视频| 久久久久久**毛片大全| 国产精品久久99久久| 中文字幕在线中文字幕日亚韩一区| 亚洲天天影视网| 国产精品传媒麻豆hd| 日韩精品在线一区二区| 久久久久久久久99精品大| 国产老女人av| 成人h动漫精品一区二| av资源中文在线天堂| 欧美激情午夜| 国产精品视频流白浆免费视频| 国产精品自拍网| 国产精品不卡一区二区三区在线观看| 欧美色图校园春色| 爱爱视频网站免费| 在线观看国产中文字幕| 久久爱com| 国产成人无码精品久在线观看| 久久久久久久片| 中文字幕日韩国产| 日韩中文字幕一区二区| 日韩在线精品视频| 秋霞影院一区二区三区| 不卡的av在线播放| 5566中文字幕一区二区电影| 国产调教一区二区三区| 26uuu久久天堂性欧美| 美女主播精品视频一二三四| 国产超碰在线一区| 成 人免费视频播放| 国产伦理片在线观看| 50一60岁老妇女毛片| 免费一级片网址| 91国偷自产一区二区三区观看| 综合亚洲色图| ●精品国产综合乱码久久久久| 日韩国产精品久久| 亚洲伊人成人网| 日本a级在线| 久香视频在线观看| 国产综合动作在线观看| 黄网站在线免费看| 色婷婷综合视频在线观看| 日韩免费视频| 91九色在线视频| 国产一线二线三线在线观看| 久久久最新网址| 国产乱论精品| 日本不卡一区二区三区在线观看| 青青青视频在线免费观看| 老司机午夜福利视频| 在线观看视频一区二区欧美日韩| 国产一区二区三区在线免费观看| 97中文字幕| 日本成人免费在线观看| 99re热在线观看| 亚洲少妇最新在线视频| 天天躁日日躁狠狠躁超碰2020| 天天操天天舔天天射| 成人午夜精品福利免费| 亚洲字幕av一区二区三区四区| 午夜不卡影院| 亚洲视频一起| 黄色网页网址在线免费| 亚洲激精日韩激精欧美精品| 91杏吧porn蝌蚪| 青草国产精品| 精品一二三区| 国产99久一区二区三区a片| 奇米色777欧美一区二区| 国产精品一色哟哟| 欧美精品xx| 久操成人av| 精品国产美女福利到在线不卡| 五月婷婷狠狠干| 午夜视频成人| 91精品国产色综合久久不卡98口| 精品日本一区二区| 91成人免费| 少妇的滋味中文字幕bd| 国产精品熟女一区二区不卡| 91精品视频在线看| 国产一区免费在线| 99在线精品一区二区三区| 动漫一区二区三区| 欧美成人高清视频在线观看| 日本中文字幕久久| 久久综合色播| 91精品国产麻豆国产在线观看| 成年在线观看免费人视频| 91在线观看免费网站| 国产精品色婷婷在线观看| 超碰在线一区| 欧洲国产精品| av电影免费在线看| 中文字幕电影av| 91精品国产91久久久久久青草| 激情懂色av一区av二区av| 久久伊人影院| 韩日在线一区| 日韩中文在线| 国产精品99久久久久久似苏梦涵| 37pao成人国产永久免费视频| 国产精品普通话| 欧美一区二区性放荡片| av在线首页| 寂寞护士中文字幕mp4| 91精品麻豆日日躁夜夜躁| 天天干天天舔| 欧美成人午夜77777| 亚洲一区二区三区免费| 久久久久久久久久久久| 日韩丝袜情趣美女图片| 日韩西西人体444www| 欧美性猛交xxxx乱大交极品| 欧美午夜免费影院| 欧美电影h版| 亚洲一区欧美激情| 999精品网站| 亚洲精品一区二区三区在线播放| 免费成人美女在线观看.|