溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

HTML5 Canvas繪制時(shí)如何指定顏色與透明度

發(fā)布時(shí)間:2021-02-26 09:59:47 來源:億速云 閱讀:378 作者:清風(fēng) 欄目:web開發(fā)

這篇“HTML5 Canvas繪制時(shí)如何指定顏色與透明度”除了程序員外大部分人都不太理解,今天小編為了讓大家更加理解“HTML5 Canvas繪制時(shí)如何指定顏色與透明度”,給大家總結(jié)了以下內(nèi)容,具有一定借鑒價(jià)值,內(nèi)容詳細(xì)步驟清晰,細(xì)節(jié)處理妥當(dāng),希望大家通過這篇文章有所收獲,下面讓我們一起來看看具體內(nèi)容吧。

html是什么

html的全稱為超文本標(biāo)記語言,它是一種標(biāo)記語言,包含了一系列標(biāo)簽.通過這些標(biāo)簽可以將網(wǎng)絡(luò)上的文檔格式統(tǒng)一,使分散的Internet資源連接為一個(gè)邏輯整體,html文本是由html命令組成的描述性文本,html命令可以說明文字,圖形、動(dòng)畫、聲音、表格、鏈接等,主要和css+js配合使用并構(gòu)建優(yōu)雅的前端網(wǎng)頁。

指定顏色

黑色是Canvas繪制的默認(rèn)色彩,要想換一種顏色的話,就得在實(shí)際畫之前指定顏色。

JavaScript Code復(fù)制內(nèi)容到剪貼板

ctx.strokeStyle = color

指定繪制線的顏色:

JavaScript Code復(fù)制內(nèi)容到剪貼板

ctx.fillStyle = color

指定填充的顏色:

來看看實(shí)際的例子:

JavaScript

JavaScript Code復(fù)制內(nèi)容到剪貼板

onload = function() {   
  draw();   
};   
function draw() {   
  var canvas = document.getElementById('c1');   
  if ( ! canvas || ! canvas.getContext ) { return false; }   
  var ctx = canvas.getContext('2d');   
  ctx.beginPath();   
  ctx.fillStyle = 'rgb(192, 80, 77)'; // 紅 
  ctx.arc(70, 45, 35, 0, Math.PI*2, false);   
  ctx.fill();   
  ctx.beginPath();   
  ctx.fillStyle = 'rgb(155, 187, 89)'; // 綠 
  ctx.arc(45, 95, 35, 0, Math.PI*2, false);   
  ctx.fill();   
  ctx.beginPath();   
  ctx.fillStyle = 'rgb(128, 100, 162)'; // 紫 
  ctx.arc(95, 95, 35, 0, Math.PI*2, false);   
  ctx.fill();   
}

效果如下圖:
HTML5 Canvas繪制時(shí)如何指定顏色與透明度

指定透明度

和普通的CSS中一樣,我們指定顏色的時(shí)候還可以帶一個(gè)alpha值(不過用的不多,IE9之前都不支持)。看代碼:

JavaScript

JavaScript Code復(fù)制內(nèi)容到剪貼板

onload = function() {   
  draw();   
};   
function draw() {   
  var canvas = document.getElementById('c1');   
  if ( ! canvas || ! canvas.getContext ) { return false; }   
  var ctx = canvas.getContext('2d');   
  ctx.beginPath();   
  ctx.fillStyle = 'rgba(192, 80, 77, 0.7)'; // 
  ctx.arc(70, 45, 35, 0, Math.PI*2, false);   
  ctx.fill();   
  ctx.beginPath();   
  ctx.fillStyle = 'rgba(155, 187, 89, 0.7)'; // 
  ctx.arc(45, 95, 35, 0, Math.PI*2, false);   
  ctx.fill();   
  ctx.beginPath();   
  ctx.fillStyle = 'rgba(128, 100, 162, 0.7)'; // 
  ctx.arc(95, 95, 35, 0, Math.PI*2, false);   
  ctx.fill();   
}

結(jié)果就是下面這樣:
HTML5 Canvas繪制時(shí)如何指定顏色與透明度

和上面的代碼基本沒變化,就是把rgb(r, g, b)變成了rgba(r, g, b, a)而已,a的值也是0~1,0表示完全透明,1則是完全不透明(所以alpha的值實(shí)際上是“不透明度”)。


全局透明globalAlpha
這個(gè)也是很簡單的一個(gè)屬性,默認(rèn)值為1.0,代表完全不透明,取值范圍是0.0(完全透明)~1.0。這個(gè)屬性與陰影設(shè)置是一樣的,如果不想針對(duì)全局設(shè)置不透明度,就得在下次繪制前重置globalAlpha。

總結(jié)一下:基于狀態(tài)的屬性有哪些?

——globalAlpha

——globalCompositeOpeartion

——strokeStyle

——textAlign,textBaseline

——lineCap,lineJoin,lineWidth,miterLimit

——fillStyle

——font

——shadowBlur,shadowColor,shadowOffsetX,shadowOffsetY
我們通過一個(gè)代碼,來體驗(yàn)一下globalAlpha的神奇之處~

JavaScript Code復(fù)制內(nèi)容到剪貼板

<!DOCTYPE html>   
<html lang="zh">   
<head>   
    <meta charset="UTF-8">   
    <title>全局透明</title>   
    <style>   
        body { background: url("./images/bg3.jpg") repeat; } 
        #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; } 
    </style>   
</head>   
<body>   
<p id="canvas-warp">   
    <canvas id="canvas">   
        你的瀏覽器居然不支持Canvas?!趕快換一個(gè)吧??!   
    </canvas>   
</p>   
<script>   
    window.onload = function(){   
        var canvas = document.getElementById("canvas");   
        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 i=0; i<=50; i++){   
            var R = Math.floor(Math.random() * 255);   
            var G = Math.floor(Math.random() * 255);   
            var B = Math.floor(Math.random() * 255);   
            context.fillStyle = "rgb(" + R + "," + G + "," + B + ")";   
            context.beginPath();   
            context.arc(Math.random() * canvas.width, Math.random() * canvas.height, Math.random() * 100, 0, Math.PI * 2);   
            context.fill();   
        }   
    };   
</script>   
</body>   
</html>

運(yùn)行結(jié)果:
HTML5 Canvas繪制時(shí)如何指定顏色與透明度

感謝你的閱讀,希望你對(duì)“HTML5 Canvas繪制時(shí)如何指定顏色與透明度”這一關(guān)鍵問題有了一定的理解,具體使用情況還需要大家自己動(dòng)手實(shí)驗(yàn)使用過才能領(lǐng)會(huì),快去試試吧,如果想閱讀更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI