午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

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

Canvas實現放大鏡效果完整案例分析(附代碼)

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

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

一張模糊的圖片:

鼠標點擊任意位置,產生放大效果:

哇塞~ 一個帥哥,哈哈哈哈~

1、放大鏡原理

實現效果:如上圖,點擊或點擊滑動鼠標顯示一個區域,區域中顯示對應點擊部分范圍的放大清晰圖片。那么問題就可以肢解為3部分:

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

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

3、如何在鼠標點擊滑動的時候顯示該區域;

 

2、顯示模糊照片

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

首先定義一個 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、加載清晰圖片

我們再加一個canvas(放大鏡看到的圖片),初始隱藏:

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

// 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 繪制放大鏡

鼠標所處的位置點(x,y)是區域的中心,計算出清晰圖所在的位置點,截取圓形

// 保存當前狀態
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);

// 釋放當前狀態
ctx1.restore();

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

clip():表示剪切區域

4.2 離屏技術

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

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

// 對應模糊圖的左上角起點
var dx = x - mr,
    dy = y - mr;

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

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

5、鼠標交互事件

效果:鼠標點擊并滑動鼠標產生反應,松開鼠標或者移除畫布則失效。

//定義一個判斷鼠標是否是點擊滑動的標識符
var flag;

//鼠標點入事件
canvas.onmousedown = function(e) {
  flag = true;
  //顯示放大鏡
}
// 鼠標移動事件
canvas.onmousemove = function(e) {
  if (flag) {
    //顯示放大鏡
  }
}
//鼠標松開事件
canvas.onmouseup = function(e) {
  flag = false;
  // 隱藏放大鏡
}
//鼠標離開事件
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();
  },

  //移動
  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();
}

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

標簽:池州 永州 棗莊 漯河 新疆 青島 遼源 西藏

