CSS3中的許多都可以類比與我們canvas的一些屬性
canvas中「畫筆」環境物件的許多屬性都可以類比CSS3中的屬性
我們不僅僅可繪製圖形,也可以在畫布中加入文字
文字填充
同樣先取得元素物件與環境物件
<canvas id="myCanvas" width=500 height=500></canvas>
var canvas = document.getElementById('myCanvas'), ctx = canvas.getContext('2d');
font用於設定字體屬性
fillText設定實體文字與位置
strokeText設定空心文字與位置
ctx.fillStyle = 'red'; ctx.font = '50px sans-serif'; ctx.fillText('hello world!', 100, 100);
font可以參考css的font屬性
預設值'10px sans-serif'
#還有一個測量文字寬度的方法可以了解即可
measureText()
console.log(ctx.measureText('hello world!').width);
線段屬性
線段覆蓋
lineCap( )用於設定線段覆蓋屬性
有三個值,butt/square/round
ctx.lineCap = 'butt'; //默认ctx.lineWidth = 50; ctx.moveTo(100, 100); ctx.lineTo(400, 100); ctx.stroke(); ctx.beginPath(); ctx.lineCap = 'square'; ctx.lineWidth = 50; ctx.moveTo(100, 200); ctx.lineTo(400, 200); ctx.stroke(); ctx.beginPath(); ctx.lineCap = 'round'; ctx.lineWidth = 50; ctx.moveTo(100, 300); ctx.lineTo(400, 300); ctx.stroke();
圖片中的灰色線條是我添加的
這樣就能夠看出三個值得區別
線段接合
lineJoin()定義了線段接合的行為
同樣有三個值,miter/round/bevel
ctx.lineWidth = 40; ctx.lineJoin = 'miter'; //默认ctx.moveTo(100, 100); ctx.lineTo(400, 400); ctx.lineTo(100, 400); ctx.closePath(); ctx.stroke();
ctx.lineWidth = 40; ctx.lineJoin = 'round'; //改ctx.moveTo(100, 100); ctx.lineTo(400, 400); ctx.lineTo(100, 400); ctx.closePath(); ctx.stroke();
ctx.lineWidth = 40; ctx.lineJoin = 'bevel'; //改ctx.moveTo(100, 100); ctx.lineTo(400, 400); ctx.lineTo(100, 400); ctx.closePath(); ctx.stroke();
#當我們使用預設的miter時
當兩條線段角度很小的時候
「尖」會越來越大
當它「尖」到一定程度時,預設值就會變成bever
我們可以設定突破這個限制,使用miterLimit
這樣改變預設值的長度就會被我們設定為limit*lineWidth/2
了解就好
ctx.miterLimit = 30;
裁剪
clip屬性表示當前路徑外的區域不再繪製
就相當於把當前這塊區域從畫布上裁剪下來
ctx.arc(250, 250, 100, 0, Math.PI*2, 0);ctx.clip();ctx.fillRect(0, 0, 500, 500);
這裡我把畫布截成了一個圓
這樣填滿矩形時就只能填到這個「圓形畫布」裡了
透明度
使用globalAlpha可以設定全域透明度
這個非常簡單就不多解釋了
ctx.globalAlpha = 0.4;ctx.fillRect(100, 100, 300, 300);
#像素合併
globalCompositeOperation用於設定
新圖形像素與舊圖形像素的合併方式
它有11個值
常見的有3個,source-over(預設)/destination-over/copy
souce-over是後繪製圖形覆蓋到先繪製圖形的上面
destination-over是先繪製圖形在後繪製圖形的上面
copy是只顯示後繪製圖形(先繪製圖形消失)
其他值理論上是這樣的(不同瀏覽器實現程度或方式不同)
ctx.fillStyle = 'blue'; ctx.fillRect(100, 100, 200, 200); ctx.globalCompositeOperation = 'source-over'; ctx.fillStyle = 'red'; ctx.arc(300, 300, 100, 0 ,Math.PI*2, 0); ctx.fill();
#下面我給我在最新版chrome測試的11個值供大家參考
source-over:
destination-over:
#copy:
source-out:
destination-out:
# 以上就是HTML5畫布Canvas文本填充、線段屬性、裁切、透明與像素合併方式的內容,更多相關內容請關注PHP中文網(www.php.cn)!

H5(HTML5)將通過新元素和API提升網頁內容和設計。 1)H5增強了語義化標記和多媒體支持。 2)它引入了Canvas和SVG,豐富了網頁設計。 3)H5的工作原理是通過新標籤和API擴展HTML功能。 4)基本用法包括使用創建圖形,高級用法涉及WebStorageAPI。 5)開發者需注意瀏覽器兼容性和性能優化。

H5帶來了多項新功能和能力,極大提升了網頁的互動性和開發效率。 1.語義化標籤如、增強了SEO。 2.多媒體支持通過和標籤簡化了音視頻播放。 3.Canvas繪圖提供了動態圖形繪製工具。 4.本地存儲通過localStorage和sessionStorage簡化了數據存儲。 5.地理位置API便於開發基於位置的服務。

HTML5帶來了五個關鍵改進:1.語義化標籤提升了代碼清晰度和SEO效果;2.多媒體支持簡化了視頻和音頻嵌入;3.表單增強簡化了驗證;4.離線與本地存儲提高了用戶體驗;5.畫布與圖形功能增強了網頁的可視化效果。

HTML5的核心特性包括語義化標籤、多媒體支持、離線存儲與本地存儲、表單增強。 1.語義化標籤如、等,提升代碼可讀性和SEO效果。 2.和標籤簡化多媒體嵌入。 3.離線存儲和本地存儲如ApplicationCache和LocalStorage,支持無網絡運行和數據存儲。 4.表單增強引入新輸入類型和驗證屬性,簡化處理和驗證。

H5提供了多種新特性和功能,極大地增強了前端開發的能力。 1.多媒體支持:通過和元素嵌入媒體,無需插件。 2.畫布(Canvas):使用元素動態渲染2D圖形和動畫。 3.本地存儲:通過localStorage和sessionStorage實現數據持久化存儲,提升用戶體驗。

H5和HTML5是不同的概念:HTML5是HTML的一個版本,包含新元素和API;H5是基於HTML5的移動應用開發框架。 HTML5通過瀏覽器解析和渲染代碼,H5應用則需要容器運行並通過JavaScript與原生代碼交互。

HTML5的關鍵元素包括、、、、、等,用於構建現代網頁。 1.定義頭部內容,2.用於導航鏈接,3.表示獨立文章內容,4.組織頁面內容,5.展示側邊欄內容,6.定義頁腳,這些元素增強了網頁的結構和功能性。

HTML5和H5沒有區別,H5是HTML5的簡稱。 1.HTML5是HTML的第五個版本,增強了網頁的多媒體和交互功能。 2.H5常用於指代基於HTML5的移動網頁或應用,適用於各種移動設備。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版
中文版,非常好用

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)