OkayPainter 是一个轻量级的Canvas框架库,提供了Canvas基本图形图像、动画、层、鼠标键盘事件管理机制。
OkayPainter 码云地址:https://gitee.com/djxfire/OkayPainter ,也可以使用 npm install okaypainter
下载。 在 dist 目录下找到okay-painter.min.js
在使用 引入OkayPainter 前,需要在 HTML 中加载对应 JavaScript 文件:
<script type = "javascript" src = "okay-painter.min.js"></script>
在使用OkayPainter时,我们必须新建一个Canvas对象,并且需要一个DOM容器:
<div id = "canvas" style = "width:500px;height:600px;"></div>
let canvas = new okay.Canvas({ ele: 'canvas' })
Canvas类只接受ID属性作为参数。至此我们已经在ID为canvas的DIV里创建了canvas节点,输出结果为:
<div id = "canvas" style = "width:500px;height:600px;"> <canvas width = "500" height="600" tabindex="0" style = "outline:none;"> </div>
OkayPainter提供多种基本图形。我们可以直接通过canvas的addChild添加元素,以下添加了一个圆:
let canvas = new okay.Canvas({ ele: 'canvas' }) let circle = new okay.Circle(100) circle.setPosition(300, 300) circle.setColor(new okay.Color(255,0,0,255)) canvas.addChild(circle) canvas.paint()
创建了一个圆心在(300,300)位置,半径为100,颜色为红色的圆。
我们可以直接通过元素的Node.addEventListener
方法为元素添加事件,以下为元素添加点击事件:
let canvas = new okay.Canvas({ ele: 'canvas' }) let circle = new okay.Circle(100) circle.setPosition(300, 300) circle.setColor(new okay.Color(255,0,0,255)) canvas.addChild(circle) circle.addEventListener(okay.Event.Type.EVENT_MOUSE_DOWN, (event, obj) => { alert('点击了圆') }) canvas.paint()
当用户点击圆时将执行alert
我们可以直接通过元素的Node.runAction
运行动画效果,以下为元素添加平移动画:
let canvas = new okay.Canvas({ ele: 'canvas', canAction:true }) let circle = new okay.Circle(100) circle.setPosition(300, 300) circle.setColor(new okay.Color(255,0,0,255)) canvas.addChild(circle) circle.addEventListener(okay.Event.Type.EVENT_MOUSE_DOWN, (event, obj) => { let mvAction = new okay.ActionMove(new okay.Point(100, 100),3) circle.runAction(mvAction) }) canvas.paint()
上述例子点击圆时圆将在3秒内移动到点(100,100)处。
在PhotoShop中有专门的效果工具,Canvas也提供了一些基本的效果接口。这种效果在画布中实现是很简单的,特别是现在你已经掌握了像素的操作方法。 反转颜色 这个效果将反转图像的颜色值。基本方法就是用255减去像素现在的颜色值(150),所得的就是反转后的颜色(255-150=105)。 让我们尝试一些不同的操作,然后看看最后的代码,这里并没有新知识。 var image = new Ima
前面我们讲解了如何创建图形(shape)以及加载图像(image),这一节我们讲述如何通过像素操作从零开始创建图像。 要创建一些像素,需要调用2D渲染上下文的createImageData 方法。通过传入宽度和高度,它会返回一个包含所有常规属性的ImageData对象:width、height和(最重要的)data。data属性所包含的CanvasPixelArray 将保存新的像素,此时它们是不
问题内容: 我目前有一个迷宫游戏,它绘制一个5 x 5的正方形(占用屏幕的宽度并将其均匀分割)。然后,对于每个使用x和y坐标的框,我使用drawRect绘制彩色背景。 我遇到的问题是我现在需要在同一位置绘制图像,因此需要替换当前的纯背景色填充。 这是我当前用于drawRect的代码(一些示例): 然后,我还需要为画布中的所有其他正方形实现背景图像。该背景将在其顶部绘制简单的1px黑色线条,当前代码
问题内容: 我想绘制Java的Canvas,但由于我不知道自己在做什么而无法正常工作。这是我的简单代码: 窗口上没有任何内容。 我以为“画布”是纸而“图形”是我的铅笔是我的错吗?那是怎么回事? 问题答案: 意见建议: 不要使用Canvas,因为不要将AWT与Swing组件不必要地混合。 而是使用JPanel或JComponent。 不要通过调用组件来获取Graphics对象,因为获得的Graphi
问题内容: 我目前在一个网站上工作,该网站必须存在于内存可用性非常低的VM上(目前被告知要达到512mb)。不幸的是,至少在不久的将来,数据库和Web应用程序必须是同一台服务器。 现在,我已经在这里通读了一些问题,并尝试进行自己的研究,但是这里有很多选择。从本质上讲,什么是可以安装的轻巧的数据库服务器?SQL或NoSQL并不重要;它不会占用大量数据库资源,但我现在不想随我现在选择的内容而受到限制。
本文向大家介绍js+canvas绘制图形验证码,包括了js+canvas绘制图形验证码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了利用canvas绘制图形验证码的具体代码,供大家参考,具体内容如下 思路:通过随机获取指定字符串的指定数的字符,通过canvas绘制出来 返回指定范围的随机整数 返回指定数量的随机字符串 绘制图形 鼠标点击更新验证码 完整代码 以上就是本文的全部内容,