Maison > interface Web > Tutoriel H5 > le corps du texte

Comment spécifier la couleur et la transparence lors du dessin d'un canevas HTML5

不言
Libérer: 2018-06-05 14:02:38
original
2888 Les gens l'ont consulté

Cet article présente principalement la méthode de spécification de la couleur et de la transparence lors du dessin d'un canevas HTML5, y compris une introduction à l'attribut global transparent globalAlpha. Les amis dans le besoin peuvent se référer à

Spécifier la couleur<.>

Le noir est la couleur par défaut pour le dessin sur toile. Si vous souhaitez le changer en une couleur différente, vous devez spécifier la couleur avant de dessiner.

Code JavaScriptCopier le contenu dans le presse-papier

ctx.strokeStyle = color
Copier après la connexion
Spécifiez la couleur de la ligne tracée :

Code JavaScriptCopier le contenu dans le presse-papiers

ctx.fillStyle = color
Copier après la connexion
Spécifiez la couleur de remplissage :


Voyons un exemple pratique :

JavaScript

Code JavaScriptCopier le contenu dans le presse-papiers

onload = function() {   
  draw();   
};   
function draw() {   
  var canvas = document.getElementById(&#39;c1&#39;);   
  if ( ! canvas || ! canvas.getContext ) { return false; }   
  var ctx = canvas.getContext(&#39;2d&#39;);   
  ctx.beginPath();   
  ctx.fillStyle = &#39;rgb(192, 80, 77)&#39;; // 红 
  ctx.arc(70, 45, 35, 0, Math.PI*2, false);   
  ctx.fill();   
  ctx.beginPath();   
  ctx.fillStyle = &#39;rgb(155, 187, 89)&#39;; // 绿 
  ctx.arc(45, 95, 35, 0, Math.PI*2, false);   
  ctx.fill();   
  ctx.beginPath();   
  ctx.fillStyle = &#39;rgb(128, 100, 162)&#39;; // 紫 
  ctx.arc(95, 95, 35, 0, Math.PI*2, false);   
  ctx.fill();   
}
Copier après la connexion
L'effet est le suivant :


2016325112217008.png (142×142)

Spécifier la transparence

Tout comme dans le CSS ordinaire, nous pouvons également apporter une valeur alpha lors de la spécification de la couleur (mais elle n'est pas beaucoup utilisée et elle n'était pas supportée avant IE9). Regardez le code :

JavaScript

Code JavaScriptCopiez le contenu dans le presse-papier

onload = function() {   
  draw();   
};   
function draw() {   
  var canvas = document.getElementById(&#39;c1&#39;);   
  if ( ! canvas || ! canvas.getContext ) { return false; }   
  var ctx = canvas.getContext(&#39;2d&#39;);   
  ctx.beginPath();   
  ctx.fillStyle = &#39;rgba(192, 80, 77, 0.7)&#39;; // 
  ctx.arc(70, 45, 35, 0, Math.PI*2, false);   
  ctx.fill();   
  ctx.beginPath();   
  ctx.fillStyle = &#39;rgba(155, 187, 89, 0.7)&#39;; // 
  ctx.arc(45, 95, 35, 0, Math.PI*2, false);   
  ctx.fill();   
  ctx.beginPath();   
  ctx.fillStyle = &#39;rgba(128, 100, 162, 0.7)&#39;; // 
  ctx.arc(95, 95, 35, 0, Math.PI*2, false);   
  ctx.fill();   
}
Copier après la connexion
Le résultat est comme suit :


2016325112248089.png (142×142)

est fondamentalement le même que le code ci-dessus, sauf que rgb(r, g, b) est remplacé par rgba(r, g, b, a), et le la valeur de a est également 0 ~ 1,0 signifie complètement transparent, et 1 signifie complètement opaque (donc la valeur alpha est en fait "opacité").


Global transparent globalAlpha
C'est aussi un attribut très simple. La valeur par défaut est 1,0, ce qui signifie complètement opaque. La plage de valeurs est 0,0 (complètement transparente) ~. 1.0. Cette propriété est la même que le paramètre d'ombre. Si vous ne souhaitez pas définir l'opacité globalement, vous devez réinitialiser globalAlpha avant de dessiner la prochaine fois.

Pour résumer : quels sont les attributs basés sur l’état ?

——globalAlpha

——globalCompositeOpeartion

——StrokeStyle

——textAlign, textBaseline

——lineCap, lineJoin, lineWidth, miterLimit

——fillStyle

——font

——shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY

Expérimentons la magie de globalAlpha à travers un code Où~

Code JavaScriptCopier le contenu dans le presse-papiers

<!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?!赶快换一个吧!!   
    </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>
Copier après la connexion
Exécuter le résultat :


2016325112320763.jpg (850×500)

Est-ce c'est pas très cool ? Je me sens enfin artiste.


Recommandations associées :

Utilisez HTML5 Canvas pour remplir les images avec de la couleur et de la texture

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!