获取 DOM 元素的图像数据

2024-02-09

是否可以(通过标准 JS 或某些浏览器扩展)获取 DOM 元素的图像数据?

我正在考虑这样的用法:

  • 创建一个离屏 DOM 元素
  • 动态地用一些 CSS 样式的内容填充它
  • 获取其图像数据
  • use the image data somehow:
    • 作为背景(装饰性重复文本)
    • 作为项目符号图像(unicode 项目符号)
    • 作为 WebGL 纹理(神奇!)
    • ...

这可以做到吗?曾经有过这样的提案吗?


我能想到的唯一方法是将元素渲染到 HTML5 画布对象。这至少很难说。我通过快速谷歌搜索找到了这样一个渲染引擎,可以在以下位置找到:http://www.isogenicengine.com/2011/08/19/rendering-html-css-to-canvas/ http://www.isogenicengine.com/2011/08/19/rendering-html-css-to-canvas/

其他明显存在的包括:

  • http://html2canvas.hertzen.com/ http://html2canvas.hertzen.com/
  • http://ajaxian.com/archives/crazy-times-rendering-html-in-canvas http://ajaxian.com/archives/crazy-times-rendering-html-in-canvas

绘制到画布后,您可以检索数据 url,该数据可用于设置src图像和 css 的属性,以及最有可能使用以下方法的 WebGL 纹理。

var canvas = document.getElementById("mycanvas");
var img = canvas.toDataURL("image/png");

另外,如果您专门针对 Firefox,它们有一个专有功能,可以完全满足您的需求。https://developer.mozilla.org/en/Drawing_Graphics_with_Canvas#Rendering_Web_Content_Into_A_Canvas https://developer.mozilla.org/en/Drawing_Graphics_with_Canvas#Rendering_Web_Content_Into_A_Canvas

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

