Skip to content

wangxueliang/html_screenshort_demo

Repository files navigation

DOM截图库对比工具

这是一个用于对比 html2canvas、dom-to-image 和 @zumer/snapdom 三个主流DOM截图库的性能和效果的Vue 3应用。

功能特性

  • 性能对比: 实时测量每个库的截图耗时
  • 文件大小对比: 显示生成图片的文件大小
  • 视觉效果对比: 并排展示三个库的截图结果
  • 配置选项: 支持背景、缩放比例、输出格式等参数调整
  • 详细报告: 生成完整的性能分析报告

对比结果

下面是三个库的对比结果截图:

DOM截图库对比结果

从上图可以看出:

  • html2canvas: 耗时198ms,文件大小189.07KB
  • dom-to-image: 耗时299ms,文件大小74.97KB
  • @zumer/snapdom: 耗时97ms,文件大小85.59KB

@zumer/snapdom在性能方面表现最佳,而dom-to-image在文件大小方面占优。

支持的库

html2canvas

  • 版本: 1.4.1
  • 特点: 基于Canvas的DOM渲染,功能全面
  • 优势: 支持复杂CSS特效,兼容性好
  • 劣势: 文件体积较大,性能相对较慢

dom-to-image

  • 版本: 2.6.0
  • 特点: 基于SVG foreignObject的轻量级方案
  • 优势: 体积小,速度快
  • 劣势: 对某些CSS特效支持有限

@zumer/snapdom

  • 版本: 1.9.6
  • 特点: 现代化的DOM截图解决方案
  • 优势: 配置灵活,跨浏览器兼容性好
  • 特性: 支持多种输出格式,包括WebP

安装与运行

1. 克隆项目

git clone <repository-url>
cd dom2img-vue

2. 安装依赖

npm install

3. 启动服务

npm run dev

4. 访问页面

打开浏览器访问 http://localhost:5173

使用方法

  1. 选择截图参数

    • 勾选"包含背景"来控制是否渲染背景色
    • 调整"缩放比例"改变输出图片的分辨率
    • 选择"输出格式"(PNG/JPEG/WebP)
  2. 开始测试

    • 点击"同时对比三个库"进行完整对比
    • 或单独测试某个库
  3. 查看结果

    • 实时查看每个库的截图时间和文件大小
    • 对比截图的视觉效果
    • 查看性能总结表格
  4. 下载图片

    • 点击截图下方的"下载图片"按钮保存结果

技术栈

  • Vue 3
  • Vite
  • Element Plus
  • html2canvas
  • dom-to-image
  • @zumer/snapdom

注意事项

  1. CORS问题: 某些图片可能因为跨域限制无法正常截图
  2. 性能影响: 大型DOM结构可能影响截图性能
  3. 浏览器差异: 不同浏览器的渲染结果可能略有差异
  4. 内存使用: 高分辨率截图会消耗较多内存

许可证

MIT License

About

验证SnapDOM、html2canvas、dom-to-image三者实际效果

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published