利用canvas除了可以实现滤镜,还可以利用离屏技术放大镜功能。
为了方便讲解,本文分为 2 个应用部分:
实现水印和中心缩放
实现放大镜
1. 什么是离屏技术?
canvas 学习和滤镜实现介绍过drawImage接口。除了绘制图像,这个接口还可以:将一个canvas对象绘制到另一个canvas对象上。这就是离屏技术。
2. 实现水印和中心缩放
在代码中,有两个 canvas 标签。分别是可见与不可见。 不可见的 canvas 对象上的 Context 对象,就是我们放置图像水印的地方。
更多详解,请看代码注释:
Learn Canvas
实现效果如下图所示:

拖动滑竿,即可放大和缩小图像。然后右键保存图像。保存后的图像,就有已经有了水印,如下图所示:

3. 实现放大镜
在上述中心缩放的基础上,实现放大镜主需要注意以下 2 个部分:
细化处理canvas的鼠标响应事件:滑入、滑出、点击和松开
重新计算离屏坐标(详细公式计算思路请见代码注释)
重新计算鼠标相对于 canvas 标签的坐标(详细公式计算思路请见代码注释)
代码如下:
Document
放大镜效果如下图所示(被红笔标出的区域就是我们的正方形放大镜):

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
注:相关教程知识阅读请移步到HTML教程频道。