canvas画布实现放大镜

Myth丶恋晨 2021-09-16 04:22 590阅读 0赞

70

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. <style type="text/css">
  7. #cv{
  8. border:1px solid;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <canvas id="cv" width="467" height="491"></canvas>
  14. </body>
  15. <script type="text/javascript">
  16. var ctx = cv.getContext("2d");
  17. var img = new Image();
  18. img.src="../3.jpeg";
  19. img.onload = function(){
  20. ctx.drawImage(img,0,0);
  21. }
  22. cv.onmousedown=function(e){
  23. var e = e|| window.event;
  24. var x = e.clientX - cv.offsetLeft;
  25. var y = e.clientY-cv.offsetTop;
  26. ctx.beginPath();
  27. ctx.moveTo(x,y);
  28. document.onmousemove=function(e){
  29. //canvas中任何绘制的图形移动,都是一直在重新绘制,所以每次绘制之前需要清空画布,避免画布上多次重复绘制
  30. cv.width=cv.width;
  31. ctx.drawImage(img,0,0);
  32. var e = e|| window.event;
  33. var x = e.clientX - cv.offsetLeft;
  34. var y = e.clientY-cv.offsetTop;
  35. console.log(x,y);
  36. //将图片剪裁,其中的参数分贝是哪个图片,从xy什么位置开始剪裁,剪裁宽高,剪裁之后要显示的xy位置,以及显示图片的宽高,这个方法剪裁的是原图
  37. ctx.drawImage(img,x-40,y-40,80,80,x-80,y-80,160,160);
  38. //图形组合,后面写的为源图片,此属性上面为目标图片,这个属性是显示在源图片内部的目标图片,并且源图片透明
  39. ctx.globalCompositeOperation="destination-in";
  40. ctx.arc(x,y,80,0,Math.PI*2,false);
  41. ctx.fill();
  42. //添加了源图片之后让目标图片还是完全显示:这行代码可以将目标图片放在最上面
  43. ctx.globalCompositeOperation="destination-over";
  44. ctx.drawImage(img,0,0);
  45. }
  46. }
  47. //当鼠标抬起的时候,关闭鼠标移动事件
  48. cv.onmouseup = function(){
  49. document.onmousemove=null;
  50. //此刻虽然停止了,但是放大镜还停止在页面上,
  51. //让源图片完全显示使用这行代码:将源图片可以提高到所有图片的最上面
  52. ctx.globalCompositeOperation="source-over";
  53. //将Img作为源图片进行绘制
  54. ctx.drawImage(img,0,0);
  55. }
  56. </script>
  57. </html>

发表评论

表情:
评论列表 (有 0 条评论,590人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Android Canvas画布

    在本教程中,我们将讨论 Android 的一个非常重要的部分,即 Canvas。这是每个开发人员都喜欢远离的领域。本教程的目的是让您更加了解和轻松使用 Android Canv

    相关 canvas画布

    canvas标签 <canvas></canvas> 接下来使用支持H5的浏览器打开该页面,将会看到如下内容: ![在这里插入图片描述][watermark

    相关 canvas实现放大镜

    简单实现商品放大镜 我们先来简单实现下放大镜,嗯嗯…电商项目的商品详情的放大镜,差不多就是下面这个样子吧。 <canvas id="canvas1" width

    相关 canvas-画布

    概述 HTML5 的 canvas 元素用于定义画布,是一个矩形区域,默认颜色为白色,默认大小为 300 \ 150;通过 JavaScript 可以在该区域上绘制图像