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

网站开发微信端小说网站如何建设

网站开发微信端,小说网站如何建设,视频网站用什么做的好,建e网3d模型库文章目录 前言示例 前言 本节将综合运用图像处理、离屏 canvas 以及剪辑区域等技术实现墨镜效果。 示例 主线程代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&qu…

文章目录

  • 前言
  • 示例


前言

本节将综合运用图像处理、离屏 canvas 以及剪辑区域等技术实现墨镜效果。


示例

在这里插入图片描述

主线程代码:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>4-18-综合运用图像处理、离屏canvas以及剪辑区域等技术的墨镜效果演示</title><style>#canvas {background: rgba(0, 0, 0, 0.4);}</style></head><body><div id="controls">墨镜滤镜<input type="checkbox" id="sunglassCheckbox" /></div><canvas id="canvas" width="800" height="600"> canvas not supports </canvas><script>const canvas = document.getElementById('canvas'),context = canvas.getContext('2d'),sunglassCheckbox = document.getElementById('sunglassCheckbox'),offscreenCanvas = document.createElement('canvas'),offscreenContext = offscreenCanvas.getContext('2d'),sunglassFilter = new Worker('./sunglassFilter.js'),LENS_RADIUS = canvas.width / 5const image = new Image()offscreenCanvas.width = canvas.widthoffscreenCanvas.height = canvas.height// Functions......function drawOriginalImage() {context.drawImage(image, 0, 0, canvas.width, canvas.height)}// 绘制镜片function drawLenses(leftLensLocation, rightLensLocation) {context.save()context.beginPath()context.arc(leftLensLocation.x, leftLensLocation.y, LENS_RADIUS, 0, Math.PI * 2, false)context.stroke()moveTo(rightLensLocation.x, rightLensLocation.y)context.arc(rightLensLocation.x, rightLensLocation.y, LENS_RADIUS, 0, Math.PI * 2, false)context.stroke()context.clip()context.drawImage(offscreenCanvas, 0, 0, canvas.width, canvas.height)context.restore()}// 绘制镜线function drawWire(center) {context.beginPath()context.moveTo(center.x - LENS_RADIUS / 4, center.y - LENS_RADIUS / 2)context.quadraticCurveTo(center.x,center.y - LENS_RADIUS + 20,center.x + LENS_RADIUS / 4,center.y - LENS_RADIUS / 2)context.stroke()}function putSunglassesOn() {const imagedata = context.getImageData(0, 0, canvas.width, canvas.height),center = {x: canvas.width / 2,y: canvas.height / 2,},leftLensLocation = {x: center.x - LENS_RADIUS - 10,y: center.y,},rightLensLocation = {x: center.x + LENS_RADIUS + 10,y: center.y,}sunglassFilter.postMessage(imagedata)sunglassFilter.onmessage = (e) => {offscreenContext.putImageData(e.data, 0, 0)drawLenses(leftLensLocation, rightLensLocation)drawWire(center)}}// Event handlers......sunglassCheckbox.onchange = () => {if (sunglassCheckbox.checked) {putSunglassesOn()} else {drawOriginalImage()}}// Initialization......image.src = './waterfall.png'image.onload = () => {drawOriginalImage()}</script></body>
</html>

Worker线程代码:

self.onmessage = function (e) {const imagedata = e.data,data = imagedata.data,width = imagedata.width,length = data.lengthfor (let i = 0; i < length; ++i) {if ((i + 1) % 4 != 0) {if ((i + 4) % (width * 4) == 0) {data[i] = data[i - 4]data[i + 1] = data[i - 3]data[i + 2] = data[i - 2]data[i + 3] = data[i - 1]} else {data[i] = 2 * data[i] - data[i + 4] - 0.5 * data[i + 4]}}}self.postMessage(imagedata)
}

http://www.dtcms.com/a/524701.html

相关文章:

  • 网站建设黄页视频wordpress的标签设置主页
  • 学习java线程池ThreadPoolExecutor类使用介绍
  • 有关建设旅行网站的建设负责网站的建设规划
  • 学Java第三十七天-------常用API
  • 微信漫画网站模板wordpress 视频展示
  • 【NestJS】依赖注入:超越自动new的深层解析
  • 北京网站建设策划建设公司长春建站培训
  • Mac常用软件
  • 【Linux笔记】网络部分——基于Socket套接字实现最简单的HTTP协议服务器
  • Linux基础知识(三、Linux常见操作目录命令)
  • 类似凡科建站的平台手机网站仿站
  • 在网站文字上做笔记设计制作中国第一架飞机的人是
  • C++ 分治 快速选择算法 堆排序 TopK问题 力扣 215. 数组中的第K个最大元素 题解 每日一题
  • 永磁同步电机无速度算法--基于相位超前校正的LESO
  • 动态 静态 网站地图合肥庐阳区建设局网站
  • JavaEE开篇之计算机是如何工作的
  • 基于python机器学习的农产品价格数据分析与预测的可视化系统
  • 如何通过掌纹识别实现Windows工作站安全登录:从技术原理到企业级落地实践
  • 正则表达式全集
  • 中山手机网站制作哪家好网站管理员登陆后缀
  • K8s高可用:四大核心机制解析
  • 1024勋章发文活动
  • 依托金仓数据库的医疗信创多院区实践与 KingbaseES 操作详解
  • Linux---开发工具2
  • GBase安装部署
  • 4A架构解析:业务、数据、应用、技术架构的区别与联系
  • Redisson与Spring提供的RedisTemplate做一个对比
  • 南京做网站公司地点免费ddns域名注册
  • asp网站开发报告酷站是什么网站
  • [服务部署]京东云部署JavaWeb项目