【问题标题】:draw image with opacity on to a canvas [duplicate]在画布上绘制不透明的图像[重复]
【发布时间】:2015-10-20 21:59:20
【问题描述】:

我有一张图片。我使用drawImage() 将其绘制到画布上。

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

我创建了一个示例Fiddle here。我怎样才能将#scream 绘制到mycanvas 上,并在图像上保持 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>

css:

#scream{
    opacity: 0.4;
}
#myCanvas{
    background-color: #f60;
}

js:

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

【问题讨论】:

  • 您可以使用ctx.globalAlpha 这样做,请参阅可能的重复问题。

标签: javascript jquery html css canvas


【解决方案1】:

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

ctx.globalAlpha = 0.4;

【讨论】:

  • 我怎样才能只添加一个ctx?
  • @NarendraSolanki 如果我正确理解您的评论,您可以在前后分别使用save()restore(),以避免让您之后绘制的所有内容都使用此处设置的相同alpha 值。跨度>
  • 亲爱的午夜妈妈,我从来不知道你能做到这一点!它为容器和重叠画布上的样式隔离容器节省了很多麻烦......下次我真的应该阅读文档XD
猜你喜欢
  • 2013-11-25
  • 2019-04-16
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 2012-04-18
  • 2016-02-09
  • 1970-01-01
相关资源
最近更新 更多