canvas学习笔记

canvas制造2d环境:

var txt = cvs.grtContext(‘2d’);

绘制矩形:

fillRect(x,y,width,height) :绘制填满的矩形

strokeRect(x,y,width,height) :绘制矩形的边框

clearRect(x,y,width,height) :清除指定的区块,使该区块完全透明

设置绘图

fillStyle:填充颜色(绘制canvas是有顺序的)

lineWidth:线宽度,是一个数值

strokeStyle :边线颜色

绘制方块

fillRect(L,T,W,H) :默认颜色是黑色

strokeRect(L,T,W,H) :带边框的方块

默认一像素黑色边框,显示出来的不一样原因

设置绘图

fillStyle:填充颜色(绘制canvas是有顺序的)

lineWidth:线宽度,是一个数值

strokeStyle :边线颜色

边界绘制

lineJoin:边界连接点样式

miter(默认)、round(圆角)、bevel(斜角)

lineCap:端点样式

butt(默认)、round(圆角)、square (高度多出为宽一半的值)

绘制路径

beginPath :开始绘制路径

closePath:结束绘制路径

moveTo:移动到绘制的新目标点

lineTo:新的目标点

绘制路径_2

stroke:画线,默认黑色

fill:填充,默认黑色

rect:矩形区域

clearRect:删除一个画布的矩形区域

save:保存路径

restore:恢复路径

小例子:手指画板

绘制圆

arc(x, y,半径,起始弧度,结束弧度,旋转方向)

x ,y:起始位置

弧度与角度的关系:弧度=角度*Math.PI/180

旋转方向:顺时针(默认:false)、逆时针(true)

例子:用arc去画个钟表

绘制其他曲线

arcTo(x1,y1,x2,y2,r)

第一组坐标、第二组坐标、半径

quadraticCurveTo(dx,dy,x1,y1)

贝塞尔曲线:第一组控制点、第二组结束坐标

bezierCurveTo(dx1,dy1,dx2,dy2,x1,y1)

贝塞尔曲线:第一组控制点、第二组控制点、第三组结束坐标

变换

translate

偏移:从起始点为基准点,移动当前坐标位置

rotate

旋转:参数为弧度

例子:旋转的小方块

scale

缩放例子:旋转加缩放的小方块

插入图片

等图片加载完,再执行canvas操作

图片预加载:在onload中调用方法

drawImage(oImg,x,y,w,h)

oImg :当前图片x,y :坐标w,h :宽高

例子:微博的图片旋转效果

添加图片填充

createPattern(img,repeat)

repeat、repeat-x、repeat-y、no-repeat

渐变

createLinearGradient(x1,y1,x2,x2)线性渐变

createRadialGradient(x1,y1,r1,x2,y2,r2)径向渐变

addColorStop(stop,color);

stop取值(0-1)

文本

strokeText(文字,x,y)

文字边框

fillText(文字,x,y)

文字填充

font

文字大小:'60px impact‘

textAlign

默认是start跟left一样的效果end right center

textBaseline

文字上下的位置的方式默认: alphabetic

文本_2

measureText()

measureText(str).width :只有宽度,没有高度

例子:文字居中

阴影

shadowOffsetX、shadowOffsetY

X轴偏移、Y轴偏移

shadowBlur

模糊半径

shadowColor

阴影颜色

像素

getImageData(x,y,w,h)

获取图像数据

putImageData(获取图像,x,y)

设置新的图像数据

属性

width:一行的像素个数

height :一列的像素个数

data:一个数组,包含每个像素的rgba四个值,注意每个值都在0~255之间的整数

像素_2

createImageData(w,h)

生成新的像素矩阵,初始值是全透明的黑色,即(0,0,0,0)

像素显字

获取和设置指定坐标

封装:getXY、setXY

图片的像素操作

必须是同源下

例子:反色、倒影、渐变等

例子:马赛克效果

合成

全局阿尔法值

globalAlpha

取值0-1

覆盖合成

源:新的图形

目标:已经绘制过的图形

globalCompositeOperation属性

source-overdestination-oversource-atop

destination-atopsource-indestination-in

source-outdestination-outlighter

copyxor

导出图片

-toDataURL("image/png")

事件操作

isPointInPath

是否在点击范围内

jCanvaScript(canvas中的jquery):

http://jcscript.com/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容

  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 3,934评论 3 40
  • 最基本的使用创建一个画布所有的操作都在画布的context上面canvas是基于状态而不是基于对象的,比如说颜色都...
    亲爱的孟良阅读 1,647评论 0 4
  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 4,660评论 2 32
  • 转载请声明 原文链接 关注公众号获取更多资讯 这篇文章主要总结H5的一些新增的功能以及一些基础归纳,这里只是一个提...
    程序员poetry阅读 9,057评论 22 225
  • 一路绿灯,到站就来车。 公司前辈姐姐对我笑了,一下子所有之前的不顺被这一笑泯了恩仇。 换了宿舍这两天我才知道原来我...
    个己阅读 198评论 0 1