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中创建 ...
随机推荐
- liMarquee – jQuery无缝滚动插件(制作跑马灯效果)
liMarquee 是一款基于 jQuery 的无缝滚动插件,类似于 HTML 的 marquee 标签,但比 marquee 更强大.它可以应用于任何 Web 元素,包括文字.图像.表格.表单等元素 ...
- 希尔排序算法的php实现
虽然现在各种程序语言都有其各自强大的排序库函数,但是这些底层实现也都是利用这些基础或高级的排序算法. 理解这些复杂的排序算法还是很有意思的,体会这些排序算法的精妙~ 一.希尔排序(shell sort ...
- sql语句 这里是取一串数据中的 头 中 尾 几个数据
select t1.name 流转单号,t1.date 日期, t3.name_template 产品编码, left(t3.name_template,3) 图, substring(t3.name ...
- 2017-2018-2 20155229《网络对抗技术》Exp1:逆向及Bof基础实践
逆向及Bof基础实践 实践基础知识 管道命令: 能够将一个命令的执行结果经过筛选,只保留需要的信息. cut:选取指定列. 按指定字符分隔:只显示第n 列的数据 cut -d '分隔符' -f n 选 ...
- 定义C#鼠标指针的形状 Cursor
原文:定义C#鼠标指针的形状 Cursor 定义C#指针形状的两种方法. 1.控件属性定义法: 在Windows应用程序中,通过设置控件的Cursor属性可以定义鼠标的显示形状.控件(如Button控 ...
- C语言学习之结构体
前言 一直以来,C语言的学习都在入门阶段,只用到数组.函数.循环.选择.位运算这些基本的知识,较少用到指针.预处理.结构体.枚举类型.文件操作等这些C语言的精髓内容,现在想想真不敢说自己熟练掌握C语言 ...
- libgdx学习记录20——多线程MultiThread资源处理
在libgdx中,一般的逻辑流程都在rende()函数中执行,这个函数是由opengl的渲染线程调用的,一般的图形显示和逻辑处理都在这个线程中. 一般情形下,在这个线程中处理就行了.但是当某些逻辑处理 ...
- LOJ.#6468. 魔法[差分+树状数组]
题意 题目链接 分析 将询问差分并不断加入颜色. 每种颜色,一个位置 \(p\) 都只会走到与之左右相邻的两个位置之一,分类讨论 \(\rm |A-B|\) 的符号. 实现可以使用树状数组. 总时间复 ...
- Scala基础(1)
Scala基础语法 声明与定义: val,常量声明 val x:T(把x声明成一个类型为T的常量) x是变量的名字,T是变量的类型 v ...
- Win环境 Android Studio使用Git 教程 ( 生成SSH key )
Github和码云都提供SSH协议,即用户可以用公钥认证方式连接到码云的SSH服务器.这就需要生成并部署SSH Key.下面就是我生成SSH Key的步骤,希望有所帮助: Git生成SSH key 在 ...