Start with the uncomfortable part
A photograph is not a vector and never was. There is no hidden set of curves inside it waiting to be recovered.
What tracing does is different: it finds boundaries between areas of similar colour and draws shapes along them. Run that on a photo and you get a stylised poster — recognisable, flat, and made of editable shapes. You do not get your photograph back in curve form, because that thing does not exist.
If someone told you to send an SVG of a photo, the honest answer is usually that they want a different file. If you want the poster effect, or you have a logo that happens to be stored as HEIC, you are in the right place.
What most converters actually give you
This is the part worth knowing before you use any tool for this, ours included.
There are two common shortcuts, and both produce a file that opens as .svg while containing nothing you could call a vector.
The wrapper. The photo is base64-encoded and dropped into an <image> tag inside an SVG. It displays fine, cannot be edited as shapes, does not scale any better than the original, and is about a third larger because base64 costs that. We measured exactly that: our own wrapper mode produced a 412 KB file around a 309 KB PNG.
One rectangle per pixel. Some tools emit an <rect> for every pixel. A 400 by 300 image becomes 120,000 rectangles. It is technically vector, in the sense that a mosaic is technically a painting.
We offer the wrapper as an option, because sometimes an upload form simply insists on a .svg and nothing else will satisfy it. It is labelled as what it is, in the tool and here.
What this page does instead
The real path is four steps, all on your device:
- Decode the HEIC to pixels.
- Quantise to the number of colours you choose, using median cut refined with k-means so a two-colour trace comes out black and white rather than grey and white.
- Trace each colour: walk the boundary between that colour’s pixels and everything else, producing closed loops. Inner loops come out wound the other way, so holes work through the even-odd fill rule rather than special-casing.
- Simplify each loop with Ramer–Douglas–Peucker, turning the pixel staircase into straight segments.
The output is one path per colour with a solid fill, which any vector editor will open and let you push around.
How to convert HEIC to SVG in 3 steps
1. Add your photo
Drag it in, paste, or click to browse. Nothing is uploaded at this step or any other.
2. Pick colours and detail
Colours is the big lever. Detail decides how hard the staircase gets straightened — Fine follows the pixels closely, Smooth gives fewer, cleaner points.
3. Trace and download
The tool reports how many paths, shapes and points came out, so you can tell at a glance whether the result is workable or a mess of ten thousand nodes.
What each colour count gives you
Measured on our 12 megapixel test photo, traced at 500 pixels wide.
| Colours | File | Paths | Shapes | Points |
|---|---|---|---|---|
| 2 | 7.8 KB | 1 | 66 | 999 |
| 4 | 35.4 KB | 3 | 366 | 4,533 |
| 8 | 59.2 KB | 7 | 594 | 7,773 |
| 16 | 88.2 KB | 15 | 920 | 11,499 |
The pattern is worth internalising: every colour you add costs shapes, and shapes are what make an SVG heavy and hard to edit.
Two colours is a stencil — the right answer for a cutting machine, a laser engraver or a one-colour print. Eight is a poster. Sixteen starts to resemble the photograph again, at the cost of nearly a thousand separate shapes.
Where tracing is genuinely the right tool
A logo photographed or screenshotted into a HEIC. Flat colours, hard edges, few shapes. This is what tracing was built for, and two or four colours will usually nail it.
Stencils and cutting machines. Vinyl cutters, laser engravers and Cricut-style machines want paths, not pixels, and they want few of them. Two colours, Smooth detail.
Screen-print and poster work. The flattening is the aesthetic, not a compromise.
Not photographs for general use. If you want a photo on a website, WebP or AVIF will look better and weigh less. If you want a photo that scales, you want a bigger raster, not a vector.
The one thing SVG genuinely wins at
Once traced, the file has no resolution at all. The same 59 KB of paths renders sharp on a phone, on a 5K display, and on a billboard.
That is the real reason to accept the flattening. A raster has a fixed number of pixels, and enlarging it past them can only invent detail or show you squares. Paths have no such limit — the maths is re-evaluated at whatever size you ask for.
So the question to ask is not “can I convert HEIC to SVG”, but “is a flat, scalable version of this image useful to me”. For a logo the answer is yes. For a family photo it is almost always no.
If you came here to make a photo bigger
This is the most common reason people try to convert HEIC to SVG, and it does not work the way they hope.
The reasoning goes: SVG scales infinitely, so turning my photo into one will let me print it huge. But scaling infinitely is only useful if there is detail to scale. Tracing throws detail away first — that is the whole mechanism — so what enlarges cleanly is the flattened poster, not the photograph.
If the actual goal is a larger usable image, the answer is a bigger raster rather than a vector. Our HEIC resizer will scale a photo, and HEIC to PNG gives you a lossless copy to work from. Neither invents detail that was never captured, but neither throws away what was.
The exception is a logo or flat graphic. There, tracing genuinely does make it printable at any size, because there was no fine detail to lose.
Opening and editing what you get
The output is plain SVG: one <path> per colour, solid fills, an even-odd fill rule, and a viewBox matching the traced size.
Illustrator, Affinity Designer, Inkscape and Figma all open it directly. Every shape is selectable, so you can recolour a layer, delete the background, delete speckles the trace picked up, or pull individual points around.
Watch the shape count before you commit. Editing 66 shapes from a two-colour trace is pleasant; editing 920 from a sixteen-colour one is not, and most editors get sluggish long before you finish.
A practical workflow: trace at a low colour count first, see whether the shapes land where you want, and only raise it if the result is too crude. Going the other way — tracing at 16 and deleting shapes by hand — wastes an afternoon.
Why a browser can do this without a codec
Worth contrasting with the rest of this site.
Most format work here runs into licensing. HEIC cannot be written in a browser at all because HEVC is patent-encumbered, and AVIF needs 3.4 MB of downloaded encoder before it can produce a byte.
Tracing needs none of that. There is no codec, no patent pool and no wasm blob — just geometry: quantise, walk boundaries, simplify lines. Every part of it is a few hundred lines of ordinary code, which is why converting HEIC to SVG happens here instantly and privately while a format like AVIF makes you wait.
That also explains why so many sites ship the wrapper trick instead. Writing a tracer is real work, and base64 is one line.
What happens to the picture
Some honest specifics about the output.
Colour count is a hard flattening. Every pixel is snapped to the nearest palette entry. There is no dithering here, deliberately — dithering scatters pixels to fake intermediate tones, and each scattered pixel would become its own shape.
Fine detail disappears. Shapes smaller than a few pixels of area are dropped, because keeping them adds thousands of nodes that nobody wants to edit.
Metadata does not survive. The picture is rebuilt from pixels, so the shooting date and GPS coordinates are gone. Our HEIC EXIF viewer reads them beforehand if you need them.
Transparency becomes white. Traced areas are solid fills over a background rectangle.
The bottom line
Converting HEIC to SVG is worth doing when you want flat, scalable, editable shapes — a logo, a stencil, a poster. It is not a way to make a photograph resolution-independent, and any tool implying otherwise is either tracing it into something you did not want or wrapping it and hoping you do not look.
Start at 8 colours to see the shape of it, drop to 2 if you are cutting or printing one colour, and check the shape count before you commit to editing the result.