DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML5詳解 >> HTML5 Canvas如何實現紋理填充與描邊(Fill And Stroke)
HTML5 Canvas如何實現紋理填充與描邊(Fill And Stroke)
編輯:HTML5詳解     

演示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> 
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved