XCF viewer: open a GIMP file without GIMP
Someone sent you an .xcf and you do not have GIMP? Drop it here. You get the picture as GIMP shows it, the canvas size, bit depth and colour mode, and every layer with a thumbnail and a show/hide switch, groups and text layers included. Save the whole picture or any single layer as a PNG. Works with files from GIMP 1 to GIMP 3.2, and with compressed .xcf.gz.
The file is read by this tab only. It is never uploaded.
What it shows
- The flattened picture. An XCF holds no ready-made picture, only layers, so every program that shows one has to stack the layers itself. This page does that with the visible layers, their opacity, position, layer masks and groups (pass-through groups included), and draws the result at full size on a checkerboard so transparency shows.
- The image facts. Canvas width and height, resolution, colour mode (RGB, grayscale, or indexed with the number of palette colours), precision (8, 16, 32 or 64 bits per channel, integer or floating point, linear or perceptual), the XCF version and the oldest GIMP that opens it, and the image comment.
- Every layer, topmost first as in GIMP's Layers dialog, with a thumbnail, its opacity, size and position, its layer mode, and tags for groups, text layers, masks and GIMP 3 filters. Untick a layer or a whole group to take it out of the picture; the picture redraws.
- The words in text layers. GIMP keeps a text layer's text next to its pixels, so the page prints it, with the font name. You can copy the words even if you do not have the font.
- Channel and path names. Saved selections (channels) and paths are listed by name, with the number of strokes for a path.
- Save as PNG for the whole picture, for any layer (its own pixels at its own size, with the mask applied), and for any group. The PNG is made in this tab and saved by your browser's normal download, with transparency.
What it cannot do
- GIMP 3 filters. GIMP 3 can keep filters such as blur or drop shadow live on a layer. They are stored as settings, not pixels, and are not re-run here: the page names them and shows the layer without them.
- Exact maths for every layer mode. Normal layers are composited exactly as GIMP does, in the colour space the file asks for. Multiply, Screen, Overlay, Hue and GIMP's other modes are drawn with the nearest blend formula a browser canvas uses. Where such a layer overlaps others, colours can differ slightly from GIMP, and the page says which layers that applies to. Dissolve is drawn as Normal, without GIMP's random dithering.
- Colour profiles. An embedded ICC profile is noted but not applied; the picture is shown as sRGB. 16- and 32-bit images are reduced to 8 bits per channel for display and for the PNG, because a browser canvas holds 8.
- .xcf.bz2 and .xcf.xz. GIMP can save those too. Only .xcf.gz is unpacked here (with the browser's own gzip support); unpack the others first, for example with 7-Zip, or open them in the archive viewer and save the .xcf inside.
- Very large images. Every layer is held in this tab's memory as pixels, and stacking them needs 16 bytes per canvas pixel: a 6,000 × 4,000 canvas needs about 384 MB on top of the layers. Phones run out much sooner than desktops, and a canvas over about 268 million pixels cannot be drawn at all.
- Editing. This is a viewer. It does not change or re-save the XCF. CinePaint's files (XCF version 100 and up) are a different format and are not read.
XCF versions and the GIMP that opens them
Bytes 10 to 13 of every XCF, right after gimp xcf , say its version: file for version 0, then v001, v002 and so on. GIMP saves with the lowest version that can hold the image, so a simple picture saved by GIMP 2.10 can still be version 3. When an older GIMP refuses a file, this is why; the page shows the version and the oldest GIMP that reads it.
| XCF version | First GIMP | What it added |
|---|---|---|
| 0 and 1 | 0.99.16 (1997) | The format; version 1 adds palettes for indexed images |
| 2 | 1.3.10 / 2.0 | Soft light, grain extract, grain merge; better paths |
| 3 | 2.7.1 / 2.8 | Layer groups |
| 4 to 13 | 2.10 (2018) | 16- and 32-bit and floating-point precision, linear light, zlib tiles, new layer modes, 64-bit offsets for files over 4 GB (version 11 and up) |
| 14 to 23 | 3.0 (2025) | Several selected layers, item sets, paths as their own structures (18), live filters (20) |
| 24 to 26 | 3.2 | Vector layers and link layers (24, 25), filters on channels (26) |
Useful to know
- Why an .xcf will not open in most programs
- Unlike a PSD, which usually carries a flattened copy of the image, an XCF stores only the layers, cut into 64 × 64 pixel tiles. A program has to read every tile of every layer and stack them with GIMP's layer modes to show anything, so photo viewers, browsers and most converters do not try. Krita and Photopea read many XCF files; ImageMagick reads older ones.
- Getting a plain PNG or JPEG for someone
- “Save picture as PNG” gives the whole image with transparency kept. In GIMP the same thing is File › Export As; File › Save always writes XCF.
- Indexed images and transparency
- In an indexed (palette) image GIMP has no partial transparency: an alpha value of 128 or more is fully opaque, anything lower is fully transparent. The page follows the same rule.
- Linear and perceptual precision
- Since GIMP 2.10 a 16- or 32-bit image can store light linearly (“linear light”) or the way screens encode it (“perceptual”, sRGB). The page converts both to 8-bit sRGB for display, so a linear image looks as it does in GIMP, not darker.
- Compressed XCF
- Tiles are run-length encoded by default; GIMP 2.10 and 3 use zlib instead when “better but slower compression” is ticked in the Save dialog. The facts here say which one a file uses. Separately, saving as
name.xcf.gzcompresses the whole file with gzip.