巨人網絡通訊聲明:本文標題《Canvas實現放大鏡效果完整案例分析(附代碼)》,本文關鍵詞  Canvas,實現,放大鏡,效果,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Canvas實現放大鏡效果完整案例分析(附代碼)》相關的同類信息!
  • 本頁收集關于Canvas實現放大鏡效果完整案例分析(附代碼)的相關信息資訊供網民參考!
  • 推薦文章
    日韩电影中文字幕一区| 国产日本欧美一区| 亚洲AV成人无码网站天堂久久| 国产又黄又大久久| 91精品蜜臀在线一区尤物| 精品少妇一区二区| 久久综合伊人77777麻豆| 人妻无码久久一区二区三区免费| 欧美 国产 小说 另类| 做a视频在线观看| 1314成人网| 在线观看亚洲网站| 91精品国产综合久| 少妇高潮久久久| 国产麻豆欧美日韩一区| 国产精品丝袜一区| 91福利国产成人精品照片| 在线观看中文字幕亚洲| 国产精品视频久久久| 国产综合动作在线观看| 北条麻妃av高潮尖叫在线观看| 欧美三级午夜理伦三级富婆| 卡一卡二卡三在线观看| 亚洲视频在线观看免费视频| 韩国欧美国产1区| 日本一二三不卡| 欧美一区二区三区白人| 玖玖玖精品中文字幕| 亚洲天堂色网站| 2014亚洲天堂| 久草视频在线免费看| 亚洲乱码精品久久久久..| 久久嫩草精品久久久精品| 在线观看亚洲成人| 久久精品亚洲一区| 国产精品xxxx| 婷婷激情四射五月天| 国产又粗又硬又长又爽| 成 人 免费 黄 色| 国产午夜精品一区二区| 日韩一卡二卡三卡| 午夜精品在线视频| 日本欧洲国产一区二区| 免费看91视频| 精品国产青草久久久久96| av资源网一区| 欧美一区二区三区公司| 国产成人精品国内自产拍免费看| 桥本有菜av在线| 日批在线观看视频| 国产成人精品一区二三区四区五区| 久久久九九九九| 日韩毛片中文字幕| 国产精品久久一区二区三区| 亚欧精品在线视频| 中文字幕一区2区3区| 亚洲精品乱码久久久久久久久| 色综合久久精品亚洲国产| 中文精品视频一区二区在线观看| 日操夜操天天操| 成人免费高清在线| 欧美日韩黄色影视| 国产成人小视频在线观看| 日韩精品在线中文字幕| 免费人成视频在线| 国产丶欧美丶日本不卡视频| 欧美性大战久久| 欧美一级大片视频| 无码播放一区二区三区| 成人精品免费在线观看| 久久网站最新地址| 亚洲少妇中文在线| 日本在线免费观看一区| 亚洲精品国产一区黑色丝袜| 日产国产高清一区二区三区 | 精品国产精品网麻豆系列| 国产区日韩欧美| 久久人人爽人人人人片| 久久精品女人| 欧美视频13p| 国产日韩欧美黄色| 69xxx免费视频| 日韩经典一区二区| 欧美主播一区二区三区美女| 亚洲一区美女视频在线观看免费| 亚洲国产欧美91| 欧美一级淫片aaaaaa| 在线看不卡av| 91久久精品美女高潮| 在线播放av网址| 久久99久久久久久久久久久| 欧美一区二区成人| 欧美日韩精品免费在线观看视频| 亚洲欧美小视频| 欧美国产97人人爽人人喊| 久久久女人电视剧免费播放下载| 黄色a级片免费| 国产视频在线免费观看| 欧美日韩电影在线播放| 日韩欧美99| 福利所第一导航| 最新欧美精品一区二区三区| 国产精品黄色影片导航在线观看| 制服丝袜在线第一页| 国产精品538一区二区在线| 亚洲性猛交xxxxwww| 777av视频| 三级视频在线看| 欧美刺激午夜性久久久久久久| 视频一区在线免费观看| 天天天天天天天干| 精品视频1区2区| 欧美日韩福利在线| 日本一区二区三区国色天香| 久久一区二区精品| 91蜜桃在线免费视频| 激情伦成人综合小说| 精品黑人一区二区三区在线观看| 欧美夫妻性生活xx| 免费人成在线观看| 欧美老人xxxx18| 日本在线成人一区二区| 欧美性猛交bbbbb精品| 欧美天堂一区二区三区| 黄色www在线观看| 夜夜夜精品看看| 国产高清视频网站| 亚洲欧美自拍偷拍色图| 午夜免费一级片| 欧美老人xxxx18| 农村黄色一级片| 色婷婷综合五月| 国产免费黄视频| 1区2区3区国产精品| 久久久成人精品一区二区三区| 日韩成人伦理电影在线观看| 国内外成人免费视频| 日韩免费视频一区二区视频在线观看| 在线观看www91| 国产曰肥老太婆无遮挡| 久久99精品久久久久久动态图| 亚洲精品一区二区三区蜜桃久| 中文字幕电影一区| 公共露出暴露狂另类av| 亚洲人成网站在线| 精品人妻一区二区三区香蕉| 国产精品中文在线| 五月婷婷色综合| 国产一区二区女内射| 日本一本中文字幕| 亚洲精品大尺度| 麻豆精品在线播放| 草草草视频在线观看| 精品国产精品三级精品av网址| 91看片在线免费观看| 欧美一级夜夜爽| 99热国产在线观看| 91精品国产91久久久久久| 日韩免费av片| 国产美女精彩久久| 久久久精品黄色| 精品丰满少妇一区二区三区| 精品88久久久久88久久久 | 夜夜爽99久久国产综合精品女不卡| 99视频一区二区| 亚洲午夜精品久久| 欧美日韩亚洲综合一区二区三区| 天天干天天干天天操| 青青青在线视频播放| 欧美专区福利在线| 亚洲精品字幕在线观看| 激情五月亚洲色图| 国产69久久精品成人| 欧美国产一区在线| 日韩aaaaa| 伊人伊成久久人综合网站| 国产 欧美 自拍| 在线播放 亚洲| 欧美一区二区精美| av网站免费在线看| 久久综合伊人77777尤物| 国产黄色av片| 亚洲久久中文字幕| 国产精品尤物福利片在线观看| 丰满放荡岳乱妇91ww| 最新天堂在线视频| 国产一区二区三区网站| 色哟哟中文字幕| 日韩美女写真福利在线观看| 亚洲国产精品高清| 日本一二三不卡视频| 免费一区二区三区| 久久久久国产精品www| 欧美性欧美巨大黑白大战| 美女网站视频久久| 99精品中文字幕| 国产freexxxx性播放麻豆| 欧美成人免费va影院高清| 国产精品一二三四区| 中文字幕一二三| 一本色道久久88综合日韩精品 | 免费成人高清视频| 黄色一级a毛片| 国产系列第一页| 日韩禁在线播放| 久久久777精品电影网影网| 夜夜春很很躁夜夜躁| 97免费视频在线播放| 99久久精品费精品国产一区二区| 小早川怜子久久精品中文字幕| 欧美日韩国产欧美日美国产精品| caoporn国产| 日韩精品视频在线观看视频| 欧美精品中文字幕一区| 欧美午夜精品久久久久久孕妇| 日韩精品亚洲一区| 亚洲一区欧美在线| 成人性生活免费看| 正在播放国产精品| 国产成人精品午夜| 日韩欧美一区二区在线| 人妻一区二区三区免费| 99热亚洲精品| 欧美美女15p| 久久久久88色偷偷免费| 精品免费囯产一区二区三区| 久久亚洲国产成人精品无码区| 精品国产1区2区| 制服丝袜在线一区| 免费观看黄网站| 欧美一区视久久| 欧日韩在线观看| 国产精品二区一区二区aⅴ污介绍| 国产精品无码久久久久成人app| 日本爱爱爱视频| 日本三区在线观看| aa日韩免费精品视频一| 日韩在线中文字幕| 97se狠狠狠综合亚洲狠狠| 亚洲第一免费网站| 一区二区www| 男男受被啪到高潮自述| 国产不卡在线观看| 久久久精品中文字幕麻豆发布| 日韩欧美视频在线免费观看| 337p亚洲精品色噜噜狠狠p| 最近2019中文字幕大全第二页| 亚洲制服丝袜在线| 视频在线在亚洲| 色综合五月婷婷| 青草热久免费精品视频| 亚洲精品视频自拍| 亚洲一级在线播放| 亚洲三级在线观看视频| 国产精品一区二区久久精品| 国产亚洲1区2区3区| 久久久久久久久久久久久久久| 国产精品xxx视频| 亚洲精选一二三| 91玉足脚交嫩脚丫在线播放| 大肉大捧一进一出好爽视频| 国产成人精品一区二区三区福利| 亚洲热线99精品视频| 26uuu亚洲| 亚洲黄网在线观看| 漂亮人妻被中出中文字幕| 一区二区三区四区| 美国av一区二区三区| 91在线视频精品| 日韩美女免费视频| 97视频在线免费观看| 日韩av网站在线| 欧美成人国产一区二区| 色噜噜久久综合| 日本成人中文字幕在线视频| 精品97人妻无码中文永久在线| 少妇高潮流白浆| 91成品人片a无限观看| 精品国产1区2区| 国产精品一区二区三区四区| 国产高清视频免费在线观看| 中文字幕中文字幕99| 欧美做受高潮1| 亚洲国产欧美久久| 日韩电影中文字幕在线| 91精品在线一区二区| 国产精品免费av| 国产精品中文字幕欧美| 亚洲国产日韩在线观看| 久久夜色精品国产噜噜亚洲av| 加勒比成人在线| 午夜精品久久久久久久久久久久久 | 日本成人中文字幕在线| 欧美激情视频免费看| 久久久久久三级| 日日躁夜夜躁aaaabbbb| 欧美深夜福利视频| 免费观看精品视频| 欧美不卡在线播放| 欧美动漫一区二区| 日本乱人伦a精品| 亚洲国产又黄又爽女人高潮的| 色天天综合色天天久久| 91亚洲精华国产精华精华液| 国产日韩在线观看一区| 亚洲s码欧洲m码国产av| 日本人dh亚洲人ⅹxx| 欧美三级午夜理伦三级老人| 国产成人91久久精品| 最新的欧美黄色| 久久婷婷国产麻豆91天堂| 久久九九全国免费精品观看| 色偷偷一区二区三区| 久久久久久麻豆| 国内精品写真在线观看 | 在线观看中文av| 麻豆传媒一区二区| 91蜜桃网站免费观看| 国产+成+人+亚洲欧洲| 久久天天躁日日躁| 国产精品18久久久久久麻辣| 国产精品综合网站| 99九九视频| 四虎永久在线精品免费一区二区| 国产一区二区三区在线免费| 男人c女人视频| 亚洲va久久久噜噜噜久久狠狠 | 欧美性在线观看| 高清欧美性猛交xxxx| 日韩av在线免费观看| 日本道色综合久久| 亚洲午夜视频在线观看| 国产成人精品免费看| 日本不卡一二三区黄网| 三级欧美韩日大片在线看| av片免费观看| 欧美a级片免费看| 黄页网站在线看| 免费在线观看的毛片| 欧美性受黑人性爽| 国内一区在线| 国产日本欧美视频| 成人在线一区二区| 日本国产一区二区三区| 国产成人精品一区二区在线| 97在线日本国产| 国产精品久久久久7777婷婷| 国外成人性视频| 午夜精品一区二区三区在线视频| 国产精自产拍久久久久久| 日韩高清专区| 午夜激情av在线| 国产三级黄色片| www.毛片com| www.久久久久久久| 日韩电影免费在线看| 久久新电视剧免费观看| 欧美性生交大片免网| 精品久久一区二区| 精品一区精品二区| 亚洲片在线观看| 欧美成人免费视频| 色伦专区97中文字幕| 日韩免费在线看| 国产精品亚洲一区二区三区| 成人91视频| 伊人久久青草| 青青在线免费视频| 国产精品视频免费观看| 成人a免费视频| 国产精品亚洲欧美导航| 国产精品久久久久久久久久免费| 久久免费国产视频| 97香蕉超级碰碰久久免费软件| 欧美一区在线直播| 国产在线精品播放| 免费99视频| 欧美精品一区二区三区三州| 黄色a级片免费| 国内自拍视频网| 亚洲精品成人无码| 加勒比av在线播放| 韩国av电影在线观看| 91在线播放网址| 色欧美片视频在线观看在线视频| 欧美日韩1234| 亚洲久久久久久久久久久| 亚洲性视频网站| 欧美多人乱p欧美4p久久| 国产精品国产亚洲伊人久久 | 国产污片在线观看| 国产精品久久久久久久久久久久久久久久久 | 国产亚洲福利社区| 精品一二三四五区| 91高清国产视频| 欧美性x x x| 国产精品一级视频| 韩国三级在线一区| 蜜桃91丨九色丨蝌蚪91桃色| 久久亚洲综合av| 69久久99精品久久久久婷婷| 在线看片第一页欧美| 97精品一区二区三区| 国产伦精品一区二区三区免费视频 | 国产精品久久久久久久久久久久久久久久久久 | 麻豆高清免费国产一区| 91麻豆123| 亚洲精品五月天| 精品日韩在线一区| 欧美一乱一性一交一视频|