@armedi/convert-svg
v1.0.1
Published
Convert SVG images to PNG with ease. A lightweight CLI tool powered by Playwright's Chromium engine for pixel-perfect rendering.
Downloads
32
Readme
🎨 convert-svg
Convert SVG images to PNG with ease. A lightweight CLI tool powered by Playwright's Chromium engine for pixel-perfect rendering.
✨ Features
- 🚀 Simple CLI – Minimal, intuitive command-line interface
- 🎯 Accurate Rendering – Powered by Chromium for pixel-perfect conversions
- 📐 Flexible Sizing – Specify width, height, or let aspect ratio handle it
- 🔄 Smart Defaults – Intelligently derive output names and dimensions
- 📦 Zero Config – Works out of the box, no setup required
📦 Installation
Install globally to use as a command-line tool:
npm install -g @armedi/convert-svgOr use with npx without installation:
npx @armedi/convert-svg --input icon.svg --output icon.png🚀 Quick Start
Convert an SVG to PNG with automatic naming:
convert-svg -i logo.svg
# Creates: logo.pngSpecify a custom output file:
convert-svg -i icon.svg -o custom-icon.pngResize while maintaining aspect ratio:
convert-svg -i illustration.svg -w 1024
# Width set to 1024px, height calculated from original ratioSpecify exact dimensions:
convert-svg -i graphic.svg -w 800 -h 600📋 Usage
convert-svg [options]Options
| Option | Alias | Description | Example |
| ---------- | ----- | ----------------------------- | ---------------------------------------- |
| --input | -i | Input SVG file (required) | convert-svg -i input.svg |
| --output | -o | Output PNG file | convert-svg -i input.svg -o output.png |
| --width | -w | Output width in pixels | convert-svg -i input.svg -w 512 |
| --height | -h | Output height in pixels | convert-svg -i input.svg -h 512 |
| --help | | Show help message | convert-svg --help |
Smart Sizing
- Only width provided? Height is calculated to maintain the original SVG's aspect ratio
- Only height provided? Width is calculated to maintain the original SVG's aspect ratio
- Neither specified? Original SVG dimensions are used
- Both provided? Output matches exactly
💡 Common Use Cases
Generate Multiple Sizes for Responsive Images
convert-svg -i icon.svg -w 256 -o icon-256.png
convert-svg -i icon.svg -w 512 -o icon-512.png
convert-svg -i icon.svg -w 1024 -o icon-1024.pngCreate Optimized Social Media Assets
convert-svg -i logo.svg -w 1200 -h 630 -o og-image.png🛠️ How It Works
convert-svg uses Playwright with Chromium to render SVG files, ensuring:
- Accurate rendering of complex SVGs with CSS, animations, and nested elements
- Cross-platform consistency – same output on macOS, Linux, and Windows
- Proper color management and anti-aliasing for quality output
The tool creates a temporary HTML file, loads the SVG into Chromium, and captures the rendered output as PNG.
📝 Requirements
- Node.js 14 or later
- Chromium (automatically installed with Playwright)
🤝 Contributing
Found a bug or have a feature request? Open an issue on GitHub.
📄 License
MIT © Armedi
Built with ❤️ for the open source community
