当前位置: 首页 > news >正文

JavaScript - canvas - 放大镜

效果

在这里插入图片描述

示例

项目结构:

在这里插入图片描述

源码:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>放大镜</title><style type="text/css">div {width: 200px;height: 200px;display: inline-block;}</style></head><body><canvas id="canvas"></canvas><canvas id="piece" width="200" height="200" style="border: 1px solid black;"></canvas><script type="text/javascript">window.onload = (event) => {// console.log(event);main();}function main() {const canvas = document.querySelector("#canvas");const canvasContext = canvas.getContext("2d");const canvasPiece = document.querySelector("#piece");const canvasPieceContext = canvasPiece.getContext("2d");// canvasPieceContext.imageSmoothingEnabled = false;// Load imageconst image = new Image();image.onload = (event) => {// console.log(event);canvas.width = image.width;canvas.height = image.height;canvasContext.drawImage(image, 0, 0);}image.src = "img/transformers.jpg";// Hoveredcanvas.onmousemove = (event) => {// console.log(event);const x = event.layerX;const y = event.layerY;// 两倍放大{// https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage// drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)// https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas#zooming_and_anti-aliasingcanvasPieceContext.drawImage(canvas, (x - 50), (y - 50), 100, 100, 0, 0, (100 * 2), (100 * 2));}}}</script></body>
</html>
http://www.lryc.cn/news/173453.html

相关文章:

  • PY32F003F18之输入捕获
  • 科目三基础四项(一)
  • C语言入门Day_24 函数与指针
  • 9月21日,每日信息差
  • 【FAQ】安防监控系统/视频云存储/监控平台EasyCVR服务器解释器出现变更该如何修改?
  • Python手写人脸识别
  • 我的Qt作品(19)使用Qt写一个轻量级的视觉框架---第2章,仿海康VM实现思维导图拖拽方式的算法流程图
  • 仿写Timi记账
  • Java语言实现 比较两个Date日期的先后
  • el-table 指定层级展开
  • 3288S Android11 适配红外遥控功能(超详细)
  • Linux高性能服务器编程 学习笔记 第三章 TCP协议详解
  • 【云原生】Kubernetes学习笔记
  • [Machine Learning][Part 2]监督学习的实现
  • 【计算机毕业设计】基于SpringBoot+Vue大学生心理健康管理系统的开发与实现
  • 下载水果FLStudio21.2软件安装更新教程
  • 人工智能机器学习-飞桨神经网络与深度学习
  • linux部署页面内容
  • 若依框架集成WebSocket带用户信息认证
  • 0基础学习VR全景平台篇 第101篇:企业版功能-子账号分配管理
  • adb 命令集
  • 分享78个Python源代码总有一个是你想要的
  • springcloud3 指定nacos的服务名称和配置文件的group,名称空间
  • go-redis简单使用
  • 33. 搜索旋转排序数组-二重二分查找
  • mysql自动删除过期的binlog
  • Java面向对象(1)
  • 【计算机毕业设计】基于SpringBoot+Vue金融产品销售系统的设计与实现
  • 【面试题精讲】Mysql如何实现乐观锁
  • 从零开始搭建java web springboot Eclipse MyBatis jsp mysql开发环境