Image Format Converter

Convert images between PNG, JPEG, WebP, SVG, and ICO, with resizing and six crop modes including AI-assisted selection

Options

Original size—
Estimated output—

For ALL crop modes: Keep everything except the selected region(s)

Features & Capabilities
Format Conversion:
  • PNG, JPEG, WebP, SVG, ICO
  • Quality control (1-100)
  • Resize with aspect ratio
Cropping Modes:
  • Rectangle: Multi-region selection (Shift+Click)
  • Circle: Multi-region selection (Shift+Click)
  • Polygon: Multi-region freeform shapes
  • Magic Wand: Color-based auto-selection
  • Selfie Mode: AI-powered person segmentation
  • Smart Crop (SAM): AI object detection
  • Multi-Mode: Combine different crop types!
Advanced Features:
  • Real-time preview with color-coded regions
  • Persistent boundaries across mode switches
  • Tolerance & feathering controls
  • Invert selection for negative masks
  • SVG composite masking backend

Drag & drop an image here, or click to upload

Supported: jpg/jpeg, png, webp, svg, ico

Original Preview

No image uploaded yet.

Converted Result

No converted image yet.

Tool Features
Format Conversion:

Convert between PNG, JPEG, WebP, SVG, and ICO formats with adjustable quality settings.

Image Resizing:

Resize images by width, height, or both. Maintains aspect ratio when only one dimension is specified.

Cropping Modes:
  • Rectangle: Click two corners to define a rectangular crop area
  • Circle: Click center point, then click to set radius for circular crop
  • Polygon: Click to add points (minimum 3) for custom polygon crop
  • Magic Wand: Click on a color to select all similar regions. Adjustable tolerance and invert option.
  • AI Selfie: Automatically detect and segment people using MediaPipe AI
  • Smart Crop: Click to intelligently select objects with adaptive color matching
API Documentation
Endpoint:POST /api/image-convert
Request Format:

Multipart form-data with two fields:

  • file: Image file (required)
  • options: JSON string with conversion settings (required)
Options Object:
{
  "toFormat": "png|jpeg|webp|svg|ico",
  "quality": 1-100,
  "width": number | null,
  "height": number | null,
  "crop": {
    "type": "rect|circle|polygon|magic|selfie|sam",
    "data": {
      // Rectangle: { left, top, width, height }
      // Circle: { cx, cy, r }
      // Polygon: { points: [{x, y}, ...] }
      // Magic/Selfie/SAM: { regions: [[{x,y},...]], invert?: boolean }
    }
  }
}
Response:

Binary image data with appropriate Content-Type header and download filename.

Example Usage:
const formData = new FormData();
formData.append('file', imageFile);
formData.append('options', JSON.stringify({
  toFormat: 'png',
  quality: 90,
  width: 800,
  crop: {
    type: 'circle',
    data: { cx: 400, cy: 300, r: 150 }
  }
}));

const response = await fetch('/api/image-convert', {
  method: 'POST',
  body: formData
});
const blob = await response.blob();