html5 canvas常用属性方法(介绍)

本章给大家带来html5 canvas常用属性方法(介绍),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

首先引入标签就不必说了。

其次就是得到canvas的2d环境了( var ctx = canvasDom.getContext(‘2d’) )。

现在呢,你可能想画点什么东西。画东西之前你要确定好一些东西,比如:

 ctx.fillStyle:这是一个用来确定填充颜色的属性。(带fill都和填充有关)
   ctx.strokeStyle:这是一个用来确定”笔路径”(就像是线条)的属性。(带stroke都和描线有关)
   ctx.shadow++:这是有4个设置所画图形阴影的属性(shadowColor,shadowBlur,shadowOffsetX,shadowOffsetY),我不常用,略。
   ctx.lineWidth:这是4个设置线条样式的属性(lineCap,lineJoin,lineWidth,miterLimit)中最常用的,设置线宽,值为带px的string。
   ctx.font:这是设置文本()的字体大小和字体样式,值可以是”30px”,也可以是”30px  Microsoft yahei”。同时配合ctx.textAlign和ctx.baseline设置对齐位置和基线位置。然后通过ctx.filltext()或者ctx.strokeText()绘制文字,还有ctx.measureText()返回一个对象,里面包含文本的信息,比如width,height。

立即学习“前端免费学习笔记(深入)”;

了解了上面这些基础属性后,你就可以画点什么了:

想要显示点什么东西,流程大概是先弄路径(路径是看不见的),然后再通过ctx.fill()或ctx.stroke来对路径进行填充或描线。

你可以用ctx.rect(x,y,width,height)或ctx.arc(x,y,radius,startAngle,endAngle,anticolorwise)先弄一个路径,然后在fill或者stroke。

当然矩形有ctx.fillRect()和ctx.strokeRect()直接弄一个可见的方形。(圆没有这两个方法)

最后再介绍一个黑板擦–ctx.clearRect(x,y,weight,height),用来清除该方框内的所有像素。

还有一个为了防止之前的路径干扰,可以在每次画之前都ctx.beginPath()来清掉之前的路径。

以上就是基本的canvas的使用,下面就来聊点高(yong)级(bu)点(shang)的。

矩形样式的渐变填充:

var grd = ctx.createLinearGradient(x0,y0,x1,y1);grd.addColorStop(0,"black");grd.addColorStop(1,"white");ctx.fillstyle = grd;ctx.fillRect(x,y,w,h);

登录后复制

这一趟下来相当于是先预定义了一个渐变样式(可填充或者描线),将样式设置好后进行填充或者描线。

还有createRadialGradient()配合addColorStop设置放射状的样式。

媒体(图片、视频、其他canvas)的填充:  

var img = imgDom;var pat = ctx.createPattern(img,"repeat");

登录后复制

然后这个pat就可以给ctx.++Style,从而进行填充或者描线等。

其中pattern有四种:repeat(默认),repeat-x,repeat-y,no-repeat。

自定义路径:

利用ctx.moveTo(x,y);把路径起点移动到(x,y) ,然后配合lineTo(x,y),就可以得到路径,就可以描线显示出来。

当然如果你想填充,但是可能路径没有闭合,可以利用ctx.closePath()闭合路径,然后进行填充。

画布切割:

使用ctx.clip()可以根据当前已闭合的路径来剪切画布,被剪切的画布部分就不能被操作了。

可以通过ctx.save()对当前区域先进行保存,然后通过ctx.restore()进行恢复。

画圆弧:

画圆弧通过ctx.arcTo(x0,y0,x1,y1,radius);通过两点和半径确定弧线,来得到路径,然后根据需要填充或者描线。

判断点是否在路径内:

ctx.isPointInPath();返回布尔值,没啥好说的。

有一种曲线叫 贝塞尔:

  先用ctx.moveTo()移至起始点。

  ctx.quadraticCurveTo(c1x,c1y,edx,edy);利用起点和一个控制点加终点的贝塞尔曲线;

  ctx.beizierCurveTo(c1x,c1y,c2x,c2y,edx,edy);利用两个控制点绘制的贝塞尔曲线。