获取 DOM 元素的图像数据 的相关文章

  • 使用 Javascript 在前端创建基本 URL(开发、API 和生产)

    无论开发和部署如何 如何制作适用于 http https localhost 端口和实际域的基本 url 我想创建一个可以在所有场景或条件下工作的基本 url 无论 http https 协议 端口 本地主机和实际域如何 无论是在开发中还是
  • 使用 javascript 将文本附加到文本区域

    如何将文本列表附加到文本区域
  • 在全局范围内查找 JavaScript 函数

    有没有办法在当前活动的对象模型中搜索 JavaScript 属性 例如命名函数 Firebug 在 DOM 选项卡上显示的内容 我在 Chrome 开发人员工具中找不到直接等效项 加载页面 使用主要浏览器的通用开发人员工具 一个例子是 我搜
  • HTML5 画布在缩放和旋转后平移

    我正在尝试用画布做一些事情 首先 我让用户上传图像 如果图像比我想要的大 我需要将其缩小 那部分工作得很好 最近我们遇到了 iPhone 用户上传图像的问题 这些都存在方向问题 我已经弄清楚如何提取方向 我的问题是当我操纵画布中的图像时会发
  • 如何在流星运行时编译新模板?

    如何使用 Handlebars js 在流星中运行时编译新模板 var source
  • 如何调试使用 Testaulous (Karma) 运行的 Jasmine 规范?

    我有一个具有 Jasmine 规格的小项目 我使用 Testaulous 作为我的测试运行程序 我不明白如何调试应用程序代码或规范代码 当我尝试在 Chrome 开发工具中设置断点时 下次规范运行时不会命中它 因为它每次都会使用新的查询字符
  • chrome.extension.getBackgroundPage() 函数示例

    我正在开发一个需要在后台运行的小型 Chrome 扩展 但是 我知道当我使用弹出窗口时这是不可能的 经过一番阅读后 似乎最好的选择是创建popup js为了运行background js using chrome extension get
  • 容器中的等间距 div

    这是我的例子 http jsfiddle net rtCP3 62 http jsfiddle net rtCP3 62 我有 3 个 或更多 div 我想在一个容器中均匀分布 当将 Angular 与 ng repeat 一起使用时 样式
  • firebase 返回 onSnapshot 承诺

    我正在使用 firebase firestore 并且正在寻找一种返回快照承诺的方法 onlineUsers i want to return onSnapshot return this status database ref where
  • 您可以编写期望抛出异常的异步测试吗?

    我正在编写一个异步测试 期望异步函数像这样抛出 it expects to have failed async gt let getBadResults async gt await failingAsyncTest expect awai
  • 如何在 Yii 框架中使用 jQuery?

    如何在 yii 中使用 jquery javascript 如何在 yii 中使用我的脚本 为什么这与以其他方式使用 jQuery 有什么不同 如何在yii中使用jquery 如上所述 您可以注册新的脚本块 也可以注册新的外部脚本文件 您还
  • Javascript TypeError:无法读取未定义的属性“indexOf”

    在此代码中 我想从cart products array var cart products 17 1 19 1 18 1 var product 17 each cart products function key item if ite
  • 如何从客户端 JavaScript 调用特定的 Node.js 方法

    在我的应用程序中 我在 node js 文件中创建了许多方法 我如何从客户端 JavaScript 调用特定方法 下面是我的node js 文件 exports method1 function exports method2 functi
  • 如何使用nodejs获取目录中第一个扩展名为.txt的文件?

    我所有文件所在的目录是 usr home jordan 该目录下有很多文件 在目录本身中 但有一个文件以 txt 扩展名命名 使用nodejs和fs 我想将带有txt扩展名的第一个文件 或任何文件 放入 mytxtfilepath 中 我在
  • 不透明度如何影响元素顺序?

    我发现 CSS 有一个非常奇怪的行为opacity与浮动元素相结合 考虑以下 HTML div div Right button div div div Overlay div 最后div将覆盖前两个浮动的 删除不透明度会将最新的 div
  • 将 SVG 下载为 PNG 图像

    我想将 HTML 页面中的 SVG 元素下载为 PNG 格式 我尝试了此操作 但下载了一个空白的 PNG 图像 如何将我的 HTML SVG 下载为 PNG 我用过这个https bl ocks org biovisualize 81878
  • Selenium 查看鼠标/指针

    有什么方法可以在运行测试时真正看到硒鼠标吗 要么是 Windows 光标图像 要么是某种点或十字线或任何东西 我正在尝试使用拖放功能selenium and java in an HTML5Web 应用程序 并且能够看到光标以了解它实际在做
  • 需要在 javascript 中对 ajax 查询进行正确的修剪吗?

    在 JavaScript 中 我想对字符串末尾的所有特殊字符进行正确的修剪 我的一段代码仅对连字符 进行修剪 还需要所有特殊字符 var s DB var x s replace console log x 对此有什么帮助吗 这应该可以解决
  • iOS Javascript 引擎 parseFloat(1) 返回负数

    这段代码将使错误出现 function causeBug d var k var n parseFloat 1 var c Math abs d if n lt 0 k else k return k n function for var
  • 根据唯一测试提取站点地图 URL 和 cy.request() 每个 URL (Cypress) [重复]

    这个问题在这里已经有答案了 将 Cypress 与 TypeScript 结合使用 我的代码目标是提取 sitemap xml 中的所有 URL 和 cy request 每个 URL 的状态 200 这个版本的工作原理 describe

