createRadialGradient 和透明度

2024-05-09

我正在玩createRadialGradient()在 HTML5 画布上。它就像一个魅力,除非我试图实现(半)透明。

我制作了这个 jsFiddle 是为了让事情变得更清晰:http://jsfiddle.net/rfLf6/1/ http://jsfiddle.net/rfLf6/1/.

function circle(x, y, r, c) {
    ctx.beginPath();
    var rad = ctx.createRadialGradient(x, y, 1, x, y, r);
    rad.addColorStop(0, c);
    rad.addColorStop(1, 'transparent');
    ctx.fillStyle = rad;
    ctx.arc(x, y, r, 0, Math.PI*2, false);
    ctx.fill();
}

ctx.fillRect(0, 0, 256, 256);

circle(128, 128, 200, 'red');
circle(64, 64, 30,    'green');

正在发生的事情是画一个圆圈(径向渐变)(x, y)有半径r色标是r and 'transparent'。然而,绿色圆圈正在从绿色变为black,同时它应该变为透明,即背景圈的适当红色。

如何在 HTML5 画布上实现透明径向渐变?


好吧,既然你问了:

我不太了解使用<canvas>使用 JavaScript,但我确实了解 CSS3 渐变,处理透明度的常用方法是使用rgba颜色。

要使渐变“淡出”为透明,您可以添加相同颜色的透明版本。

这就是我在这里所做的:http://jsfiddle.net/thirtydot/BD3xA/ http://jsfiddle.net/thirtydot/BD3xA/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

createRadialGradient 和透明度 的相关文章

  • 在画布上的精确位置创建输入文本字段?

    Canvas 可以绘制文本 但无法创建输入文本字段 这意味着必须在 html 中执行此操作 但是如何才能确保将该文本字段准确定位在您想要的位置呢 我希望能够在运行时以编程方式执行此操作 创建以下 HTML 结构以将输入框放置在画布上 div
  • 如何使用 html5 canvas 将图像覆盖在杯子上

    我是 HTML5 画布新手 我有一个杯子的图像 我将其渲染在画布上 这是杯子的图片 现在我正在尝试渲染另一张图像 我的照片为正常矩形尺寸 上传该图像的设计区域 我怎样才能渲染这个看起来像杯子上的图像的图像 我想得到这样的最终图像 我使用ca
  • 使用 CSS3 在文本上创建双色锐渐变

    我需要为我正在构建的网站上的标题和导航文本创建 锐利 渐变 我正在尝试使其尽可能纯 HTML5 CSS3 并且愿意坚持使用 font face而不是转移到Cufon 我所说的锐渐变是指两种颜色 两者之间没有混合 例子 http dl dro
  • 如何使用 Python 和 Pillow 将此索引 PNG 转换为灰度并保持透明度?

    我正在尝试使用 Python Pillow 将图像转换为灰度 我在大多数图像中都没有遇到困难 但是 在使用不同图像进行测试时 我发现了 BeeWare 项目中的这个徽标 我知道它已使用某些图像编辑器进行了进一步编辑 并使用 ImageOpt
  • TensorFlow 中的梯度概念与梯度的数学定义有何关系?

    The TensorFlow 文档 https www tensorflow org api docs python tf gradients解释了 功能 tf gradients ys xs grad ys None name gradi
  • 保持文本在画布上垂直居中

    我遇到的问题是将用户输入的文本保持在画布元素内垂直居中 我已经构建了一个测试环境来尝试解决这个问题 我在这篇文章中提供了该环境以及小提琴 这是我的代码 HTML Enter Your Text br
  • 如何控制径向渐变中椭圆的高度

    我正在尝试使用径向渐变作为我的背景 下面是代码 div width 778px height 100px background radial gradient ellipse at top center green yellow 229px
  • 色带仅适用于 Android 4.0+

    在运行 Android 4 0 或 4 0 3 的模拟器上 我看到可怕的色带 而且似乎无法摆脱 在我测试过的所有其他 Android 版本上 渐变看起来都很平滑 我有一个配置为 RGBX 8888 的 SurfaceView 并且渲染的画布
  • 用渐变色绘制一个 D3 圆

    如何用渐变颜色画一个圆 比如说 从黄色到蓝色的渐变 通常 要创建黄色圆圈 我们可以使用以下代码 var cdata 50 40 var xscale 40 var xspace 50 var yscale 70 var svg d3 sel
  • 如何在fabricJS中通过鼠标选择被覆盖的对象?

    我正在尝试开发一种方法来选择分层在下面并 完全 被其他对象覆盖的对象 一种想法是选择顶部对象 然后通过doubleclick向下穿过层层 这就是我现在得到的 var canvas new fabric Canvas c fabric uti
  • 如何为多个画布图像填充颜色?

    这是我第一次使用 html5 canvas 我还不知道它是如何工作的 我的问题是 我必须修改画布中图像的颜色 如果只有一张图像 这很容易 但是 我会有不止一张 换句话说 重叠的图像 为了进一步理解我的问题 我创建了一个插图 只有 2 个图像
  • 使用 MapKit ios 绘制渐变折线

    我正在尝试使用叠加层 MKOverlay 跟踪 MKMapView 上的路线 但是 根据当前的速度 如果颜色发生变化 例如 如果用户从 65 英里每小时行驶到 30 英里每小时 则从绿色变为橙色 我希望在跟踪路线时执行类似 Nike 应用程
  • 我可以使用 vh 和 vw 指定画布尺寸吗?

    我的代码是 var canvas document getElementById canvas ctx canvas getContext 2d ctx canvas width 40vw ctx canvas height 40vh 但它
  • 从 url 加载图像并绘制到 HTML5 Canvas

    我在从 javascript 中的 url 加载图像时遇到问题 下面的代码可以工作 但我不想从 html 加载图像 我想使用纯 JavaScript 从 url 加载图像 var c document getElementById myCa
  • Three.js canvas.toDataURL 有时为空

    我正在尝试使用 html2canvas js 渲染 THREE js 场景 一些覆盖的 HTML 元素 有用大多数时候 但并非一直如此 在失败的情况下 将渲染 HTML 元素 背景 覆盖层等 但不会渲染其他元素 THREE js 场景表现得
  • 为什么 webkit 径向渐变在 Safari 中不起作用?

    这在 Chrome 中有效 但在 Safari 中无效 background webkit radial gradient center ellipse cover fdfdfd d3d3d3 我该如何修复 Safari 的问题 它甚至在
  • 在 JavaScript 函数中加载图像

    我有获取图像像素颜色的功能 function getImage imgsrc var img img src imgsrc var imageMap new Object img load function var canvas
  • 使用 ImageMagick/convert 创建半透明 PNG

    我有 PNG 文件 我想将整个图像转换为半透明 该图像将在 KML 文件中引用为 Google 地球 地图中使用的图标叠加层 使用 ImageMagick 向我建议了以下示例convert命令 但似乎都不起作用 第一个示例会导致错误 usr
  • html5 canvas 上的错误显示 lineWidth=1

    I have example https developer mozilla org samples canvas tutorial 4 5 canvas linewidth html https developer mozilla org
  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can

随机推荐