canvas技术整理
canvas技术整理
html
<canvas id= "canvas"></canvas> javascript
var canvas = document.getElementById('canvas')
var context =canvas.getContext('2d')
//使用context进行绘制 canvas.width
canvas.height
canvas.getContext('2d') moveTo(x,y)
lineTo(x,y)
beginPath()
closePath() lineWith //线条宽度
strokeStyle //线条样式
fillStyle //填充颜色
stroke() //绘制
fill() //填充 rect(x,y,width,height) //勾勒矩形边框路径
fillRect(x,y,width,height) //填充矩形
strokeRect(x,y,width,height) //绘制带边框的路径 //线条属性
lineWith //线条宽度
lineCap="butt"(default) //线条帽子的形状
"round" 圆形
"square" 方形
lineJion="miter"(default) 尖角
"bevel" 斜切
"round" 圆角
miterLimit //图形变换
save()
restore() translate(x,y)
rotate(deg)
scale(sx,sy) //变换矩阵
[a c e] [水平缩放(1) 垂直倾斜(0) 水平位移(0)]
[b d f] [水平倾斜(0) 垂直缩放(1) 垂直位移(0)]
[0 0 1]
transfrom(a,b,c,d,e,f) //效果会累加
setTransform(a,b,c,d,e,f) //仅使用该效果 //渐变色和纹理
fillStyle = color / gradient / image / canvas / video
color格式:#ffffff / #642 / rgb / rgba / hsl / hsla / red
gradient格式:Linear Gradient(线性渐变)
var grd = context.createLinearGradient(xstart,ystart,xend,yend);
Radial Gradient(径向渐变)
var grd = context.createRadialGradient(xstart,ystart,xend,yend);
grd.addColorStop(stop,color);
image||canvas||video格式:
createPattern(img / canvas / video , repeat-style)
repeat-style:no-repeat / repeat-x / repeat-y / repeat //曲线的绘制
context.arc(centerx,centery,radius,startingAngle,endingAngle,anticlockwise=false)
context.crcTo(x1,y1,x2,y2,radius) context.quadraticCurveTo(x1,y1, //控制点
x2,y2) //结束点
context.bezeirCurveTo(x1,y1,x2,y2, //控制点
x3,y3) //结束点 //文字渲染
context.font="bold 40px Arial"
context.fillText(string,x,y,[maxlen]);
context.strokeText(string,x,y,[maxlen]); font
默认值:"20px sans-serif"
context.font = font-style font-variant font-weight font-size font-family
font-style: normal (Default)
italic (斜体字)
oblique (倾斜字体)
font-variant:normal (Default)
small-caps (以英文小写显示大写字母)
font-weight: lighter
normal (Deafult)
bold
bolder
100,200,300,400(normal),500,600,700(bold),800,900
font-size: 20px (Deafult)
2em
150%
xx-small x-small medium large x-large xx-large
font-famly: 设置多种字体备选 / 支持@font-face / web安全字体
context.textAlign = left / center / right
context.textBaseline = top / middle / bottom (垂直对齐)
alphabetic(Deafult) (基于拉丁字母设计的垂直对齐)
ideographic (基于方块字体设计的垂直对齐)
hanging (基于印度语设计的垂直对齐) //图片
drawImage(image,dx,dy)
drawImage(image,dx,dy,dw,dh)
drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh)
dx,dy:image在canvas中定位的坐标值;
dw,dh:image在canvas中即将绘制区域的宽高;(相对于dx,dy坐标的偏移量)
sx,sy:image在canvas中所要绘制的起始位置;
sw,sh:image在canvas中所要绘制区域的宽高;(相对于sx,sy坐标的偏移量)
getImageData(x,y,w,h)
putImageData(imgdata,dx,dy,sx,sy,sw,sh)
createImageData(sw,sh)
createImageData(imagedata) //阴影
context.shadowColor
context.shadowOffsetX //X偏移
context.shadowOffsetY //Y偏移
context.shadowBlur //模糊 //高级
globalAlpha = 1 (默认值)
globalCompositeOperation = "source-over" (默认值)
参数:source-over destination-over lighter
source-atop destination-atop copy
source-in destination-in xor
source-out destination-out //路径方向和剪纸效果
非零环绕原则 //剪辑区域
context.clip(); =>探照灯 //交互
context.clearRect(x,y,width,height)
context.isPointInPath(x,y)
canvas技术整理的更多相关文章
- C#进程间通讯技术-整理。
原文:C#进程间通讯技术-整理. 扩展阅读:http://www.cnblogs.com/joye-shen/archive/2012/06/16/2551864.html 一.进程间通讯的方式 1) ...
- 【重点突破】——Canvas技术绘制随机改变的验证码
一.引言 本文主要是我在学习Canvas技术绘图时的一个小练习,绘制随机改变的验证码图片,虽然真正的项目里不这么做,但这个练习是一个掌握Canvas技术很好的综合练习.(真正的项目中验证码图片使用服务 ...
- DBGrid相关技术整理
DBGrid相关技术整理: 注:对于DBGrid相关属性.方法的学习融入到技术整理过程中 一,多选 设置属性: Options->dgMultiSelect = True; ->dgRow ...
- 【重点突破】——Canvas技术绘制音乐播放器界面
一.引言 在用Canvas练习制作了验证码之后,还有一个用Canvas技术很综合的练习——制作音乐播放器.在做这个练习的过程中,还有一个重要的观察点,那就是理解Canvas的一大问题. 二.要求 点 ...
- Java成神之路技术整理(长期更新)
以下是Java技术栈微信公众号发布的关于 Java 的技术干货,从以下几个方面汇总. Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 ...
- Java成神之路技术整理
关于 Java 的技术干货,从以下几个方面汇总. Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 Java 工具篇 Java 书籍篇 ...
- 51建设Android版一些技术整理
不知不觉几个月就过去了,新项目已经发了两个大的版(其实已经迭代了3版),趁着项目新版刚刚上线闲下来的时间整理下用到的技术点. 整体架构 采用MVP Android官方MVP架构示例项目解析 推荐一个插 ...
- 基于.NET平台常用的框架技术整理
个人整理 部分收藏于:http://www.cnblogs.com/hgmyz/p/5313983.html 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线 ...
- canvas技术概述
canvas简介 在学习一项新技术之前,先了解这项技术的历史发展及成因会帮助我们更深刻的理解这项技术. 历史上,canvas最早是由Apple Inc. 提出的,在Mac OS X webkit中创建 ...
随机推荐
- jsp二(指令)
一.jsp动作标签: 1)<jsp:forward> 请求转发 相当于之前的request.getRequestDispatcher(..).forward(..); <!--jsp ...
- JavaScript标准对象
1.Date var now = new Date(); now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST) now.getFullYear(); // 2 ...
- DB2 substr,instr使用
看示例,查询下一年'2xxx',例如今年2014,结果为2015 select substr(char(current timestamp),1,4)+1 from SYSIBM.SYSDUMMY1; ...
- log下一次坑爹的疏忽
今天调试一段十几行的代码,也让我是一顿咒骂...就说说是怎么回事哈哈. 是这样的,这个页面foreach了一个个的div块,每个div里有个a标签,这个按钮绑定了个点击事件.事件走了个ajax,根据返 ...
- 第12章 GPIO输入—按键检测
第12章 GPIO输入—按键检测 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fi ...
- Jupyter Notebook中让python2和python3内核共存
自己计算机里面共存了Python2和Python3,ipython作为试探性的REPL解释器使用的频率还是挺高的,分别在2和3下安装完ipython notebook后怎么分别使用这两种内核呢 按照默 ...
- centos 64位系统安装
由于centos 64位镜像大于4G,所以U盘装不进去.iso镜像,选择网络安装的方法或者使用一个U盘制作启动盘和一个硬盘来装镜像的方法. 1 网络安装第一步 下载 CentOS 安装 ISO 浏览 ...
- Python基础之公共方法
公共方法:就是列表,元组,字典,字符串能共同使用的方法: Python内置函数 内置函数罗列 函数 描述 备注 len(item) 计算容器中的元素个数 del(item) 删除变量 del有两种方法 ...
- 在 R 中估计 GARCH 参数存在的问题(基于 rugarch 包)
目录 在 R 中估计 GARCH 参数存在的问题(基于 rugarch 包) 导论 rugarch 简介 指定一个 \(\text{GARCH}(1, 1)\) 模型 模拟一个 GARCH 过程 拟合 ...
- go语言之行--包与变量
一.包的概念 包是go语言中不可缺少部分,在每个go源码的第一行进行定义,定义方式是:package "包名",并且该名称是作为调用该包时候所使用的名称. 包的概念总结: 每个 G ...