【问题标题】:How do I draw transparent PNGs onto a canvas in Firefox?如何在 Firefox 中将透明 PNG 绘制到画布上?
【发布时间】:2012-03-24 11:21:41
【问题描述】:

我一直在设置一个小框架,用于将可定位和动画图形渲染到 <canvas> 元素上 - 主要是为了帮助我理解它。

我从互联网上下载了一个随机精灵表进行测试 - 它有一个透明的背景,在我的 iPhone 和 Safari 上的 Chrome 中似乎渲染得很好。

这是演示:http://martywallace.com/simplecanvas/

然而,在 Firefox 中,精灵的透明部分加载为白色,最终看起来像这样:

是否有特定于 Firefox 的方式来启用透明性,还是不支持?

【问题讨论】:

  • 这在stackoverflow.com/questions/2916938/…之前已经问过了
  • @MartinBarker 这个问题不同;它询问如何动态地将透明度应用于绘制到画布上的整个图像。我只希望默认情况下作为图像一部分的透明度不呈现为白色 - 这是特定于浏览器的问题。
  • 如果你在空的画布上画一个透明的png,会有人看到吗?

标签: javascript canvas rendering transparency


【解决方案1】:

这是发生了什么[stupidity disclaimer]

  1. 我下载了原本透明的图片,并在 Chrome、Safari 和 iPhone 中进行了测试。
  2. 图片为 1MB,因此我将其缩小为 PNG8(导出时忘记允许透明)。
  3. 图片的缓存版本在我测试过的浏览器中使用过(我没有注意到)。
  4. 当我转移到 Firefox 时,正在使用新的非透明(因为之前没有缓存)。

结果:Firefox 可以很好地呈现透明 PNG - 很高兴这个问题被关闭为“过于本地化”。

【讨论】:

  • @EricYin 上图是画布本身在不同位置多次渲染 1MB 图像的一部分的屏幕截图 - 实际的精灵表本身接近 1MB。
猜你喜欢
  • 2020-02-09
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
相关资源
最近更新 更多