Professional web tool to convert bitmap images (PNG, JPG, etc.) to vector SVG with ultra-smooth curves and advanced color options.
- 3-step pipeline: Pre-processing → Vectorization → Post-processing
- Ultra-smooth curves: Completely eliminates jagged edges and pixelation
- Smart upscaling: 2x scaling with Lanczos3 for better quality
- Gaussian blur: Aggressive smoothing before vectorization
- Monochrome: Convert to a single customizable color
- Color palette: 2-32 colors with automatic detection
- Minimum (2): Maximum simplification
- Several (8-16): Balance between detail and simplicity
- All (32): Maximum fidelity
- Threshold: Detail level control (0-255)
- Turd Size: Remove small areas/noise
- Smoothing: Bezier curve adjustment (0-15)
- Number of colors: Dynamic slider for palette
- Next.js 16: React framework with App Router
- TypeScript: Static typing
- Tailwind CSS 4: Modern styling
- Sharp: High-performance image processing
- ImageTracerJS: Pure JavaScript vectorization (Vercel compatible)
# Clone repository
git clone <repo-url>
cd svg-vectorizer
# Install dependencies
npm install
# Run in development
npm run dev
# Open browser at http://localhost:3000- Upload image: Drag or select an image (PNG, JPG, etc.)
- Configure options:
- Select mode: Monochrome or Palette
- Adjust smoothing as needed
- Configure number of colors (if using palette)
- Vectorize: Click "Vectorize Image"
- Download: Click "Download SVG"
# Install Vercel CLI
npm install -g vercel
# Login
vercel login
# Deploy
vercel
# Deploy to production
vercel --prod- Push code to GitHub
- Import project at vercel.com
- Vercel will automatically detect Next.js
- Click "Deploy"
No special environment variables required.
- ✅ No native dependencies (pure JavaScript only)
- ✅ Sharp optimized for serverless
- ✅ ImageTracerJS compatible with edge functions
- ✅ Automatic build time optimization
- ✅ No additional configuration needed
- Upscale 2x with Lanczos3
- Gaussian blur (sigma=8)
- High-quality PNG conversion- Line threshold: 2 (maximum simplification)
- Quad spline threshold: 8-12 (ultra-smooth curves)
- Color sampling: deterministic
- Path omit: 25 (remove noise)- SVG path simplification
- Decimal precision reduction
- Color optimizationsvg-vectorizer/
├── app/
│ ├── api/
│ │ └── vectorize/
│ │ └── route.ts # Vectorization API endpoint
│ ├── layout.tsx # Main layout
│ └── page.tsx # User interface
├── public/ # Static files
├── types/ # TypeScript declarations
├── package.json # Dependencies
├── tsconfig.json # TypeScript config
└── tailwind.config.ts # Tailwind config
- Maximum size: Depends on Vercel plan (10MB body size on free tier)
- Timeout: 10s on Hobby, 60s on Pro
- Memory: 1GB on Hobby, 3GB on Pro
- Complexity: Very complex images may take longer
- Batch processing (multiple images)
- Predefined presets (Logo, Illustration, Photo)
- Real-time preview
- Side-by-side comparison
- Export as PNG from SVG
- Conversion history
MIT
Built with Claude Code
To report issues or suggestions, open an issue in the repository.