Initializing... drag & drop files here
Supports: XCF
.xcf project, or click "Add Files" to browse. Batch is supported — queue several XCFs and process them together.XCF is GIMP's native binary format, first released in December 1997 and still the only file type that fully preserves a GIMP project's layers, channels, masks, paths, and selections. SVG is a W3C-standard XML markup that describes graphics as math (paths, shapes, fills) instead of pixels, so it scales infinitely without blurring. Converting XCF to SVG either traces the rasterised image into vector paths or embeds the rendered raster inside an SVG wrapper — which one depends on the source content.
Tracing works best on flat, high-contrast art. Photographs, soft gradients, and painterly brushwork won't trace cleanly, and there is no wrapping fallback here — this page always produces a genuine vector trace, never the rendered pixels tucked inside an SVG container. For those sources, export as a raster instead (XCF to PNG or XCF to JPG), which preserves the original look far better than any trace of them would.
| Property | XCF | SVG |
|---|---|---|
| Type | Raster (pixel grid) | Vector (XML math paths) |
| Standard | GIMP-native, no public spec frozen | W3C Recommendation (1999, 2nd Ed. 2011) |
| Layers | Full layer stack, masks, channels | Single flat tree (groups, no masks beyond clipPath) — flatten in GIMP before tracing |
| Scalability | Pixelates beyond native resolution | Infinitely scalable |
| File size (typical 1080p logo) | 1-5 MB uncompressed-equivalent | 5-30 KB after tracing |
| Browser support | None (GIMP only) | All modern browsers (Chrome, Firefox, Edge, Safari) |
| Animation | None | CSS, SMIL, JavaScript, Lottie wrappers |
| Best for | Photo editing, layered painting | Logos, icons, illustrations, UI assets |
| Year introduced | December 1997 (UC Berkeley GIMP 0.x) | September 2001 (SVG 1.0) |
| Precision | Result | Use when |
|---|---|---|
| 1-3 | Heavily simplified, low file size | Tiny favicons, very simple icons |
| 4-6 | Balanced — recommended default | Logos, icons, most UI assets |
| 7-8 | Tight curves preserved | Detailed line art, complex paths |
| 9-10 | Nothing — the run aborts with no file | Never. The same value is sent as the colour precision, which caps at 8 bits per channel, so the job errors out instead of tracing. For reference traces you'll edit in Inkscape, 7-8 is the real ceiling |
GIMP is fundamentally a raster editor — its native SVG export only writes out paths created with the Paths tool, never the pixel content of layers. The official GIMP docs cover importing SVG and saving paths as SVG, but raster pixels in your XCF are silently dropped on export. That's why a dedicated XCF→SVG converter has to either trace the rendered raster into vectors or wrap it as an embedded image inside the SVG.
No, and the layer part needs care. SVG has no concept of GIMP's layer stack with channels and masks, and the converter does not merge the stack for you: a multi-layer XCF is read as a multi-page image and a single layer is what reaches the tracer. Trace an unflattened project and you get paths for part of the artwork only, with the rest of the canvas empty. Flatten in GIMP first (Image → Flatten Image, then re-save the .xcf) so the tracer sees the whole picture. Paths drawn with GIMP's Paths tool are not re-extracted as native SVG paths either — everything is traced from visible pixels. Keep your .xcf for editing; treat the SVG as a one-way export.
XConvert traces the rendered raster into actual <path> elements using a Potrace-style algorithm, controlled by the Number precision slider. The output is editable as vector paths in Inkscape, Illustrator, or Figma. If your source is a complex photograph the trace may produce hundreds of micro-paths and will look blocky — that's a sign the image isn't a good candidate for vectorisation, not a tool failure.
It controls how many decimal places SVG path coordinates keep. Precision 3 might output M 12.3 45.7, while precision 8 outputs M 12.34567890 45.67890123. More decimals make tighter curves match the source pixel-perfectly but inflate the XML file size. The default of 6 keeps sub-pixel accuracy at typical screen resolutions while staying compact.
Tracing detects edges between colour regions and fits Bezier curves along them. A photo has thousands of overlapping soft-edged regions, so the tracer either flattens it into posterised colour blobs or generates so many tiny paths that the SVG becomes larger than the original PNG. For photographic content, export the XCF as PNG or JPG first, then optimise — vectorisation is meant for flat artwork.
In GIMP: flatten the image, increase contrast so edges are crisp, remove anti-aliasing if possible (Filters → Generic → Threshold for hard edges), and reduce the colour palette. Then upload the cleaned XCF here at precision 5-6. The cleaner your raster, the fewer stray paths the tracer generates. For final polish, open the SVG in Inkscape and use Path → Simplify to remove leftover noise.
The traced output uses separate <path> elements for each colour region, so you can already select and edit them individually in any vector editor. For more granular control — separating an icon's outline from its fill, for example — open the SVG in Inkscape after conversion: Path → Break Apart splits compound paths, and the Node tool lets you reshape curves. This is standard practice for any auto-traced SVG, regardless of source converter.
If scalability isn't required, XCF to PNG gives you a lossless raster, XCF to JPG gives you a smaller lossy raster, and XCF to PDF wraps the rendered image in a portable document. For starting from another raster format instead of XCF, see the general Image to SVG page. To reduce an existing SVG further, Compress SVG strips metadata and rounds coordinates.
Not for the conversion itself — XConvert renders XCF directly on our servers, with no GIMP, Inkscape, or command-line tools at your end, and the SVG comes back as a download. The one thing you do want GIMP for is merging a layer stack before you upload, since the tracer works from a single layer. A logo that's already one flattened layer traces without touching GIMP at all.