我们的SVG格式化工具主要特性
- **美化模式**,具备智能缩进、自动换行和属性对齐功能
- **压缩模式**,去除空白、注释和冗余元数据
- 底层采用Prettier风格格式化和SVGO风格优化
- 可配置缩进风格(空格或制表符)和缩进大小
- 可选换行列宽,保持长路径和属性整洁
- 统一的换行符风格(LF / CRLF),确保跨操作系统差异对比清晰
- 拖放最大5MB的`.svg`文件或直接粘贴内联SVG标记
- 100%客户端处理 — 您的设计作品永不离开浏览器
- 一键复制或下载格式化(`.formatted.svg`)或压缩(`.min.svg`)输出
- 响应式界面,完美适配笔记本电脑、台式机和平板设备
🔧 如何格式化或压缩SVG:快速指南 for svg-formatter
1. 粘贴或上传SVG
📥 将您的`.svg`文件拖放至编辑器或直接粘贴原始SVG标记。工具会自动检测标准的`image/svg+xml`内容。
2. 选择格式化或压缩
✨ 选择**格式化**获得人类可读的标记(适合代码审查和版本控制),或选择**压缩**获得最小文件体积。
3. 调整格式化选项
⚙️ 调整**缩进风格**(空格或制表符)、**缩进大小**和可选的**换行/行长度**。这些设置直接对应底层格式化器配置。
4. 预览与导出
👀 检查优化后的SVG代码,在项目中快速测试,然后复制到剪贴板或下载为新`.svg`文件。
技术细节
美化引擎(格式化模式)
格式化模式采用专为SVG XML标记优化的Prettier风格引擎,专注于可读性和稳定可预测的差异对比。
| 方面 | 行为 | 备注 |
|---|---|---|
| 缩进风格 | 空格或制表符 | 可通过**缩进风格**配置(对应`indentStyle`)。 |
| 缩进大小 | 1–8个空格 | 使用空格时控制嵌套宽度(对应`indentSize`)。 |
| 换行/行长度 | 0–120列 | `0`禁用换行;否则长行将在选定列处换行(对应`wrapLineLength`)。 |
| 行尾符 | LF(`\n`)或CRLF(`\r\n`) | 保持跨操作系统行尾符一致性(对应`endOfLine`)。 |
| 输出语言 | XML风格SVG | 保持SVG兼容的XML结构以确保安全嵌入。 |
压缩流水线(压缩模式)
压缩模式采用受SVGO启发的流水线,专注于减小文件大小同时保持视觉输出不变。
| 步骤 | 描述 | 影响 |
|---|---|---|
| 移除注释 | 去除不影响渲染的`<!-- ... -->`注释节点。 | 文件更小,差异更清晰。 |
| 删除冗余空白 | 压缩不必要的空格、制表符和换行符。 | 对编辑器导出的冗长SVG效果显著。 |
| 修剪元数据 | 在安全时可选地移除非渲染元数据节点。 | 适用于公共生产资源。 |
| 规范化属性 | 以稳定方式简化和重排属性。 | 输出更紧凑,缓存性更佳。 |
编码与兼容性
输出为UTF-8 SVG,兼容现代浏览器和工具,符合SVG 2规范。
性能与限制(典型桌面浏览器)
| 文件类型 | 输入大小 | 美化时间 | 压缩时间 | 典型大小缩减 |
|---|---|---|---|---|
| 图标 | 5 KB | ⚡ < 15 毫秒 | ⚡ < 20 毫秒 | ≈ 25–40% |
| 插图 | 100 KB | ⚡ < 60 毫秒 | ⚡ < 90 毫秒 | ≈ 40–55% |
| 主图图形 | 500 KB | ⏱️ < 300 毫秒 | ⏱️ < 450 毫秒 | ≈ 50–60% |
面向高级用户的CLI替代方案
偏爱终端工作流或CI集成?结合Prettier和SVGO可获得与此工具类似的行为:
Linux / 🍎 macOS
使用Prettier美化SVG
npx prettier --parser xml --print-width 80 --tab-width 2 --write input.svg为SVG标记应用一致的缩进和换行。
使用SVGO压缩SVG
npx svgo input.svg -o input.min.svg移除注释、元数据和冗余空格以减小文件体积。
Windows (PowerShell或CMD)
使用xmlstarlet美化SVG(通过WSL或原生方式)
xmlstarlet fo --indent-spaces 2 input.svg > pretty.svg以2空格缩进格式化SVG/XML。
使用SVGO压缩SVG(无需全局安装)
npx svgo input.svg -o min.svg通过`npx`直接运行SVGO进行一次性优化。
实际应用场景
网页性能与前端打包
- 缩减设计系统、图标集和雪碧图中的SVG负载。
- 在HTML/CSS中内联压缩后的SVG以节省额外HTTP请求。
- 通过压缩着陆页主图来提升核心网页指标。
<img src="/assets/hero.min.svg" alt="优化后的主图" />.icon-check { background-image: url('data:image/svg+xml;utf8,<svg ...>'); }设计交付与版本控制
- 在代码审查前美化导出的SVG,使差异对比更清晰。
- 保留格式化的`.formatted.svg`用于协作,`.min.svg`用于生产环境。
- 在设计系统中强制执行一致的缩进和属性排序。
移动端、邮件与混合应用
- 压缩HTML邮件中的内联SVG以减轻营销活动负担。
- 在React Native / Capacitor / Ionic中打包大量图标时减小应用体积。
- 为使用慢速或计量连接的用户节省带宽。
❓ Frequently Asked Questions
❓什么是SVG格式化?
📏压缩会改变我的SVG外观吗?
🔒我的SVG会上传到服务器吗?
🚀压缩能节省多少空间?
⚠️移除`<metadata>`或注释会破坏我的工作流程吗?
Pro Tips
在仓库中保留未压缩的`icon.formatted.svg`以保持清晰的差异,然后在构建步骤中生成`icon.min.svg`。
在压缩前始终包含有意义的`<title>`和`<desc>`元素,以确保您的SVG对屏幕阅读器保持可访问性。
将SVG压缩与HTTP压缩(Gzip/Brotli)结合使用,从复杂的插图和图表中进一步减少字节数。
对于图标集,考虑使用精灵策略:一次性压缩,然后通过`<use>`引用图标,而不是到处重复SVG代码。
Additional Resources
Other Tools
- CSS 美化器
- HTML 美化器
- JavaScript 美化器
- PHP 美化器
- 颜色选择器
- 精灵图提取器
- Base64 解码器
- Base64 编码器
- C# 格式化器
- CSV 格式化器
- Dockerfile Formatter
- Elm 格式化器
- ENV 格式化器
- Go 格式化器
- GraphQL 格式化器
- HCL 格式化器
- INI 格式化器
- JSON 格式化器
- LaTeX 格式化器
- Markdown 格式化器
- Objective-C 格式化器
- Php Formatter
- Proto 格式化器
- Python 格式化器
- Ruby 格式化器
- Rust 格式化器
- Scala 格式化器
- Shell 脚本格式化器
- SQL 格式化器
- Swift 格式化工具
- TOML 格式化工具
- Typescript Formatter
- XML 格式化工具
- YAML 格式化工具
- Yarn 格式化工具
- CSS 压缩器
- Html Minifier
- Javascript Minifier
- JSON 压缩器
- XML 压缩器
- HTTP 头部查看器
- PDF 转文本
- 正则表达式测试器
- 搜索引擎排名检查器
- Whois 查询