随机推荐

  • 我们可以在 PWA 应用程序中使用 SQLite 数据库吗

    我正在创建渐进式网络应用程序应用程序 我想将用户信息存储在本地设备中 那么 我该如何做到这一点 如何存储用户登录信息 以便他不必一次又一次登录 浏览器没有 SQLite 您可以使用更接近的方法索引数据库 https caniuse com
  • asm编译器中的二进制表达式

    我正在尝试使用逻辑和符号 执行 if 语句 这是我想要做的 asm字节码中的 y堆栈具有值0和1 我想得到结果 在我们的例子中 逻辑与 不会出现在 if 语句中 我已经尝试过 Opcodes IFEQ 和 Opcodes IFNE 指令 但
  • Chain animator设置 android 动画

    对于android新手 我想做一些流畅的动画 我的设备上有一个包含效果的文件 每个效果都是一个动画 该文件告诉我何时播放效果以及效果持续时间 问题是我无法链接 animatorSet dynmacily AnimatorSet mainAn
  • 限制使用 git log --decorate 显示的引用

    我目前使用的主存储库有 3 个标准遥控器 本地备份 我的开发合作伙伴的工作站和托管存储库 我们有 3 或 4 个分支大部分时间都处于活动状态 其中一个是 master 我全天定期监控分支机构 使用 git log graph oneline
  • jquery 摇动效果和 margin-auto

    有一点烦恼这个 震动效果示例 http jsfiddle net PHPsycho mwVkm 1 在 Firefox 中如果我省略该行 this css margin left this position left 然后该框会向左移动而不
  • ` throw 'foo'` 、 ` throw Error('foo')` 、 `throw new Error('foo')` 之间有什么区别?

    我见过 3 种在 JavaScript 中引发错误的不同方式 throw message throw Error message throw new Error message 它们之间有什么区别 注意 我知道类似的问题 1 https s
  • 读取字节数限制

    Does fread一次可以读取的字节数有限制吗 或者我可以读取我想要添加到指针中的任何尺寸 例如 我可以使用fread读取一次50MB的文件并将其装入char指针吗 理论上 是的 它可以读取任意数量的字节 最多可达size t 这是一个u
  • 如何使用 C++ 在 OS X 中打开“打开文件”对话框?

    我正在开发一个使用 OpenGL 和 C 的应用程序 该应用程序解析文件中的一些结构化输入并以图形方式显示它 我想在应用程序加载时启动一个 打开文件 对话框 以允许用户选择他们想要显示的文件 我无法在网络上找到我需要的东西 有没有办法在 C
  • 无法在 C# 中访问 Amazon SQS 消息属性

    我有一个进程创建 SQS 消息并将它们放置在 SQS 队列中 另一个进程读取这些消息并根据消息正文的内容和属性执行某些逻辑 我可以在 SQS 队列上成功创建一条带有正文和属性的消息 但在读回消息属性时遇到问题 我确信我的消息创建过程是正确的
  • scrapy中403错误的解决方法

    我是 scrapy 的新手 我制作了 scrapy 项目来废弃数据 我正在尝试从网站上抓取数据 但收到以下错误日志 2016 08 29 14 07 57 scrapy INFO Enabled item pipelines 2016 08
  • 连接到上游时 nginx 错误:(13:权限被拒绝)

    我正在使用 ubuntu 14 04 LTS 的 google 计算引擎虚拟机上运行带有 puma capistrano 和 nginx 的 Rails 应用程序 我的 nginx 在外部 IP 上运行 当我访问它时 我在日志中收到两个 n
  • 在 Erlang 中如何将字符串转换为二进制值?

    在 Erlang 中如何转换string to a binary value String Hello should be Binary lt lt Hello gt gt 在 Erlang 中 字符串表示为整数列表 因此 您可以使用lis
  • 移动(android 和 ios)浏览器忽略隐藏在 body、html 和容器上的溢出

    我的网站有一些覆盖层 灯箱 我需要防止页面在它们打开时在它们下面滚动 所以我使用了一些 jQuery 来添加overflow hidden to body html page 这在桌面浏览器上运行良好 但移动浏览器似乎不遵循规则 我的页面结
  • 尝试在 Android 上使用 PhoneGap 插件时 window.plugins 未定义

    我无法在 android 中加载插件 我已将插件添加到plugins xml 列表中 并在我的项目中添加了java 代码 但当我打电话时window plugins我得到未定义的对象 为什么会发生这种情况 顺便说一句 我正在尝试使用共享插件
  • try/catch/finally ,当我在catch中返回时如何阻止finally?

    我有这段代码 我想阻止最终执行 try throw new Exception Try Error catch Exception exp Console WriteLine exp Message Console ReadLine if
  • 如何使用 RabbitMQ 主机列表连接参数

    我正在尝试使用IList
  • 在netbeans中停止执行程序的快捷方式

    I am using netbeans to code java and i was wondering if there is an option to have a program stopped by pressing a short
  • JavaScript 是否有未定义的行为?

    JavaScript 是否具有未定义的行为 类似于 C 或者它是否完全由规范明确定义并且是确定性的 请注意 我放弃了实现错误和规范差异 我也在丢弃类似的东西Math random and Date now 是否有一段 JavaScript
  • 在 Xcode 5 中将 iPhone NIB 转换为 iPad NIB

    我正在开发一个通用应用程序 嗯 有这个 将 iPhone xib 转换为 iPad xib https stackoverflow com questions 2488280 converting iphone xib to ipad xi
  • 获取 DOM 元素的图像数据

    是否可以 通过标准 JS 或某些浏览器扩展 获取 DOM 元素的图像数据 我正在考虑这样的用法 创建一个离屏 DOM 元素 动态地用一些 CSS 样式的内容填充它 获取其图像数据 use the image data somehow 作为背