Skip to main content

Open GIMP XCF files in PhotoCraft and convert XCF to PSD

Open GIMP .xcf files without GIMP in free PhotoCraft, with layers, groups, masks and blend modes, then convert XCF to PSD, PNG or OpenRaster, singly or in bulk.

Unofficial community guideUpdated Oct 27, 2026

Yes, you can open a GIMP .xcf file without GIMP. Since v0.13.0, PhotoCraft opens XCF files (and gzipped .xcf.gz) from GIMP 1.x through 3.2, with their layers, nested groups, layer masks, blend modes, extra channels and the saved selection (#2945). The import is read only: PhotoCraft can't save XCF. To convert XCF to PSD, open the file and use File › Save As…, which suggests PSD for an XCF document. Text, vector and link layers arrive as plain pixels, GIMP 3's non-destructive filters and paths are left out, and every gap is listed in a warning when the file opens. This page describes v0.16.0 (25 October 2026), which also fixes XCF files with link layers that failed to open in v0.13.0 to v0.15.1 (#8865).

Photoshop itself doesn't open .xcf files, so PhotoCraft is also a free way to get GIMP work to Photoshop users. Get it from the download page, or try it in the browser with the online editor.

What opens

The reader is PhotoCraft's own, written from GIMP's public XCF specification and checked against files GIMP 3.2.6 wrote, with GIMP's own rendering of each as the reference. It contains no GIMP code.

Versions, depths and compression

GIMP fileIn PhotoCraft
XCF versions 0 to 26 (GIMP 1.x to 3.2)Open. A newer version opens with a note, and parts the reader doesn't know are skipped
GIMP 2.10 and 3.x filesOpen. The real-file tests use GIMP 3.2.6; older versions are covered by tests built from the specification
8-bit integer8 bits/channel
16-bit integer16 bits/channel
32-bit integer16 bits/channel, with a note
16-bit (half), 32-bit and 64-bit floating point32 bits/channel float, values above 1.0 kept
Linear light precisionsOpen with a linear sRGB (or linear gray) profile, which replaces any profile the file had, with a note
RGB, grayscaleOpen as RGB or grayscale
IndexedOpen as RGB through the colour map, with a note
Uncompressed, RLE, zlib tilesAll open
.xcf.gz (or .xcfgz)Opens. .xcf.bz2 and .xcf.xz don't: decompress them first

PhotoCraft recognises an XCF by its signature, so a renamed XCF still opens as one.

Layers

In GIMPIn PhotoCraft
Pixel layers, any size and position (also off the canvas)Pixel layers at the same position
Layer groups, nested; Pass through groupsGroups; Pass Through groups
Names, visibility, opacityKept
Layer masks, applied or disabledLayer masks, enabled or disabled the same way
Lock alpha, lock pixels, lock positionLock transparent pixels, Lock image pixels, Lock position
A layer with no alpha channelA layer with Lock transparent pixels turned on
Colour tagsLayer colours. GIMP's brown tag has no match and is dropped
Text layersPixels, with a note. The text isn't editable
Vector layers and link layers (GIMP 3.2)Pixels, with a note
Non-destructive filters on a layer (GIMP 3)Not applied: the layer opens unfiltered, with a note
Floating selectionNot imported, with a note asking you to anchor it in GIMP first
Clipped layers saved by GIMPhotoClipping masks

Blend modes

GIMP's current modes and its legacy modes both map to Photoshop's, which PhotoCraft uses.

GIMP modePhotoCraft mode
Normal, Dissolve, Multiply, Screen, Overlay, Difference, Darken only, Lighten only, Divide, Hard light, Vivid light, Pin light, Linear light, Hard mix, Exclusion, Linear burn, SubtractThe same mode (Darken, Lighten and so on)
AdditionLinear Dodge (Add)
Dodge, BurnColor Dodge, Color Burn
Pass through (groups)Pass Through
Soft light, and the legacy Overlay that GIMP draws as soft lightSoft Light, with a note (GIMP's formula differs a little)
HSV Hue, HSV Saturation, HSL Color, HSV Value, LCH Hue, LCH Chroma, LCH Color, LCH Lightness, LuminanceHue, Saturation, Color or Luminosity, with a note (Photoshop's modes are HSL based, so the result differs)
Luma darken only, Luma lighten onlyDarker Color, Lighter Color, with a note
Behind, Grain extract, Grain merge, Color erase, Erase, Merge, SplitNormal, with a note naming the layer

Channels, selection and image settings

In the XCFIn PhotoCraft
Extra channelsAlpha channels in the Channels panel
The saved selectionThe active selection
GuidesGuides
ICC profileThe document's colour profile (except in linear light files, above)
ResolutionKept. If the vertical value differs, the horizontal one is used for both, with a note
Image commentA "Comment" entry in the document's text metadata
PathsNot imported. A note gives the count
Other parasites (GIMP stores Exif and XMP metadata this way), sample points, gridSkipped without a note

What doesn't come across, and how PhotoCraft tells you

When something is approximated or left out, the file still opens. The status bar says how many warnings there were, and a notice lists them, naming the layers each one applies to. With the command line, photocraft-cli convert prints each one as a warning: line, and photocraft-cli info lists them in its JSON output. The messages are in English in every interface language:

MessageWhat it means
is a text layer and opens as pixels (also vector and link layers)The layer looks right but can't be edited as text or paths
has N layer effect(s) (non-destructive filters) that are not appliedThe GIMP 3 filters on that layer are missing. Merge them into the layer in GIMP if you need them
is a floating selection and was not imported (anchor it in GIMP first)Anchor or turn the floating selection into a layer in GIMP and save again
uses GIMP's Grain merge mode, which opens as NormalThe mode has no Photoshop equivalent
N path(s) were not importedPaths aren't read yet. Upstream says they "could follow later"
GIMP composites this image in linear light; PhotoCraft composites in gamma-encoded RGB, so blends and soft edges differ slightlySee Why the file looks slightly different
N layer(s) use a mode GIMP clips to the layers beneath; …GIMP's "Clip to backdrop" hides those layers over transparent areas, and PhotoCraft shows them there
composites with Clip to layer, which is not reproduced (or Intersection)That GIMP composite mode isn't reproduced
the indexed image opens as RGBUse Image › Mode › Indexed Color to go back if you need it
32-bit integer samples open as 16-bitThe extra precision is lost
XCF version N is newer than this reader …A future GIMP file. Check the result carefully

Why the file looks slightly different

Upstream's docs list three GIMP defaults that Photoshop, and so PhotoCraft, doesn't have:

  • Linear light. Since 2.10, GIMP blends most modes and composites layers in linear light. PhotoCraft composites in the document's own encoding, as Photoshop does. In upstream's tests, a Multiply layer at 60% differed by up to 38/255 in one channel, and the edge pixels of anti-aliased text by up to 73/255. Layers whose blend space and composite space are set to RGB (perceptual) in GIMP match within 2.5/255.
  • Clip to backdrop. In GIMP, every mode except Normal shows nothing where the layers beneath are transparent. PhotoCraft shows the layer there. This only matters over transparent parts of the image.
  • Clamping order. For Addition, Subtract, Divide, Dodge, Burn and Linear light, GIMP applies a pixel's transparency before clamping and Photoshop clamps first. Opaque pixels at 100% opacity match. Semi-transparent ones can differ.

The approximated modes in the blend table also render differently.

How to open an XCF file

  • File › Open… (Ctrl+O, ⌘O on macOS). The file type menu has a GIMP entry for .xcf and .xcf.gz files.

  • Drag and drop. Drop the file on the tab strip, or anywhere in the window when no document is open, to open it in its own tab. Dropping it on the canvas of an open document places it into that document instead, as Photoshop does.

  • Open Recent works as for any file.

  • The command line. photocraft-cli convert and photocraft-cli info accept .xcf and .xcf.gz input:

    photocraft-cli info poster.xcf
    photocraft-cli convert poster.xcf poster.psd
    

    info prints the size, mode, depth, layer tree and warnings as JSON. The same reader serves the automation server's doc.open and the MCP tools; see MCP and CLI.

  • The online editor. It runs v0.16.0, and its File › Open… lists .xcf and .xcf.gz. Drag and drop works too. Nothing is uploaded: the file is read inside your browser.

An opened XCF has no file to save back to, so File › Save asks for a new name, just like Save As….

Convert XCF to PSD

  1. Open the .xcf with File › Open… or by dropping it on the window.
  2. Read the warnings. If text, filters or a floating selection matter, fix them in GIMP first (see Troubleshooting).
  3. Check the image against GIMP if blend modes or soft edges matter. The section above explains small differences.
  4. To keep the saved selection, choose Select › Save Selection… to store it as an alpha channel. A PSD has no place for an active selection.
  5. Choose File › Save As… (Ctrl+Shift+S, ⌘⇧S). For an XCF document the dialog suggests the same name ending in .psd, with the PSD Document type. Save.
  6. Open the PSD in Photoshop, or wherever it's going, and check it before you delete anything.

When Photoshop opens that PSD, it sees pixel layers (text included), groups, Pass Through groups, layer masks (disabled ones stay disabled), blend modes, opacity, visibility, locks, layer colours, alpha channels, guides, resolution and the colour profile, at 8, 16 or 32 bits. Layers that had no alpha channel in GIMP show Lock transparent pixels. The GIMP image comment isn't saved, and PhotoCraft warns free-form text metadata is not supported by PSD/PSB; it will be dropped. If you'll keep editing in PhotoCraft, save a .pcraft copy too: it keeps everything PhotoCraft holds.

A whole folder of XCF files

On the desktop, File › Scripts › Image Processor… is the simplest way. Pick the folder, set the format to psd, leave the width and height at 0 to keep the size, check the output folder (it defaults to a processed folder), and run it. Subfolders can be included. Its convert-to-sRGB option is on by default and turns grayscale files into RGB, so turn it off to keep them grayscale.

File › Automate › Batch… also picks up .xcf and .xcf.gz files, but it needs an action selected in the Actions panel, and its Format Same fails on XCF files because PhotoCraft can't write XCF. Choose psd instead.

From a terminal, loop over the files with photocraft-cli convert. Create the output folder first, because convert doesn't:

# macOS, Linux
mkdir -p psd
for f in *.xcf; do photocraft-cli convert "$f" "psd/${f%.xcf}.psd"; done
# Windows PowerShell
New-Item -ItemType Directory -Force psd | Out-Null
Get-ChildItem *.xcf | ForEach-Object { photocraft-cli convert $_.FullName "psd\$($_.BaseName).psd" }

convert refuses to write over its own input unless you add --in-place, which never applies here because each output is a new .psd in another folder. A .psd that's already there is replaced without asking, so run the loop into an empty folder if you want to keep earlier results.

Don't use photocraft-cli batch for this. In v0.16.0 its folder scan leaves out .xcf files, although upstream's XCF page lists it. Batch also needs an actions file.

XCF to PNG, JPEG, TIFF or OpenRaster

Use Save As… with another type, File › Export › Export As…, or photocraft-cli convert poster.xcf poster.png. Notes per format:

  • PNG, JPEG, WebP: a flattened image, rendered by PhotoCraft, so the composite differences apply. JPEG and WebP are 8-bit, PNG keeps 16-bit. If the image must match GIMP to the pixel, export the PNG from GIMP.
  • TIFF: flat by default. To keep the layers, accept the layered TIFF prompt in the app, or add --tiff-layers on the command line.
  • OpenRaster (.ora): keeps pixel layers, groups, names, opacity, visibility, locks and blend modes. Masks are applied to the pixels, and alpha channels, metadata and any profile other than sRGB are left out. Grayscale becomes RGB and 32-bit float becomes 16-bit. PhotoCraft lists each loss when you save.

All the formats are compared in file formats.

Saving back to GIMP

PhotoCraft can't write XCF, and Save As doesn't offer it. A save to .xcf from the command line fails with XCF is GIMP's own format and PhotoCraft only opens it; save as .pcraft to keep the layers, or export a flat image. For a round trip to GIMP, save a layered copy that GIMP imports:

FormatUse it whenWhat GIMP gets
PSDYou need layer masks, alpha channels, guides or 16-bitLayers, groups, masks and most blend modes. Photoshop-only features (adjustment layers, layer styles, smart objects, editable text) don't survive in GIMP, so rasterise them in PhotoCraft first if they matter
OpenRaster (.ora)You have a plain stack of pixel layers and groupsLayers, groups, opacity, visibility and blend modes, with masks already applied
PNG or TIFFYou only need the finished imageOne flattened image

Upstream tested its OpenRaster files with Krita but notes that GIMP files "have not been checked yet", so check the layers after GIMP opens them. Keep the original .xcf as your GIMP master. PhotoCraft never changes it.

Coming from GIMP

PhotoCraft follows Photoshop rather than GIMP, so a few habits change:

  • Saving. GIMP saves XCF and exports everything else. In PhotoCraft, Save As… writes PSD, PNG, JPEG and the rest directly, and File › Export has Export As… and Quick Export as PNG. PhotoCraft's own lossless format, the role XCF plays in GIMP, is .pcraft.
  • Tools. Tools are grouped in the toolbar under Photoshop's letters: V Move, M Marquee, L Lasso, W Magic Wand, B Brush, E Eraser, T Type, C Crop, and Ctrl+T (⌘T) for Free Transform. See the tools list and the shortcuts cheat sheet. Keys can be remapped in Edit › Keyboard Shortcuts….
  • Alpha channels on layers. GIMP's Add Alpha Channel has no counterpart. A layer that was opaque in GIMP opens with Lock transparent pixels on. Turn the lock off in the Layers panel before you erase it to transparency.
  • Mode names. Addition is Linear Dodge (Add), Dodge and Burn are Color Dodge and Color Burn, and Darken only and Lighten only are Darken and Lighten.
  • Color to Alpha. It's at Filter › Other › Color to Alpha…, one of the few filters PhotoCraft has that Photoshop doesn't.

For a broader comparison, including when GIMP is still the better choice, see PhotoCraft vs Photoshop, GIMP and Photopea.

Troubleshooting

"XCF: the file ends early (wanted 4 bytes at …)". If the offset is huge and the file comes from GIMP 3.2, it probably has link layers, whose length field GIMP can write four bytes short. v0.13.0 to v0.15.1 failed on these, and v0.16.0 opens them (#8857, #8865). Update PhotoCraft. If it still fails, the file may really be cut short: try opening it in GIMP.

"the canvas exceeds the 1 GiB pixel limit" or "the layers exceed the 1 GiB pixel limit". The reader decodes every layer, mask and channel into 32-bit floats and stops at 1 GiB in total. That's 16 bytes per pixel for a layer with transparency, 12 without, and 4 for a mask or channel. So the canvas can't pass about 67 million pixels (8,192 × 8,192), and a 4,000 × 3,000 image holds about five full-size transparent layers. Layers that are smaller than the canvas cost less. In GIMP, crop layers to their content, delete unused layers or merge some, then save again. Other limits: 300,000 pixels a side, 8,192 layers, 1,024 channels, and group nesting 64 deep (deeper layers move to the top level, with a note).

"unknown precision", "unknown compression" or "unknown layer type". The file uses something outside the specification the reader was written against, or it's damaged. Open it in GIMP and save it again, and if that doesn't help, report it upstream with a sample file.

.xcf.bz2 or .xcf.xz won't open. Only gzip is recognised. Decompress the file, or save it from GIMP as .xcf or .xcf.gz.

The image looks a little different from GIMP. That's usually linear light, Clip to backdrop or an approximated mode; see the explanation above. To match exactly, set the affected layers' blend space and composite space to RGB (perceptual) in GIMP, or merge those layers in GIMP, before you save.

A layer looks unfiltered. GIMP 3's non-destructive filters aren't applied. Merge the filters into the layer in GIMP and save again.

A layer is missing. It was probably a floating selection, which isn't imported. Anchor it or make it a new layer in GIMP.

Text can't be edited. GIMP text layers arrive as pixels. Retype the text with the Type tool (T) if you need to edit it.

Erasing or Color to Alpha won't make pixels transparent. The layer had no alpha channel in GIMP, so it opened with Lock transparent pixels on. Turn the lock off in the Layers panel. Color to Alpha refuses a locked layer.

A batch skips or fails every XCF. photocraft-cli batch leaves .xcf files out of its folder scan, so use a convert loop. In File › Automate › Batch…, pick a format other than Same.

More help is in Troubleshooting. For every other file type PhotoCraft reads and writes, see file formats.

Related guides

PhotoCraft vs Photoshop, GIMP and Photopea: an honest comparison

PhotoCraft compared with Photoshop, GIMP and Photopea: price, licence, PSD support, AI, plug-ins, automation and maturity, and who should try PhotoCraft today.

How to change PhotoCraft's language

Switch PhotoCraft's interface to Chinese, Japanese, Korean, Hindi or 16 other bundled languages without restarting, plus IME input tips and what stays in English.

PhotoCraft keyboard shortcuts cheat sheet

Every default PhotoCraft keyboard shortcut for Windows, Linux and macOS: menus, tools, spring-loaded tool keys, type formatting, brush size, opacity keys, layer navigation, and how to customise them.

PhotoCraft tools: the complete list

Every PhotoCraft tool in v0.16.0: all 67, grouped as on the toolbar, with each one's shortcut key, what it does, when it arrived and which are still limited.

PhotoCraft brushes and Photoshop .abr files

Use Photoshop brushes without Photoshop: import .abr files free in PhotoCraft, turn images into brush tips, and set up Brush Settings, pen pressure and presets.

PhotoCraft file formats: what it opens and saves

Which files PhotoCraft opens and saves: PSD/PSB, GIMP XCF, Affinity, Paint.NET, OpenRaster, Krita, SVG, HEIC, camera RAW, TIFF, WebP, EXR, FITS, DPX, DDS and more, with bit depths and limits.

PhotoCraft actions and Photoshop .atn files

Use Photoshop actions without Photoshop: load .atn files in PhotoCraft's free Actions panel, see which steps play, save sets back and batch whole folders.

Automate PhotoCraft with the CLI and MCP

Batch-convert PSDs with photocraft-cli and connect Claude Code, Claude Desktop or Cursor to PhotoCraft's open-source MCP server, with scoped file access.

PhotoCraft troubleshooting: crashes, install, display

Fixes for PhotoCraft crashes at launch, GPU and Wayland problems, pen pressure, saving errors and text bugs, plus where the logs are and how to report a bug.