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技术整理的更多相关文章

  1. C#进程间通讯技术-整理。

    原文:C#进程间通讯技术-整理. 扩展阅读:http://www.cnblogs.com/joye-shen/archive/2012/06/16/2551864.html 一.进程间通讯的方式 1) ...

  2. 【重点突破】——Canvas技术绘制随机改变的验证码

    一.引言 本文主要是我在学习Canvas技术绘图时的一个小练习,绘制随机改变的验证码图片,虽然真正的项目里不这么做,但这个练习是一个掌握Canvas技术很好的综合练习.(真正的项目中验证码图片使用服务 ...

  3. DBGrid相关技术整理

    DBGrid相关技术整理: 注:对于DBGrid相关属性.方法的学习融入到技术整理过程中 一,多选 设置属性: Options->dgMultiSelect = True; ->dgRow ...

  4. 【重点突破】——Canvas技术绘制音乐播放器界面

    一.引言 在用Canvas练习制作了验证码之后,还有一个用Canvas技术很综合的练习——制作音乐播放器.在做这个练习的过程中,还有一个重要的观察点,那就是理解Canvas的一大问题. 二.要求  点 ...

  5. Java成神之路技术整理(长期更新)

    以下是Java技术栈微信公众号发布的关于 Java 的技术干货,从以下几个方面汇总. Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 ...

  6. Java成神之路技术整理

    关于 Java 的技术干货,从以下几个方面汇总. Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 Java 工具篇 Java 书籍篇 ...

  7. 51建设Android版一些技术整理

    不知不觉几个月就过去了,新项目已经发了两个大的版(其实已经迭代了3版),趁着项目新版刚刚上线闲下来的时间整理下用到的技术点. 整体架构 采用MVP Android官方MVP架构示例项目解析 推荐一个插 ...

  8. 基于.NET平台常用的框架技术整理

    个人整理 部分收藏于:http://www.cnblogs.com/hgmyz/p/5313983.html 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线 ...

  9. canvas技术概述

    canvas简介 在学习一项新技术之前,先了解这项技术的历史发展及成因会帮助我们更深刻的理解这项技术. 历史上,canvas最早是由Apple Inc. 提出的,在Mac OS X webkit中创建 ...

随机推荐

  1. 【转】阿里云Ubuntu系统搭建SVN服务器

    ##SVN服务器相关软件安装 1.使用SSH远程服务器 (1)对于MAC OS/Liunx的用户直接打开终端输入 ssh  用户名@实例名,例如 ssh root@192.168.1.100 执行上面 ...

  2. JAVA 第二周学习总结

    20175308 2018-2019-2 <Java程序设计>第二周学习总结 教材学习内容总结: 第二章学习内容: 1.认识标识符与关键字 2.java的八种数据类型,着重记好精度由高到低 ...

  3. robotframe 自定义开发库

    site-packages(这个路径一定要在系统path路径中)下面创建一个UserDefineLibrary文件夹:目录结构如下 ---- ----- UserDefineLibrary __ in ...

  4. GrowingIO接入SDK简介

    安装使用文档逐步操作 准备工作: 1.注册一个GrowingIO账号 2.申请一个域名(注意:不能是ip或host) 登陆gio平台: 1.安装SDK 2.根据项目选择对应的sdk:js,安卓,ios ...

  5. 20155308『网络对抗技术』Exp7:网络欺诈防范

    20155308『网络对抗技术』Exp7:网络欺诈防范 原理与实践说明 1.实践目标 本实践的目标是:理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. 2.实践内容概述 简单应用SET ...

  6. [BZOJ4722]由乃[鸽巢原理+bitset+倍增]

    题意 给定长为 \(n\) 序列 \(a\) ,要求支持两种操作: \(1.\) 询问在一个区间 \([l,r]\) 中,是否能够选出两个交集为空的集合 $ \rm X ,Y$, 使得 \(\sum_ ...

  7. HTML-JS 循环 函数 递归

    [循环结构的执行步骤] 1.声明循环变量 2.判断循环条件 3.执行循环体操作 4.更新循环变量 然后,循环执行2-4,直到条件不成立时,跳出循环. while循环()中的表达式,运算结果可以是各种类 ...

  8. Express模版引擎hbs备忘

    最近几天折腾了下express,想找个合适的模版引擎,下面是一些折腾过程的备忘 选择标准 选择一门模版语言时,可能会考虑的几点 语法友好(micro tmpl那种语法真是够了) 支持模版嵌套(子模版的 ...

  9. VirtualBox虚拟机怎么导入已经存在的vdi文件

    VirtualBox虚拟机怎么导入已经存在的vdi文件 第一章 1.原因 早上一不小心将virtualBox 卸载了,(不知道怎么了, 里面得虚拟机全部都没有了,但是vdi文件还在) 2.解决办法 直 ...

  10. Svn 提示错误:previous operation has not finished 解决方案

    svn提交遇到恶心的问题,可能是因为上次cleanup中断后,进入死循环了. 解决方案: 找到你项目的.svn文件,查看是否存在wc.db 网上下载SQLite Expert工具,手动打开wc.db, ...