【问题标题】:How can I capture an HTML document fragment as an alpha-transparent PNG?如何将 HTML 文档片段捕获为 alpha 透明的 PNG?
【发布时间】:2010-09-11 14:37:02
【问题描述】:

我正在寻找一种将网页的一部分捕获为透明背景 PNG 的方法。这意味着transparent 背景属性将是真正透明的。根级元素不会显示白色,而是会创建一个具有透明背景的 png。

但是,我怀疑我正在寻找的行为是不可能的。我对这个问题的下一个猜测是创建一个画布元素,并以某种方式在画布上绘制一个 html 片段。从那里开始,捕获 PNG 是微不足道的。

总结我的两个问题:

  1. 是否有一种相对简单的方法可以将 HTML 文档片段捕获为 PNG,以便根节点 background: transparent 属性真正实现透明度?
  2. 如果不能,我可以将 HTML 文档片段绘制到画布元素吗?如果可以,我会得到想要的行为吗?

【问题讨论】:

    标签: javascript html canvas transparency


    【解决方案1】:

    我不确定您打算在#1 中准确捕捉到什么。你想捕捉用户所看到的图像吗?我不认为这是可能的。

    对于 2,许多人都要求在 Canvas 上绘制 HTML 元素的能力,但目前没有 drawElement() 函数或类似的函数。 :(

    您可以尝试用大量绘图来模拟 Canvas 中的元素,但您当然无法知道用户拥有什么样的(比如说)主题。因此,如果用户拥有Hot-dog stand windows theme,则无法相应地更改您的绘图。

    【讨论】:

    • 我想捕获一个 PNG,当它被替换为替换文档片段时,它看起来与用户相同。这将意味着背景“闪耀”,因为它是。我对用户的 UI 设置不感兴趣。特别是如果它们看起来像 that monstrosity
    【解决方案2】:

    Mozilla 在其 FF 4 测试版中提供了一项新的实验性功能,支持 rendering an actual HTML element as a background of another element

    【讨论】:

      最近更新 更多