Initializing... drag & drop files here
Supports: XCF
XCF is GIMP's native project format — a binary container that stores layers, channels, paths, selections, guides, and full alpha transparency at up to 32-bit per channel precision. Almost nothing outside GIMP itself can open an XCF, so the format is great for editing but unsuitable for sharing or embedding. GIF (Graphics Interchange Format), introduced by CompuServe on June 15, 1987 and extended in 1989 with the GIF89a revision, is universally supported by every browser, every OS image viewer, every messaging app, and every email client written since the early 1990s. The conversion turns the GIMP project into a single GIF image readable everywhere — flatten the project in GIMP before uploading and that GIF matches your canvas.
This converter produces a static, single-frame GIF from one layer of the uploaded file — it does not composite a layer stack and it does not turn layers into animation frames. Flatten in GIMP (Image → Flatten Image) before uploading, or use GIMP's own File → Export As → GIF dialog with "As animation" checked if you want the layers to become frames: that mapping needs explicit frame-timing metadata (delay, dispose method, loop count) which cannot be inferred reliably from arbitrary layer names.
| Property | XCF | GIF |
|---|---|---|
| Year / origin | GIMP, 1995–present | CompuServe, June 1987 (GIF87a) / 1989 (GIF89a) |
| Compression | Lossless, RLE on raw pixel data | Lossless LZW on indexed pixels |
| Color depth | Up to 32-bit per channel float | 8 bits per pixel, 256 colors max per frame |
| Transparency | Full 8-bit alpha + layer masks | 1-bit (one palette index marked transparent) |
| Layers | Yes — unlimited, with blend modes | One raster layer only — flatten in GIMP before converting |
| Animation | Stored as separate layers; needs explicit export | Native — multiple frames with per-frame delay |
| Editability | Fully editable in GIMP | Effectively flat once exported |
| Compatibility | GIMP only (and a handful of plugins) | Universal — every browser, OS, email client |
| Typical file size | 5–10× the equivalent PNG | Smallest for ≤256-color images; large for photos |
| Source content | Best Colors setting | Why |
|---|---|---|
| Pixel art, icons, line art | 16 or 32 colors + Dither | Often gives a smaller file than ORIGINAL with no visible loss |
| Logos with flat fills | 8–32 colors, no dither | Pure flat color — dithering only adds noise |
| Screenshots / UI mocks | 64–128 colors + Dither | Modern UIs use anti-aliasing and gradients |
| Photographs | ORIGINAL or 256 colors + Dither | GIF is poor for photos; expect banding either way |
| GIMP painting / digital art | 256 colors + Dither | Maximum palette gives the best fidelity GIF allows |
No — and they will not be merged into a single picture either, which is the part that trips people up. A multi-layer XCF is read here as a multi-page image and a single layer is written out as a static, one-frame GIF; the composite GIMP shows on canvas is never assembled. In our testing with a three-layer GIMP project, the GIF carried only the bottom layer, and everywhere the upper two would have painted was left empty. Flatten first — Image → Flatten Image in GIMP, re-save the .xcf, then upload — and the GIF matches your canvas. If you want the layers to become animation frames, do that export in GIMP itself (File → Export As → GIF with "As animation" checked), because frame timing, dispose method, and loop count have to be set explicitly.
Full alpha (semi-transparent pixels) cannot survive the conversion — GIF89a only supports 1-bit transparency, where a single palette index is marked fully transparent and every other pixel is fully opaque. Soft anti-aliased edges in your XCF will become hard binary edges in the GIF. If you see far more transparency than you expected, that is a different problem: an unflattened layer stack leaves everything the missing layers covered empty. Flatten in GIMP and re-convert. For full alpha, convert to XCF to PNG instead.
GIF is limited to 256 colors per frame, indexed from a 24-bit RGB palette. XCF images with smooth gradients, photographic content, or subtle color shading get quantized into the nearest 256 colors, which produces visible banding. Enabling "By Color Reduction + Dither" trades some sharpness for smoother gradients by adding ordered noise. For full-color output, convert to XCF to PNG or XCF to JPG.
Pick GIF when you specifically need animation, when the target system only accepts GIF, or when the image has under ~64 distinct colors and you want the smallest file. Pick XCF to PNG for full-color graphics, screenshots, and anything needing semi-transparent edges. Pick XCF to JPG for photographs or large continuous-tone images where a small file matters more than perfect fidelity.
No — XCF decoding happens on our servers, so you don't need GIMP installed locally to get a GIF out. The one job that still belongs to GIMP is compositing: raster layers, alpha, and layer masks are all read, but the stack is not merged here, so a project with more than one layer needs Image → Flatten Image and a re-save before you upload. That step also settles anything whose appearance depends on layer interaction — blend modes, layer opacity, and masks are baked in exactly as the canvas shows them.
Files are processed on our servers, so the practical limit is upload size and connection speed rather than a hard file-size cap. XCFs into the hundreds of megabytes go through routinely; a multi-gigabyte multi-layer painting mostly costs you upload time. Flattening in GIMP before uploading usually shrinks the file substantially as well as fixing the layer problem, so it is worth doing on big projects for both reasons.
Yes — drop in an entire folder. Each XCF converts independently with the settings you've chosen, and outputs are delivered individually or as a single ZIP. Conversions run on our servers, so a large batch does not slow your machine down; the settings apply to every file in the queue, so flatten them all in GIMP first if any of them are layered.
Only if the text has been merged into the layer that gets written. A text layer in GIMP is a layer like any other, so in an unflattened project it is one of the layers that gets dropped — which is exactly why "my photo converted but the caption vanished" is the most common report on this page. Run Image → Flatten Image in GIMP and the text is rasterized into the single remaining layer using the font GIMP rendered it with, and it comes through in the GIF. After that it is part of the bitmap and can no longer be re-edited as text.
GIMP's own File → Export As → GIF gives you the most control — explicit animation frame timing, choice of dispose method, comment metadata, and an interlace toggle — and, importantly, it composites your layer stack before writing. This online tool does not do that step, so it is the faster route when the file is already flat: batch-converting a folder of finished images, working on a machine without GIMP, or skipping the export dialog for a one-off. For animated GIFs from layered XCFs, and for any project you have not flattened, GIMP itself remains the right choice.