HTML5 Canvas 填充与描边(Fill And Stroke)

简介: HTML5 Canvas 填充与描边(Fill And Stroke)

HTML5 Canvas 填充与描边(Fill And Stroke)

演示HTML5 Canvas Fill 与Stroke文字效果,基于Canvas如何实

现纹理填充与描边。

一:颜色填充与描边

颜色填充可以通过fillStyle来实现,描边颜色可以通过strokeStyle来实现。简单示例

如下:

// fill and stroke text

ctx.font = '60pt Calibri';

ctx.lineWidth = 3;

ctx.strokeStyle = 'green';


ctx.strokeText('Hello World!', 20, 100);


ctx.fillStyle = 'red';


ctx.fillText('Hello World!', 20, 100);


二:纹理填充与描边

HTML5 Canvas还支持纹理填充,通过加载一张纹理图像,然后创建画笔模式,创建


纹理模式的API为ctx.createPattern(imageTexture,"repeat");第二参数支持四个


值,分别为”repeat-x”, ”repeat-y”, ”repeat”,”no-repeat”意思是纹理分别沿着


X轴,Y轴,XY方向沿重复或者不重复。纹理描边与填充的代码如下:


var woodfill = ctx.createPattern(imageTexture,"repeat");


ctx.strokeStyle = woodfill;


ctx.strokeText('Hello World!', 20, 200);


// fill rectangle


ctx.fillStyle = woodfill;


ctx.fillRect(60, 240, 260, 440);

纹理图片:


三:运行效果

代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="chrome=IE8">
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Canvas Fill And Stroke Text Demo</title>
<link href="default.css" rel="stylesheet" />
  <script>
    var ctx = null; // global variable 2d context
    var imageTexture = null;
    window.onload = function() {
      var canvas = document.getElementById("text_canvas");
      console.log(canvas.parentNode.clientWidth);
      canvas.width = canvas.parentNode.clientWidth;
      canvas.height = canvas.parentNode.clientHeight;
      
      if (!canvas.getContext) {
          console.log("Canvas not supported. Please install a HTML5 compatible browser.");
          return;
      }
      
      // get 2D context of canvas and draw rectangel
      ctx = canvas.getContext("2d");
      ctx.fillStyle="black";
      ctx.fillRect(0, 0, canvas.width, canvas.height);
      
      // fill and stroke text
      ctx.font = '60pt Calibri';
      ctx.lineWidth = 3;
      ctx.strokeStyle = 'green';
      ctx.strokeText('Hello World!', 20, 100);
      ctx.fillStyle = 'red';
      ctx.fillText('Hello World!', 20, 100);
      
      // fill and stroke by pattern
      imageTexture = document.createElement('img');
      imageTexture.src = "../pattern.png";
      imageTexture.onload = loaded();
    }
    
    function loaded() {
      // delay to image loaded
      setTimeout(textureFill, 1000/30);
    }
    
    function textureFill() {
      // var woodfill = ctx.createPattern(imageTexture, "repeat-x");
      // var woodfill = ctx.createPattern(imageTexture, "repeat-y");
      // var woodfill = ctx.createPattern(imageTexture, "no-repeat");
      var woodfill = ctx.createPattern(imageTexture, "repeat");
      ctx.strokeStyle = woodfill;
      ctx.strokeText('Hello World!', 20, 200);
      
      // fill rectangle
      ctx.fillStyle = woodfill;
      ctx.fillRect(60, 240, 260, 440);
    }
    
  </script>
</head>
<body>
  <h1>HTML5 Canvas Text Demo - By Gloomy Fish</h1>
  <pre>Fill And Stroke</pre>
  <div id="my_painter">
    <canvas id="text_canvas"></canvas>
  </div>
</body>
</html>


相关文章
|
19天前
|
移动开发 前端开发 JavaScript
纯HTML5 Canvas实现的饼图
纯HTML5 Canvas实现的饼图
17 6
|
19天前
|
移动开发 前端开发 HTML5
HTML5 Canvas阴影用法演示
HTML5 Canvas阴影用法演示
35 4
|
19天前
|
移动开发 前端开发 HTML5
HTML5 Canvas中实现绘制一个像素宽的细线
HTML5 Canvas中实现绘制一个像素宽的细线
17 3
|
19天前
|
移动开发 前端开发 JavaScript
HTML5 Canvas自定义圆角矩形与虚线(Rounded Rectangle and Dash Line)
HTML5 Canvas自定义圆角矩形与虚线(Rounded Rectangle and Dash Line)
16 3
|
19天前
|
移动开发 前端开发 JavaScript
HTML5 Canvas实现360度全景图
HTML5 Canvas实现360度全景图
12 1
|
19天前
|
移动开发 前端开发 JavaScript
浏览器端图表渲染技术SVG, VML HTML Canvas
浏览器端图表渲染技术SVG, VML HTML Canvas
13 0
|
5天前
|
前端开发
HTML+CSS练习小项目——百叶窗
HTML+CSS练习小项目——百叶窗
|
3天前
|
XML 前端开发 JavaScript
HTML、CSS、JavaScript有什么区别
HTML、CSS、JavaScript有什么区别
|
8天前
|
编解码 前端开发
编写代码中常见问题汇总(html和css)
text-indent用于首行缩进,line-height与height相同实现垂直居中;vertical-align:middle用于行内元素居中;text-align:center做水平居中;list-style:none清除列表符号;overflow:hidden隐藏溢出;background-repeat:no-repeat阻止平铺;float:left实现横排;相对定位父元素,绝对定位子元素;box-sizing调整盒子模型;用边框或overflow解决盒子塌陷;
30 5
|
12天前
|
缓存 移动开发 前端开发
在PWA的开发中,HTML与CSS作为前端技术的基础,发挥着至关重要的作用
【6月更文挑战第14天】PWA(渐进式网页应用)借助HTML和CSS,提供接近原生应用的体验。HTML构建页面结构和内容,响应式设计适应各种设备,语义化标签提升可访问性,Manifest文件配置应用元数据,离线页面保证无网时体验。CSS则用于定制主题样式,创建动画效果,实现响应式布局,并管理字体和图标。两者协同工作,确保PWA在不同环境下的优秀性能和用户体验。随着前端技术进步,HTML与CSS在PWA中的应用将更加深入。
22 2