将不透明度的图像绘制到画布上

Bec*_*cky 9 javascript jquery html5 canvas css3

我有一张图片.我用drawImage()它画在画布上.

我的问题是:如果图像的不透明度为0.4,我如何在画布上以相同的不透明度绘制它.

我在这里创建了一个示例小提琴.如何在图像#screammycanvas保持0.4不透明度.

HTML:

<p>Image with 0.4 opacity to be used:</p>
<img id="scream" width="200" height="200" src="http://img42.com/NMMU8+">

<p>Canvas:</p>
<canvas id="myCanvas" width="220" height="220" style="border:1px solid #d3d3d3;">
</canvas>
Run Code Online (Sandbox Code Playgroud)

CSS:

#scream{
    opacity: 0.4;
}
#myCanvas{
    background-color: #f60;
}
Run Code Online (Sandbox Code Playgroud)

JS:

window.onload = function() {
    var c = document.getElementById("myCanvas");
    var ctx = c.getContext("2d");
    var img = document.getElementById("scream");
    ctx.drawImage(img, 10, 10);
}
Run Code Online (Sandbox Code Playgroud)

Pun*_*uni 23

使用globalAlpha但请确保在绘制图像之前进行设置:

ctx.globalAlpha = 0.4;
Run Code Online (Sandbox Code Playgroud)

  • @NarendraSolanki如果我正确理解你的评论,你可以分别在前后使用`save()`和`restore()`来避免你之后绘制的所有内容都使用相同的alpha值. (3认同)