图形转换:

    ctx.scale(w,h);放大w>1就是宽度上放大,h就是高度上。

    ctx.rotate(r);r为弧度单位,如20度:20*Math.PI/180。顺时针。

    ctx.translate(x,y)设置画布上(0,0)的位置,(x,y)就是当前(0,0)的位置。

    ctx.transform(a,b,c,d,e,f);分别是水平缩放、水平倾斜、垂直倾斜、垂直缩放、水平位移、垂直位移。该属性会叠加,对下一个图形有效。

    ctx.setTransform(a,b,c,d,e,f);同上,该属性会重新定义一个transform,对下一个图形有效。

drawImage():

  ctx.drawImage(dom,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);除了dom外最多还可以传8个参数,传2个是定位图像(原尺寸),传4个是按大小定位图像,传8个是剪切后定位图像(分别是:剪切开始x,y,剪切大小w,h,定位位置x,y,大小w,h)。

  globalAipha属性:设置全局透明度。(已经画好的不受影响)。

  globalCompositeOperation 属性 设置上一个和下一个重叠区的层叠顺序,有”source-over”,”destination-over”,哪个over,哪个在下面。

以上就是html5 canvas常用属性方法(介绍)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2909059.html

(0)
上一篇 2025年3月11日 03:19:07
下一篇 2025年2月18日 04:47:48

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • html5利用canvas实现图片转素描效果

    本章给大家介绍html5如何利用canvas实现图片转素描效果。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 素描滤镜原理:最基础的算法就是:1、去色;(去色公式:gray = 0.3 red + 0.59 green …

    2025年3月11日
    200
  • 如何使用HTML5实现地理位置的获取

    现在的移动端大部分都带有gps定位功能,一方面可以利用基站获取位置,另一方面可以用gps芯片精确定位,那么我们在前端开发的过程中,如何在用户同意分享地理位置的情况下获取精确的定位信息呢?本文向大家展示如何使用html5实现地理位置的获取,有…

    2025年3月11日
    200
  • canvas渐变色:canvas如何实现渐变色的效果?

    在我们打开某个网页的时候,可能会看到有的页面中有颜色的渐变,感觉很好看,那么,这种渐变色是如何实现的呢?所谓渐变色其实就是颜色之间的过渡,而html5 canvas渐变是一种用于填充或描边图形的颜色模式,所以,利用canvas如何实现颜色的…

    2025年3月11日
    200
  • canvas文字怎么换行?canvas文字换行的方法介绍

    html5中的canvas是用于绘制图形的,可以通过 javascript 来控制它绘制各种文本和图像,但是在使用 canvas 绘制文字的时候,我们可能想要让这些文字在某处按要求换行,这该如何实现呢?本篇文章将来给大家介绍关于canvas…

    2025年3月11日
    200
  • html5需要遵守的6个原则(介绍)

    使得html5得以快速推广一系列原则是什么?本章给大家介绍html5需要遵守的6个原则。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 原则一:避免不必要的复杂性 html4 立即学习“前端免费学习笔记(深入)”; nbs…

    编程技术 2025年3月11日
    200
  • 移动端HTML5模拟长按删除事件(附代码)

    本篇文章给大家带来的内容是关于移动端html5模拟长按删除事件(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 为啥写这篇文章 最近接了个需求,要求长按某个标签显示删除一个悬浮的删除按钮。这个需求其实在app上很常…

    2025年3月11日
    200
  • Canvas引入跨域的图片导致toDataURL()报错的问题的解决

    这篇文章主要介绍了canvas引入跨域的图片导致todataurl()报错的问题的解决的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 推荐手册:HTML5最新版参考手册 本文介绍了Canvas引入跨域…

    2025年3月11日 编程技术
    200
  • html5 canvas的绘制文本自动换行的示例代码

    在使用 canvas 绘制某字符串的时候,我们可能想要让该字符串在某处按要求换行。那么应该如何实现,本文就来介绍一下,有兴趣的可以了解一下。 本文介绍怎么解决canvas绘图过程中,drawText的换行问题,先看一个大家平时在canvas…

    2025年3月11日
    200
  • html5使用canvas压缩图片的示例代码

    这篇文章主要介绍了html5使用canvas压缩图片的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。 前俩天做了一个图片转base64上传的功能,发现如果图片的base64过大的话,请求会变的很慢,严重的直接超时了…

    编程技术 2025年3月11日
    200
  • canvas像素点操作之视频绿幕抠图

    这篇文章主要介绍了canvas像素点操作之视频绿幕抠图的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧  本文介绍了canvas像素点操作之视频绿幕抠图,分享给大家,具体如下: 用法: context.…

    2025年3月11日 编程技术
    200

发表回复

登录后才能评论