dom-to-image

用 JavaScript 写的浏览器端库,能把任意 DOM 节点渲染成 SVG、PNG 或 JPEG,支持 filter 逐节点过滤和 toBlob 触发下载,适合前端开发者给分享卡片或图表做导出。

工具不用登录网页英文开源国内不可直接访问

dom-to-image 是一个用 JavaScript 写的浏览器端库,作用是把页面上任意一个 DOM 节点渲染成图片:矢量格式出 SVG,位图格式出 PNG 或 JPEG。它基于 Paul Bakaus 的 domvas 重写,修了一些旧问题,并补上了 Web 字体和图片的支持。常见用途是让用户把某块界面、图表或卡片直接存成图片下载,而不必依赖服务端截图。

主要功能

顶层函数都接收 DOM 节点和渲染选项,返回 Promise,结果是对应的 data URL。toPng 给出 base64 编码的 PNG,可以直接塞进 img 显示;toBlob 返回 Blob,配合 FileSaver 之类的库就能触发下载;toJpeg 支持传 quality 控制压缩质量;toSvg 输出 SVG;toPixelData 则返回 Uint8Array,每四个元素是一个像素的 RGBA 值,适合需要自己处理像素的场合。

渲染选项里可以传 filter 函数,逐节点判断是否纳入输出,比如把页面里所有 i 标签排除掉。安装方式有 NPM 和 Bower 两种,也可以直接把 src/dom-to-image.js 或 dist/dom-to-image.min.js 引入页面,全局会多出一个 domtoimage 变量。

适合谁

面向写前端的人:需要在浏览器里把某块 DOM 导出成图片、做分享卡片、保存图表或生成预览图时,可以拿它当底层工具。它不提供界面,也没有独立的网页版或 App,用之前得自己写调用代码。

使用前要知道

仓库的 Issues 有 282 个、Pull requests 有 55 个,说明维护节奏不算快,遇到冷门样式或跨域图片时可能要自己排查。impl 下的函数不是公开 API,只为单元测试暴露,不要依赖。仓库页面没有给出最近的版本号和更新日期。

常见问题

用 dom-to-image 要登录吗?
不用登录就能用。
dom-to-image 国内能访问吗?
本站 11 月 8 日 检测,dom-to-image 在国内不能直接访问,可以看看国内可直接用的替代品:html2canvas。
dom-to-image 有哪些平台 / App?
支持 网页。
dom-to-image 的替代品有哪些?
本站整理了 3 个替代品,例如 html2canvas、modern-screenshot、Satori。

替代品 全部 3 个 →

收录于 11 月 8 日 · 更新于 11 月 8 日 · 本站 11 月 8 日 检测 · 浏览 0 · 报告问题

替代品 3 个打开官网github.com