HTML5 Canvas 教程:六、填充样式

六、填充样式 Fill Style

 

6.1纯色填充 Color Fill

 

要用纯色填充HTML5画布形状,可以将fillStyle属性设置为颜色字符串(如蓝色)、十六进制值(如0000FF)或RGB值(如rgb(0,0255),然后可以使用fill()方法来填充形状。除非另有声明,否则HTML5画布形状的默认填充样式为黑色。

 

注意:在为形状设置填充和笔划时,请确保在stroke()之前使用fill()。否则,填充将重叠。

 

<!DOCTYPE HTML>

<html>

  <head>

    <style>

      body {

        margin: 0px;

        padding: 0px;

      }

    </style>

  </head>

  <body>

    <canvas id="myCanvas" width="578" height="200"></canvas>

    <script>

      var canvas = document.getElementById('myCanvas');

      var context = canvas.getContext('2d');

 

      // begin custom shape

      context.beginPath();

      context.moveTo(17080);

      context.bezierCurveTo(130100130150230150);

      context.bezierCurveTo(250180320180340150);

      context.bezierCurveTo(420150420120390100);

      context.bezierCurveTo(430403703034050);

      context.bezierCurveTo(32052502025050);

      context.bezierCurveTo(20051502017080);

 

      // complete custom shape

      context.closePath();

      context.lineWidth = 5;

      context.fillStyle = '#8ED6FF';

      context.fill();

      context.strokeStyle = 'blue';

      context.stroke();

    </script>

  </body>

</html>

 

以上代码演示了在画布上绘制一个自定义闭合形状,并用纯色填充。

 

 

6.2线形渐变填充 Linear Gradient

 

为了在HTML5画布上进行线性渐变填充,可以使用createLinearGradient()方法。线性渐变通过声明渐变方向来定义。一旦创建了渐变,就可以使用addColorStop属性插入颜色。

 

线性渐变的方向从createLinearGradient()定义的假象线的起点移动到终点。在本教程中,使用了两种颜色停顿,一种用于在渐变开始的浅蓝色,一种用于渐变结束的深蓝色。颜色停止沿虚线放置在0和1之间,其中0位于起始点,1位于结束点。

 

<!DOCTYPE HTML>

<html>

  <head>

    <style>

      body {

        margin: 0px;

        padding: 0px;

      }

    </style>

  </head>

  <body>

    <canvas id="myCanvas" width="578" height="200"></canvas>

    <script>

      var canvas = document.getElementById('myCanvas');

      var context = canvas.getContext('2d');

      context.rect(00, canvas.width, canvas.height);

 

      // add linear gradient

      var grd = context.createLinearGradient(00, canvas.width, canvas.height);

      // light blue

      grd.addColorStop(0'#8ED6FF');   

      // dark blue

      grd.addColorStop(1'#004CB3');

      context.fillStyle = grd;

      context.fill();

    </script>

  </body>

</html>

 

以上代码演示了在画布上绘制一个矩形,并使用线形渐变进行填充。

 

 

6.3径向渐变填充 Radial Gradient

 

为了在HTML5画布上进行径向渐变填充,我们可以使用createRadialGradient()方法。径向渐变定义为两个假想圆:起始圆和结束圆,渐变从起始圆开始,向结束圆移动。

 

<!DOCTYPE HTML>

<html>

  <head>

    <style>

      body {

        margin: 0px;

        padding: 0px;

      }

    </style>

  </head>

  <body>

    <canvas id="myCanvas" width="578" height="200"></canvas>

    <script>

      var canvas = document.getElementById('myCanvas');

      var context = canvas.getContext('2d');

      context.rect(00, canvas.width, canvas.height);

 

      // create radial gradient

      var grd = context.createRadialGradient(238501023850300);

      // light blue

      grd.addColorStop(0'#8ED6FF');

      // dark blue

      grd.addColorStop(1'#004CB3');

 

      context.fillStyle = grd;

      context.fill();

    </script>

  </body>

</html>

 

以上代码演示了在画布上绘制一个矩形,并用径向渐变填充。

 

 

6.4模式填充 Pattern Fill

 

为了在HTML5画布上进行模式填充,我们可以使用createPattern()方法来返回一个模式对象,将fillStyle属性设置为模式对象,然后使用fill()方法填充形状。createPattern()方法需要一个图像对象和一个重复选项,它可以是repeat、repeat-x、repeat-y或no-repeat。除非另有声明,否则重复选项默认为repeat。

 

<!DOCTYPE HTML>

<html>

  <head>

    <style>

      body {

        margin: 0px;

        padding: 0px;

      }

    </style>

  </head>

  <body>

    <canvas id="myCanvas" width="578" height="200"></canvas>

    <script>

      var canvas = document.getElementById('myCanvas');

      var context = canvas.getContext('2d');

 

      var imageObj = new Image();

      imageObj.onload = function() {

        var pattern = context.createPattern(imageObj, 'repeat');

 

        context.rect(00, canvas.width, canvas.height);

        context.fillStyle = pattern;

        context.fill();

      };

      imageObj.src = 'wood-pattern.png';

    </script>

  </body>

</html>

 

以上代码演示了在画布上创建一个矩形,并用背景图片重复填充。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值