Saving & Exporting in GIMP - XCF, PNG, JPG, WebP
GIMP makes a strict distinction between saving (preserving your working file) and exporting (creating a deliverable image). Understanding this difference will save you from losing work and ensure your images are optimised for their intended use.
GIMP's Native .xcf Format - Why It Matters
The .xcf file format is GIMP's native working format, equivalent to Photoshop's .psd. When you save as .xcf, GIMP preserves everything: all layers in their original order, layer names, blend modes, opacity values, layer groups, text layers (with editable text and font information), channels, paths, guides, the undo history for the session, and any other GIMP-specific data. Nothing is flattened or discarded.
This is the file you keep on your computer as your "source of truth." An .xcf file is the version you return to when you need to make changes - Update the text, try a different colour, move an element. Always maintain an .xcf alongside any exported versions.
One limitation: .xcf files are not universally supported by other applications. You cannot email an .xcf to a client and expect them to open it in a web browser or viewer. That is what Export is for. The .xcf format is also typically much larger than an exported PNG or JPG because it stores all the raw layer data without lossy compression.
What .xcf Preserves
- All layers, groups, blend modes, and opacity
- Editable text (font, size, colour, spacing)
- Paths and selection channels
- Guides and grids
- Full precision (8/16/32-bit per channel)
- Image metadata and colour profile
What .xcf Does Not Do
- Cannot be displayed in a web browser
- Not supported by most image viewers
- Not suitable for sending to clients or printers
- Larger file size than web-optimised formats
- Not readable by most non-GIMP applications
File → Save vs File → Export As
GIMP intentionally separates the concepts of saving and exporting. This is a deliberate design choice to protect users from accidentally overwriting their working .xcf with a flattened JPG (which would destroy all layers permanently).
File → Save (Ctrl+S)
Saves the current state to the open .xcf file. If you have not yet named the file, GIMP opens a Save dialog. All layers, paths, and editing state are preserved. The title bar asterisk (*) that indicates unsaved changes disappears after saving.
Only works with .xcf format. If you try to save as any other format, GIMP redirects you to Export As.
File → Save As (Shift+Ctrl+S)
Saves a copy to a new .xcf filename. The working file switches to the new filename. Use this when starting a variant of your project.
File → Export As (Shift+Ctrl+E)
Exports the flattened visible image to any supported format: PNG, JPG, WebP, TIFF, GIF, BMP, PDF, and many more. A format-specific options dialog appears - For JPG you set quality (1–100), for PNG you set compression level (0–9), for WebP you choose lossy or lossless.
Export does not change your working .xcf file. The title bar continues to show the .xcf as the working document. You can export as many times as you like without affecting your layers.
File → Overwrite (Ctrl+E)
Re-exports to the same file you last exported to, using the same settings, without showing a dialog. This is the fastest way to update your exported image after making edits - Hit Ctrl+E each time you want to update the output file.
Recommended Workflow
Edit your image. Press Ctrl+S frequently to save your .xcf. When you are ready to deliver, press Shift+Ctrl+E once to set up the export. After that, press Ctrl+E for each subsequent re-export. Never use "Save" for your deliverable - Always use "Export As."
File Format Comparison
Choosing the right output format depends on the intended use: web, print, archiving, or animation. Each format has trade-offs between file size, quality, transparency support, and compatibility.
| Format | Best Use Case | Quality | Transparency | Animation | Relative Size |
|---|---|---|---|---|---|
| .xcf | GIMP working file | Lossless (full precision) | Full alpha | No | Very large |
| PNG | Web graphics, logos, icons, screenshots | Lossless | Full alpha | No (APNG with plugin) | Medium |
| JPG / JPEG | Photos for web and email | Lossy (adjustable 1-100) | None | No | Small |
| WebP | Web images - Best all-rounder | Lossy or lossless (adjustable) | Full alpha | Yes (animated WebP) | Smallest |
| TIFF | Print, archiving, professional press | Lossless | Full alpha | No | Large |
| GIF | Simple animations, flat-colour web images | Lossless (256 colour limit) | 1-bit (on/off) | Yes | Small–medium |
| Documents for print or sharing | Lossless or lossy | Full alpha | No | Variable | |
| BMP | Legacy Windows, uncompressed archiving | Lossless | Limited | No | Very large |
| HEIF / HEIC | High-efficiency photos (modern devices) | Lossy (high quality) | Full alpha | No | Very small |
Choosing Between PNG and WebP
For quick one-off conversions between formats, you can also use the online format converter tool. For new projects targeting modern web browsers, WebP is generally the better choice over PNG. WebP lossless is around 25-35% smaller than an equivalent PNG, and WebP lossy with high quality settings is almost indistinguishable from PNG at a fraction of the file size. All major browsers (Chrome, Firefox, Safari, Edge) have supported WebP since 2022. If you need to support very old software or systems, stick with PNG for lossless transparency.
When to Use JPG
JPG remains appropriate for photographs where you do not need transparency and file size is a priority - For example, images embedded in email newsletters or web pages where load time matters. Use a quality setting of 80-85% for a good balance of size and quality. Never re-save a JPG that was already a JPG, as each save cycle degrades the image further (generation loss).
Export Settings for Web
When preparing images for the web, two settings matter most beyond the format choice: colour space and metadata. Getting these right ensures your images look correct in all browsers and do not reveal unnecessary information about you or your equipment. Before exporting, make sure your image is cropped and scaled to the correct dimensions - See the guide on cropping and resizing.
Colour Profile: sRGB
Always export web images in the sRGB colour profile. Web browsers assume sRGB for untagged images, and even with tagged images most browsers only support sRGB rendering. If you have been working in a wide-gamut profile like Adobe RGB or ProPhoto RGB, convert to sRGB before exporting: go to Image → Color Management → Convert to Color Profile and choose sRGB. This step is often skipped, which results in washed-out colours when the image is viewed in a browser.
Strip Metadata
When exporting JPG or WebP, GIMP's export dialog includes an option to remove Exif metadata. Exif data can contain GPS coordinates (if the photo was taken on a phone), camera model, software name, and other personal data. For web publishing, consider checking "Remove Exif data" or the equivalent checkbox in the export options. PNG also supports metadata via the "Save Exif data" toggle in its export dialog.
Step-by-Step Web Export (PNG)
-
1Convert colour profile - Image → Color Management → Convert to sRGB if you have been working in a wide-gamut space.
-
2Scale to target resolution - Image → Scale Image. Set width and height in pixels. Use Cubic or Sinc (Lanczos) resampling for best quality.
-
3Export As - File → Export As (Shift+Ctrl+E). Type your filename with the desired extension (.png, .webp, .jpg).
-
4Set PNG options - In the PNG options dialog, set compression to 6 (good balance of speed vs size). Uncheck "Save Exif data" if you want to strip metadata.
-
5Click Export, then Export again on the confirmation. GIMP saves the file and returns to your working document.
Export for Print
Print production has requirements quite different from web. The most significant differences are colour space, resolution (DPI), and file format.
GIMP and CMYK
Professional print production typically requires CMYK colour mode, which GIMP does not natively support in its main interface. GIMP works in RGB. For professional print jobs requiring CMYK separation, export your image as a high-quality TIFF in sRGB or Adobe RGB, then convert to CMYK in a dedicated application such as Scribus or Inkscape with a colour profile, or hand the TIFF to your print provider for conversion. Many modern print services also accept sRGB TIFFs directly and perform their own CMYK conversion.
Resolution for Print
Print images need sufficient resolution - Typically 300 DPI (dots per inch) at the intended print size. You can quickly calculate the pixel dimensions you need using a DPI calculator. Set the resolution in GIMP via Image → Print Size. Note that changing the print size without resampling does not add new pixels; it only affects how many pixels are mapped to each inch when printed. To genuinely increase resolution, you need to upsample via Image → Scale Image at the same time as setting higher DPI, though this cannot recover lost detail.
Recommended Print Export Settings
- Format: TIFF (lossless, universally accepted by print providers and design software)
- Resolution: 300 DPI minimum; 600 DPI for line art and small text
- Colour depth: 16-bit per channel for maximum quality (GIMP supports this - Set via Image → Precision)
- Colour profile: Embed the sRGB or Adobe RGB profile; do not strip it for print files
- Compression: LZW or None in TIFF options; both are lossless
Overwrite vs Export As
Once you have set up an export for the first time using File → Export As, GIMP remembers the destination file and format. From that point on, you can use File → Overwrite (Ctrl+E) to instantly re-export to the same file without any dialog. This is the keyboard shortcut to memorise if you export frequently.
Use Export As when you want to change the filename, format, or export options. Use Overwrite for iterative updates to the same output file during an editing session.
Batch Export Overview
When you need to process and export many images with the same settings - Resizing a folder of photos to web thumbnails, converting a directory of PNGs to WebP, or applying a watermark to 100 files - Batch processing is the answer.
GIMP provides two main routes for batch work. The built-in Script-Fu Console (Filters → Script-Fu → Console) accepts commands in a Scheme-based scripting language and can loop over multiple files programmatically. Learn more in the full Script-Fu scripting and automation guide. For a more visual approach, the free plugin BIMP (Batch Image Manipulation Plugin) adds a proper batch GUI to GIMP where you define a list of operations and run them against a folder of images.
For command-line batch processing, the GIMP team also provides gimp-script-fu-eval and gimp-2.99 --no-interface --batch options that let you run GIMP non-interactively in automated pipelines, such as a build system or web server image processing job.
File Size Comparison by Format
The chart below shows approximate file sizes for the same 2400 x 1600 px photographic image exported in different formats. Sizes vary significantly depending on image content (a photo with complex texture will be larger than a flat-colour graphic), but the relative ordering is consistent.
Approximate File Sizes - Same Image in Different Formats
Example: 2400 x 1600 px photographic image. XCF and TIFF sizes depend on layer count; PNG/JPG/WebP represent the flattened export. JPG at quality 85, WebP at quality 85 lossy setting.
| Format | Typical Size | Compression Type | Size vs PNG |
|---|---|---|---|
| .xcf (multi-layer) | ~8 MB | None (raw) | 4x larger |
| TIFF | ~6 MB | LZW lossless | 3x larger |
| PNG | ~2 MB | DEFLATE lossless | Baseline |
| JPG (quality 85) | ~400 KB | Lossy DCT | 5x smaller |
| WebP (quality 85) | ~300 KB | Lossy VP8 | 6-7x smaller |
How to Crop & Resize Images in GIMP
Master cropping with fixed ratios, scaling with correct resampling, and resizing images for every major social media platform.
Read next →