CanvasRenderingContext2D 整理

摘要:
图案使用纹理填充。悬挂主要用于藏文和其他印度文字,所以我们可以理解它。LineDashOffset:值表示绘制虚线的偏移距离。它是一种浮点类型,默认值为0.0。LineJoin:表示线角的样式。它支持:斜接、圆形、斜面宽度:值表示线的宽度。如果它是负数,0、NaN或Infinity将被忽略。渐变笔划设置为渐变。ShadowOffsetX:指示阴影的水平偏移大小。上下文strokeText;可以使用与measureText()相同的参数来测量文本的某些数据。TextMetrics.context的返回值。measureText是TextMetrics,以及文本TextMetrics的宽度。宽度为只读。

CanvasAPI参考文档推荐:

https://www.canvasapi.cn/

一、CanvasRenderingContext2D 属性

canvas : 当前元素对象

globalAlpha: 全局透明度,范围是0到1,范围以外的值会被忽略

globalCompositeOperation: 可以用来设置Canvas图形的混合模式。可以衍生很多其他效果,以及改变绘制图形的上下层叠关系。

fillStyle :

color
使用纯色填充,支持RGB,HSL,RGBA,HSLA以及HEX色值。
gradient
使用渐变填充,可以是线性渐变或者径向渐变。
pattern
使用纹理填充。由于图片也能作为纹理,因此fillStyle也能填充普通的位图

文字设置:

font: value就是字号字体值,其规则和CSS的font很类似,除了一些很微小的细节差异,其他几乎没什么区别

textAlign:文本水平对齐方式,和CSS的text-align属性值类似,支持left,right,centerstart,end这些值

textBaseline:指定文本对齐的基线,

其中value支持如下几个关键字:

top
设定的垂直y坐标作为文本em区域(em区域可以看成中文字符占据的区域)的顶部。
hanging
hanging主要在藏文和其他印度文字中使用,我们了解即可。
middle
设定的垂直y坐标作为文本em区域的垂直中心位置。
alphabetic
默认值。表示的是正常文本的基线,可以看成是字母x的下边缘。也就是设定的垂直y坐标就是字母x的下边缘。
ideographic
ideographic主要在汉语、日语和韩语中使用。字面直译是表意基线。含义为:如果字符的主体突出在字母基线之下,则这是字符主体的底部。例如汉字“中”比字母x位置更低,因此,底部是汉字主体的底部。
bottom
设定的垂直y坐标作为文本em区域的底部。

线段相关:
lineCap: 表示线条端点的样式

butt
默认值,线的端点就像是个断头台,例如一条横线,终点x坐标是100,则这条线的最右侧边缘就是100这个位置,没有超出。
round
线的端点多出一个圆弧。
square
线的端点多出一个方框,框框的宽度和线一样宽,高度是线厚度的一半。

lineDashOffset:value 表示虚线起始绘制的偏移距离,为浮点型,默认值是0.0。

lineJoin: 表示线条转角的样式,支持:miter,round,bevel
lineWidth:value 表示线的宽度。数值类型,默认值是1.0。如果是负数,0,NaN,或者Infinity都会忽略。

miterLimit:value表示多大范围内转角表现为miter的宽度。数值类型,默认值是10.0。如果是负数,0,NaN,或者Infinity都会忽略。

strokeStyle:可以是路径的描边,也可以是是形状的描边,也可以是文字的描边。描边的样式也不仅限于颜色。

color
描边设置为颜色。
gradient
描边设置为渐变。
pattern
描边设置为图案。

阴影设置:

shadowBlur:可以用来指定阴影的模糊程度。默认值是0,表示不模糊。

shadowColor:可以用来指定阴影的颜色。默认值是透明黑,也就是看不到颜色,因此,如果我们想要使用阴影效果,shadowColor是必须要指定的。

shadowOffsetX:表示阴影的水平偏移大小。
shadowOffsetY:表示阴影的垂直偏移大小。



二、CanvasRenderingContext2D 方法

1.绘制文字

fileText()

用来填充文字,是Canvas绘制文本的主力方法。

context.fillText(text, x, y [, maxWidth]);
参数
各个参数含义和作用如下:

textString
用来填充的文本信息。
xNumber
填充文本的起点横坐标。
yNumber
填充文本的起点纵坐标。
maxWidth(可选)Number ,指定最大宽度,每个文本宽度进行适合,而非换行

strokeText()

实现文本描边效果。此描边为居中描边。

context.strokeText(text, x, y [, maxWidth]);

参数同上

 measureText()

可以用来测量文本的一些数据,返回 TextMetrics.

context.measureText(text)

返回值:TextMetrics,含有文本的宽度

TextMetrics.width
只读。表示当前文本占据的CSS像素宽度。

2.绘制区域

3.绘制路径

4.缩放变形

5.绘制图片

6.其他常用方法

更多:

HTMLCanvasElement 整理 

Canvas 实现圆圈进度展示/进度动画 

canvas应用——将方形图片处理为圆形 

免责声明:文章转载自《CanvasRenderingContext2D 整理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇0x01 译文:Windows桌面应用Win32开发简介GDI 总结三: CImage类使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Golang 编码规范

原文链接:https://github.com/golang/go/wiki/CodeReviewComments1)用 goimport 代替 gofmt2) https://golang.org/doc/effective_go.html#commentary注释单独一行,开始于描述的名字,结束于。。没看明白3)context.Context的值包含:...

深入Razor,你准备好了吗?(兼谈我的学习方法和定位)

目录 1 学习方法论         1下定义-针对不同的定义做不同的学习         2如何学习        3 知其所以然的学习    3MVC中页面引擎的入口 4我的定位  (主观的看法很多,说的不好不对的地方请多多指教) 1学习方法 给你要做的事下个定义        我的博士导师跟我说: 如果给问题下准了定义,那么问题就算解决了60%...

记druid 在配置中心下的一个大坑: cpu 达到 100%

把我们的dubbo 应用移步到配置中心上去之后,发现我们的应用过一段时间就会出现cpu 100%的情况 (大概是12个小时),一开始cpu占用是2-5% 的样子,什么都没做,后面竟然用尽了cpu。。 把jvm 线程堆栈打印一下,发现线程数竟然达到了上万..... 发现最多是这样的一个线程: "com.alibaba.nacos.client.Worker....

Spring Cloud Finchley.SR1 版本的坑:placeholer占位符无法解析!

接入nacos 之后,想把所有的配置丢上去。 启动程序是: @EnableDiscoveryClient @RestController @ComponentScan(basePackages = {"com.lkk"}) @MapperScan(basePackages = {"com.lkk.ppm.doc.service.dao"}) @Im...

修改Springboot启动端口号

前言Springboot启动的时候,端口的设定默认是8080,这肯定是不行的,我们需要自己定义端口,Springboot提供了两种方式,第一种,我们可以通过application.yml配置文件配置,第二种,可以通过代码里面指定,在开发中,建议使用修改application.yml的方式来修改端口。 一、pom.xml<?xml version="1...

Android 之窗口小部件详解--App Widget

Android 之窗口小部件详解--App Widget  版本号 说明 作者 日期  1.0  添加App Widge介绍和示例  Sky Wang 2013/06/27            1 App Widget简介App Widget是应用程序窗口小部件(Widget)是微型的应用程序视图,它可以被嵌入到其它应用程序中(比如桌面...