首頁 web前端 H5教程 詳解HTML5 Canvas繪製時指定顏色與透明度的方法_html5教學技巧

詳解HTML5 Canvas繪製時指定顏色與透明度的方法_html5教學技巧

May 16, 2016 pm 03:45 PM
canvas html5 透明度 顏色

指定顏色

黑色是Canvas繪製的預設色彩,要換一種顏色的話,就得在實際畫之前指定顏色。

JavaScript Code複製內容到剪貼簿
  1. ctx.strokeStyle = color   

指定繪製線的顏色:

JavaScript Code複製內容到剪貼簿
  1. ctx.fillStyle = color   

指定填滿的顏色:
來看看實際的例子:

JavaScript

JavaScript Code複製內容到剪貼簿
  1. onload = function() {   
  2.   draw();   
  3. };   
  4. function draw() {   
  5.   var canvas = document.getElementById('c1'
  6.   
  7. if ( ! canvas || ! canvas.getContext ) {  ; }      var
  8.  ctx = canvas.getContext(
  9. '2d'   ctx.beginPath();      ctx.fillStyle = 
  10. 'rgb(192, 80, 77)'
  11.   ctx.arc(70, 45, 35, 0, Math.PI*2, false);   );   
  12.   ctx.fill();      ctx.beginPath();   
  13.   ctx.fillStyle = 'rgb(155, 187, 89)'
  14.   ctx.arc(45, 95, 35, 0, Math.PI*2, 
  15. false);   );      ctx.fill();   
  16.   ctx.beginPath();      ctx.fillStyle = 
  17. 'rgb(128, 100, 162)'; >
  18.   ctx.arc(95, 95, 35, 0, Math.PI*2, false
  19. );   );      ctx.fill();   
  20. }  
  21. 效果如下圖:
  22. 指定透明度
  23. 和普通的CSS中一樣,我們指定顏色的時候還可以帶一個alpha值(不過用的不多,IE9之前都不支援)。看代碼:
  24. JavaScript

JavaScript Code
2016325112217008.png (142×142)複製內容到剪貼簿

  1. onload = 函數() {   
  2.   較差();   
  3. };   
  4. 函數 draw() {   
  5.   var canvas = document.getElementById('c1');   
  6.   if ( ! canvas || ! canvas.getContext ) {  ; }      
  7. var ctx = canvas.getContext('2d');      ctx.beginPath();   
  8.   ctx.fillStyle = 
  9. 'rgba(192, 80, 77, 0.7)'//      ctx.arc(70, 45, 35, 0, Math.PI*2, 
  10. false);      ctx.fill();   
  11.   ctx.beginPath();   
  12.   ctx.fillStyle = 
  13. 'rgba(155, 187, 89, 0.7)'//      ctx.arc(45, 95, 35, 0, Math.PI*2, 
  14. false);      ctx.fill();   
  15.   ctx.beginPath();   
  16.   ctx.fillStyle = 
  17. 'rgba(128, 100, 162, 0.7)'//      ctx.arc(95, 95, 35, 0, Math.PI*2, 
  18. false);      ctx.fill();   
  19. }   
結果就是下面這樣:


和上面的程式碼基本上沒變化,就是把rgb(r, g, b)變成了rgba(r, g, b, a)而已,a的值也是0~1,0表示完全透明,1不透明(所以alpha的值其實是「不透明度」)。 2016325112248089.png (142×142)

全域透明globalAlpha

這也是很簡單的屬性,預設值為1.0,代表完全不透明,取值範圍是0.0(完全透明)~1.0。陰影設定是一樣的,如果不想針對全域設定不透明度,就得在接下來的情況前重置globalAlpha。
總結一下:基於狀態的屬性有哪些? ——globalAlpha
——全域複合操作

——筆劃樣式

——文字視覺,文字軸線

——lineCap,lineJoin,lineWidth,miterLimit

——fillStyle

——字體

——shadowBlur,shadowColor,shadowOffsetX,shadowOffsetY

我們透過一個程式碼,來體驗一下globalAlpha的神奇之處~

JavaScript 程式碼


將內容複製到剪切板

  1.   
  2. "zh">   
  3.   
  4.     "UTF-8">   
  5.     全局透明   
  6.        
  7.   
  8.   
  9. "canvas-warp">   
  10.     "canvas">   
  11.         你的浏览器居然不支持Canvas?!赶快换一个吧!!   
  12.        
  
  •   
  •   
  •     window.onload = 函數(){   
  •         var canvas = document.getElementById("   
  •         canvas.width = 800;   
  •         canvas.height = 600;   
  •         
  • var context = canvas.getContext("2d"            context.fillStyle = 
  • "#FFF";            context.fillRect(0,0,800,600);   
  •   
  •         context.globalAlpha = 0.5;   
  •   
  •         
  • for(var 🎜>var 🎜>var
  •  i=0; >             var R = Math.floor(Math.random() * 25);   
  •             var G = Math.floor(Math.random() *;   
  •             var B = Math.floor(Math.random() *;   
  •   
  •             con.fillStyle = "rgb("      " ,"   B   ")";      
  •             context.beginPath();   
  •             con.arc(Math.random() * canvas.width, Math.random() * canvas.height,m.width, Math.random()    
  •             context.fill();   
  •         }   
  •     };   
  • 腳本>   
  • 本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

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

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    熱門話題

    Java教學
    1664
    14
    CakePHP 教程
    1423
    52
    Laravel 教程
    1317
    25
    PHP教程
    1268
    29
    C# 教程
    1246
    24
    HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

    HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

    HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

    這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

    HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

    HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

    HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

    HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

    HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

    HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

    HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

    HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

    HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

    HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

    在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

    HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

    See all articles