Skip to content

Repository files navigation

HTML2PNG

🎯 专业的HTML知识卡片转图片工具

将HTML知识卡片批量转换为高质量PNG/JPEG图片,专为AI生成内容的社媒分发而设计。

HTML2PNG Logo

✨ 主要特性

  • 🖼️ 高质量转换 - 使用Playwright引擎,确保像素级完美渲染
  • 👁️ 所见即所得预览 - 实时预览,支持10%-500%缩放
  • 🎯 精确选择导出 - 可视化选择框,精确控制导出区域
  • 🔧 多种裁切模式 - 全页面、CSS选择器、智能自动检测
  • 🎨 灵活格式支持 - PNG透明背景 / JPEG压缩优化
  • ⚡ 批处理能力 - 支持批量处理多个HTML文件
  • 🌐 离线友好 - 支持离线模式,内联所有外部资源

🖥️ 界面预览

主界面 预览模式 选择模式
主界面 预览 选择

🚀 快速开始

发行版下载

  1. 前往 Releases 页面
  2. 下载最新版本的 HTML2PNG-win32-x64.zip
  3. 解压后双击 HTML2PNG.exe 即可运行

基本使用

  1. 导入HTML - 点击"选择HTML文件"按钮或直接粘贴HTML代码
  2. 预览调整 - 使用缩放控件查看效果,支持Ctrl+滚轮缩放
  3. 精确选择 - 启用选择模式,拖拽选择要导出的区域
  4. 设置参数 - 选择输出格式、分辨率、背景等选项
  5. 导出图片 - 点击导出按钮,选择保存位置

⌨️ 快捷键

  • Ctrl + Plus - 放大预览
  • Ctrl + Minus - 缩小预览
  • Ctrl + 0 - 重置缩放
  • Ctrl + 滚轮 - 快速缩放

🛠️ 开发指南

技术架构

├── src/
│   ├── main/           # Electron主进程
│   │   ├── main.ts     # 应用入口
│   │   ├── ipc.ts      # IPC通信处理
│   │   └── engine/     # Playwright截图引擎
│   ├── renderer/       # React前端界面
│   │   ├── App.tsx     # 主应用组件
│   │   ├── components/ # UI组件
│   │   └── hooks/      # 自定义Hooks
│   └── preload/        # 预加载脚本
├── types/              # TypeScript类型定义
└── assets/             # 静态资源

本地开发

# 安装依赖
npm install

# 开发模式运行
npm run dev

# 构建应用
npm run build

# 打包发行版
npm run build:win

核心技术栈

  • 前端框架: React 18 + TypeScript + Vite
  • 桌面框架: Electron
  • 截图引擎: Playwright (Chromium内核)
  • 构建工具: electron-builder
  • 样式方案: Tailwind CSS + CSS Modules

📋 系统要求

  • 操作系统: Windows 7 及以上版本
  • 架构: 64位系统
  • 内存: 建议4GB以上
  • 磁盘空间: 500MB可用空间

🔧 配置选项

导出参数

interface ExportOptions {
  format: 'png' | 'jpeg';           // 输出格式
  width: number;                    // 输出宽度
  height: number;                   // 输出高度
  dpr: 1 | 1.5 | 2 | 3;            // 设备像素比
  quality?: number;                 // JPEG质量(0-100)
  background?: string | 'transparent'; // 背景色
  cropMode: 'full' | 'selector' | 'auto'; // 裁切模式
  selector?: string;                // CSS选择器
  networkPolicy: 'online' | 'offline'; // 网络策略
}

预设配置

  • 社媒卡片: 1080×1920 (9:16竖屏)
  • 横版海报: 1600×900 (16:9横屏)
  • 方形卡片: 1080×1080 (1:1正方形)
  • 自定义尺寸: 支持任意宽高比

🧪 测试用例

项目包含完整的测试覆盖:

# 运行单元测试
npm run test

# 运行E2E测试
npm run test:e2e

# 生成测试报告
npm run test:coverage

重点测试场景

  • ✅ 外链字体渲染 (Google Fonts, Font Awesome)
  • ✅ Tailwind CDN样式支持
  • ✅ 透明背景PNG导出
  • ✅ CSS选择器精确裁切
  • ✅ 多分辨率DPR适配
  • ✅ 离线模式资源内联

🐛 故障排除

常见问题

Q: 程序启动后界面空白?
A: 检查端口5173是否被占用,或重启程序等待加载完成。

Q: 导出的图片不完整?
A: 确保HTML内容已完全加载,尝试增加等待时间设置。

Q: 选择模式无法拖拽?
A: 确保已启用选择模式,并在预览区域内进行拖拽操作。

Q: Windows Defender报毒?
A: 这是误报,程序使用了Playwright浏览器引擎,请添加信任。

性能优化

  • 单页渲染+导出时间 < 2秒 (标准办公设备)
  • Chromium进程池限制2个实例
  • 支持离线模式减少网络依赖

🤝 贡献指南

欢迎提交Issue和Pull Request!

  1. Fork 本仓库
  2. 创建功能分支: git checkout -b feature/amazing-feature
  3. 提交更改: git commit -m 'Add amazing feature'
  4. 推送分支: git push origin feature/amazing-feature
  5. 创建Pull Request

开发规范

  • 使用TypeScript编写代码
  • 遵循ESLint规则
  • 添加相应的单元测试
  • 更新相关文档

📄 许可证

本项目采用 MIT License 开源许可证。

🙏 致谢

  • Electron - 跨平台桌面应用框架
  • Playwright - 现代化浏览器自动化
  • React - 用户界面库
  • Vite - 新一代前端构建工具

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages