How to Convert JPG to SVG in 3 Steps
- Upload the JPG in the converter above (up to 100 MB).
- Convert. The image is traced in full color with vtracer. Images wider than 1,200 px are scaled to 1,200 px first.
- Download the SVG and open it in Inkscape, Illustrator, Figma or Cricut Design Space to delete stray shapes or recolor it.
Logos, icons and clip art with a few flat colors give the cleanest result. Photos come out posterized.
Raster vs Vector: The Fundamental Difference
Every digital image falls into one of two categories: raster or vector. Understanding the difference is essential to knowing what vectorization can and cannot do.
A raster image (JPG, PNG, BMP, TIFF) stores a picture as a rectangular grid of colored pixels. Each pixel is a tiny square with a single color value. The total number of pixels — the resolution — determines how much detail the image can hold. A 3000×2000 pixel photo contains 6 million individual color values. When you zoom in, you eventually see the individual squares. When you scale the image up beyond its native resolution, the software must invent new pixels between the existing ones, producing a blurry, interpolated result.
A vector image (SVG, AI, EPS, PDF) stores a picture as a set of mathematical instructions. A circle is described as a center point and a radius. A curve is a Bézier equation with control points. A filled region is a closed path with a fill color. Because the image is defined by math rather than pixels, it can be rendered at any resolution — from a 16×16 favicon to a 10-meter billboard — with perfect sharpness every time. The rendering engine simply recalculates the curves for the target size. Our SVG vs PNG comparison shows when each format is the right choice.
| Property | Raster (JPG, PNG) | Vector (SVG) |
|---|---|---|
| Data model | Grid of colored pixels | Mathematical paths and curves |
| Scaling | Degrades when enlarged | Infinitely scalable, always sharp |
| File size | Proportional to pixel count | Proportional to path complexity |
| Best for | Photographs, complex scenes | Logos, icons, illustrations, line art |
| Editing | Pixel-level (Photoshop, GIMP) | Path-level (Illustrator, Inkscape) |
| Transparency | PNG yes, JPG no | Full support |
| Animation | Not natively | CSS and JavaScript |
This fundamental difference means that converting from raster to vector is not like converting WAV to MP3 or JPG to PNG. Those are format changes within the same data model (pixels to pixels, or samples to samples). Raster-to-vector conversion is a reconstruction — the software must interpret the pixel data and build a completely new mathematical representation of the image.
How Auto-Vectorization Works
When you upload a JPG image to CleverUtils and convert it to SVG, the file passes through a multi-step pipeline. Understanding each step helps explain why certain images vectorize beautifully while others produce unexpected results.
Step 1: Decoding and Resizing
ImageMagick decodes the upload (JPG, PNG, WebP, TIFF, PSD and other formats) and fixes EXIF rotation. Images wider than 1,200 px are scaled down to 1,200 px wide to keep tracing fast. Vector or layered inputs such as PDF, EPS or PSD are flattened onto white first.
Step 2: Color Clustering
The tracer, vtracer, groups neighboring pixels of similar color into regions. Our settings keep 6 bits of precision per color channel, so very close shades merge into one flat color. This is why gradients turn into bands of solid color.
Patches smaller than 4 pixels are dropped as speckles.
Step 3: Edge Tracing
vtracer follows the outline of every color region. Regions are stacked: larger shapes sit underneath and smaller ones on top, so there are no gaps between neighboring colors.
Step 4: Polygon Fitting
Our converter runs vtracer in polygon mode: each outline becomes a chain of straight line segments, not Bézier curves. Turns sharper than 60° are kept as corners. Polygons keep logos and lettering crisp; round shapes look slightly faceted when you zoom in a lot.
Step 5: SVG Output
Each region is written as an SVG <path> with a solid fill color. The file opens in any browser and in Inkscape, Illustrator, Figma and Cricut Design Space.
Command: vtracer --input in.png --output out.svg --colormode color --hierarchical stacked --mode polygon --filter_speckle 4 --color_precision 6 --corner_threshold 60 --segment_length 3.5
If vtracer cannot process a file, the converter falls back to potrace, which produces a black-and-white SVG.
What Vectorizes Well
Tracing works best when an image is made of a few flat colors with clear edges. Each flat color becomes one clean shape. For preparing the source image and cleaning up the result, see how to vectorize an image step by step.
| Image Type | Quality | Why |
|---|---|---|
| Logos on white background | Excellent | High contrast, clean edges, solid colors |
| Line art and sketches | Excellent | Strong black lines on white paper |
| Text and typography | Excellent | Sharp edges, uniform color |
| Silhouettes | Excellent | Pure black/white, clean outlines |
| Simple icons | Excellent | Geometric shapes, solid fills |
| Stamps and seals | Very good | High contrast, may need threshold adjustment |
| Hand-drawn designs | Very good | Strong lines vectorize well; light pencil strokes may drop out |
| Technical diagrams | Very good | Clean lines, but thin lines may need lower threshold |
The common thread: high contrast, clear edges, limited tonal range. If you can squint at the image and still make out its essential shape, it will vectorize well.
What Does NOT Vectorize Well
Color clustering fails for images with continuous tonal variation. Smooth gradients split into many bands of flat color, which looks posterized and makes the SVG large.
- Photographs: A portrait or landscape contains smooth gradients across skin, sky, foliage, and fabric. Tracing turns all of this into hundreds of flat-color patches, producing a posterized appearance. The SVG file may also be enormous — thousands of tiny paths attempting to represent what was originally smooth tonal variation.
- Complex scenes: Busy images with many overlapping elements, varying depths, and complex backgrounds produce noisy, cluttered vector output with too many paths to be useful.
- Soft gradients: A sunset sky, a color fade, or a vignette effect gets chopped into discrete bands of flat color with jagged boundaries.
- Detailed textures: Fabric weave, wood grain, skin pores, fur — these fine-detail textures generate enormous numbers of tiny vector paths that neither look good nor serve any practical purpose.
- Low-resolution images: A 100×100 pixel thumbnail gives the tracer so few pixels to work with that the curves become rough and blocky. Higher resolution input produces smoother output, up to the 1,200 px width the converter traces at.
- Heavily compressed JPGs: JPEG compression artifacts (blocky patterns around edges) confuse the edge detection, producing noisy vector paths that trace the compression artifacts rather than the actual image content.
Rule of thumb: If the image still reads well when you reduce it to a handful of flat colors, it will vectorize well. If the image depends on gradients, tonal subtlety, or photographic detail, vectorization is the wrong tool.
Our Tracing Pipeline (vtracer)
CleverUtils traces raster images with vtracer, an open-source color tracer from VisionCortex. Unlike potrace, which only produces black and white, vtracer keeps the colors of the image.
The conversion pipeline has three components:
- ImageMagick — Decodes the input file (JPG, PNG, WebP, TIFF, PSD, etc.), fixes rotation and scales images wider than 1,200 px down to 1,200 px
- vtracer — Clusters colors and traces each region as a filled polygon path
- potrace — Fallback for files vtracer cannot process; outputs a black-and-white SVG with Bézier curves
The full command:
vtracer --input in.png --output out.svg --colormode color --hierarchical stacked --mode polygon --filter_speckle 4 --color_precision 6 --corner_threshold 60 --segment_length 3.5
There are no settings to choose: the same parameters are used for every file. They suit logos, icons, clip art and flat illustrations.
Vectorization Settings Explained
If you trace an image yourself with potrace (for example, through Inkscape’s Trace Bitmap), these parameters control the result. The converter on this page does not use them: it runs vtracer with fixed settings.
Threshold (-k)
The most important parameter. Controls the brightness cutoff between black (foreground) and white (background) in the binary conversion step. Range: 0.0 to 1.0, default 0.5. Our guide to potrace threshold settings shows which values suit logos, sketches and scans.
| Threshold | Effect | Best For |
|---|---|---|
| 0.2 | Very light — only the darkest pixels become foreground | Dark images, heavy ink drawings |
| 0.3 | Light sketch feel | Pencil drawings, low-contrast sources |
| 0.5 | Balanced default — equal split | Most logos and line art |
| 0.7 | Heavier — captures more of the image | Light-colored sources, faded documents |
| 0.9 | Very heavy — almost everything becomes foreground | Extracting faint marks from light backgrounds |
Corner Smoothing (-a)
Controls whether the tracer preserves sharp corners or rounds them into curves. Range: 0 to 1.334, default 1.
-a 0— All corners are sharp. Good for geometric shapes, pixel art, and technical diagrams where you want precise angles.-a 1(default) — Moderate smoothing. Corners that are close to 90 degrees stay sharp; others get rounded.-a 1.334— Maximum smoothing. All corners become curves. Produces the smoothest output, good for organic shapes and handwriting.
Noise Removal (-t turdsize)
Removes small isolated specks from the binary image before tracing. The value specifies the maximum size (in pixels) of regions to discard. Default: 2.
-t 0— Keep everything, including single-pixel noise. Use this only for very clean source images.-t 2(default) — Removes tiny specks (1-2 pixel regions). Works for most images.-t 10-50— Aggressively removes small features. Useful for scanned documents with dust, paper texture, or compression artifacts.
Optimization (-O)
Controls how many Bézier curve segments potrace uses to approximate each contour. Higher optimization produces simpler paths (fewer SVG bytes) but potentially less accurate tracing. The default optimization level is a good balance between fidelity and file size for most images.
When to Vectorize
Vectorization is not a universal upgrade — it is the right tool for specific use cases where the properties of vector graphics provide a clear advantage over raster images.
Large-Format Printing
Banners, trade show displays, vehicle wraps, and building signage all require artwork that can be scaled to meters without losing quality. A logo that was designed at 300×200 pixels becomes a blurry mess on a 3-meter banner. Converting it to SVG gives the print shop a resolution-independent file that renders crisply at any scale.
Scalable Icons and UI Elements
Websites and applications display icons at many sizes: 16px in menus, 32px in toolbars, 64px in feature cards, 128px in hero sections. Serving a separate PNG for each size is wasteful. A single SVG icon renders perfectly at every size, responds to CSS styling (change colors on hover), and typically weighs less than a single PNG rendition.
Scanned Line Drawings
Architects, engineers, and artists often scan hand-drawn sketches, floor plans, or technical diagrams. The scanned JPG is a raster capture of something that was originally drawn with lines and curves — exactly what vector format represents natively. Vectorizing the scan reconstructs the original intent, producing clean, editable vector paths from the scanned pixel data.
Cutting Machines and CNC
Cricut, Silhouette, laser cutters, and CNC routers all require vector input to generate toolpaths. If your design exists only as a JPG or PNG, vectorization is the bridge between the raster design and the physical cutting operation. The vector paths become the exact lines the machine follows.
Embroidery and Screen Printing
Embroidery machines need vector outlines to generate stitch paths. Screen printing requires clean vector separations for each color layer. In both cases, vectorizing a raster logo or design is the first step in the production workflow.
AI-Powered Alternatives
vtracer and potrace are algorithmic tracers: they detect edges and fit shapes with fixed rules. They are fast, free and deterministic (the same input always gives the same output).
For use cases that potrace cannot handle well, AI-powered vectorizers offer a different approach:
| Feature | Algorithmic (vtracer, potrace) | AI Vectorizers |
|---|---|---|
| Color output | vtracer: color; potrace: black & white | Full multi-color |
| Speed | Fast (seconds or less) | Seconds to minutes |
| Cost | Free | Typically paid (per-image or subscription) |
| Best for | Logos, line art, B&W graphics, cutting | Multi-color illustrations, stylized photos |
| Deterministic | Yes — same input, same output | May vary between runs |
| Offline capable | Yes (both are open source) | Usually cloud-only |
Tools like Vectorizer.AI and Recraft use machine learning to identify shapes, separate color layers, and generate clean multi-color SVG output from complex images. They can handle full-color logos, illustrations with gradients, and even some photographic content that potrace cannot.
For the most common cases — a flat-color logo, a line drawing, a Cricut cut file or scanned text — algorithmic tracing gives good results quickly and for free. Potrace is also the engine behind Inkscape’s Trace Bitmap.
Pre-Processing Tips for Better Results
The quality of your SVG output depends heavily on the quality of your input image. A few minutes of preparation before uploading can dramatically improve the vectorization result.
- Increase contrast: Open the image in any editor (even a phone's built-in editor) and push the contrast slider up. Stronger contrast means clearer edges for the tracer to follow.
- Crop tightly: Remove unnecessary background. Fewer irrelevant pixels means cleaner output and smaller SVG files.
- Use a sharp source around 1,200 px wide: the converter scales wider images down to 1,200 px, and much smaller images give rougher edges.
- Prefer PNG over JPG when possible: JPEG compression creates blocky artifacts around edges. These artifacts confuse the tracer, producing noisy vector paths. If you have both formats available, use the PNG.
- Convert to grayscale first: If the image is naturally B&W (like a sketch or logo), converting to grayscale before uploading removes color noise, so the tracer creates fewer stray color patches.
- Remove background noise: For scanned documents, use a "levels" or "curves" adjustment to push the paper white to pure white and the ink to pure black. This eliminates paper texture and scanning artifacts.
Other Ways to Convert JPG to SVG
Inkscape (free)
- Open the JPG with File → Open and select it.
- Go to Path → Trace Bitmap (Shift+Alt+B).
- Choose Single scan (Brightness cutoff) for black and white or Multiple scans (Colors) for color, then click Apply.
- Delete the original bitmap underneath and save with File → Save As → Plain SVG.
Adobe Illustrator
- Place the JPG and select it.
- Open Window → Image Trace and pick a preset such as Black and White Logo or 6 Colors.
- Click Expand to turn the trace into editable paths, then use File → Export → Export As → SVG.
Cricut Design Space
Design Space can upload a JPG and trace it into a cut image itself. Converting to SVG first gives you separate color layers and more control over which parts get cut.