Initializing... drag & drop files here
Supports: XCF
.xcf projects from your computer. Batch upload is supported, so you can flatten and export many layered files in one pass.XCF is GIMP's native project format — released alongside GIMP in December 1997 — and it preserves layers, channels, paths, masks, selections, guides, and metadata so you can keep editing later. BMP (the Microsoft Device Independent Bitmap format, often called DIB) is the opposite: a single flattened raster grid documented by Microsoft's Win32 GDI APIs since the early Windows era. Converting flattens everything XCF tracks down to one pixel array that almost any Windows tool can decode without a codec.
.ico builder, BMP avoids the lossy artifacts you'd get from JPEG and the gamma surprises you can hit with PNG.| Property | XCF (.xcf) |
BMP (.bmp) |
|---|---|---|
| Maintainer | GIMP project (open-source) | Microsoft (Windows GDI) |
| Released | December 1997 | Windows 2.0 era (BITMAPCOREHEADER); BITMAPINFOHEADER with Windows 3.1x/NT |
| Layers / channels / paths | Preserved | Flattened to a single raster |
| Compression | RLE; zlib internal compression since GIMP 2.10 (XCF v4) | None (BI_RGB) by default; optional RLE4 / RLE8 for 4-bit and 8-bit images; BITFIELDS for 16/32-bit |
| Bit depths | 8/16/32-bit per channel (since GIMP 2.10) | 1, 2, 4, 8, 16, 24, 24-bit, 32 bits per pixel |
| Transparency | Full per-layer alpha and masks | Only via 32-bit BMP with BITMAPV4HEADER/BITMAPV5HEADER (since Windows 95) |
| Editable in GIMP | Yes — round-trip safe | No — flattened bitmap only |
| Native Windows viewer | No | Yes (Photos, Paint, IrfanView, every Win32 GDI app) |
| Typical file size | Medium (with zlib) | Large — uncompressed RGB grids dominate |
| Software that opens XCF | GIMP, Krita, Photopea, Chasys Draw IES; partial in ImageMagick / IrfanView | Universal on Windows; macOS Preview and most image tools |
| Preset (xconvert UI) | What you get | When to pick it |
|---|---|---|
| Very High | 24-bit uncompressed RGB (BI_RGB) | Archival masters, embedded splash screens, anything that needs zero artifacts and no decoder dependency |
| High (default) | 24-bit uncompressed | General-purpose Windows interchange; the safest pick if you're unsure |
| Medium | Reduced palette / 8-bit indexed when applicable | UI sprites, icons, tilesets where 256 colors is fine |
| Low / Lowest | Aggressive palette reduction toward 1-bit / 4-bit | Black-and-white masks, minimal-memory devices, fax-grade scans |
If you also need to control output dimensions, the "Image resolution" panel accepts a percentage scale, common video resolutions as presets, or exact Width x Height in pixels.
No. BMP has no concept of layers, masks, or channels — it's a single flat raster grid. xconvert renders the visible composite of your XCF (the same image you'd see when you toggle "View > Show All" in GIMP and apply each layer's blend mode and opacity), then writes that composite as one BMP. If you need to keep editable layers, export to a layered format such as TIFF (with layers) or PSD instead, or keep your .xcf master and convert a copy.
Only if the BMP is written as 32-bit. The BMP format supports alpha through the BITMAPV4HEADER and BITMAPV5HEADER structures Microsoft added with Windows 95, but a lot of older Win32 viewers ignore the alpha channel and render whatever sits in those bytes as opaque. If reliable transparency matters, prefer XCF to PNG — PNG's alpha support is universal across modern viewers.
Default BMP is uncompressed: file size scales with width x height x (bits per pixel / 8) plus a small header. A 4000 x 3000, 24-bit BMP is roughly 36 MB regardless of how busy or empty the picture is. XCF, especially since GIMP 2.10's zlib-compressed v4 format, can be far smaller for the same image because flat color regions compress well. If size is a concern, choose a Medium or lower Quality preset for an indexed-palette BMP, or convert to XCF to JPG for a lossy-compressed alternative.
PNG, in almost every case. PNG is lossless, smaller (it uses DEFLATE), supports full RGBA, embeds gamma and color-profile data, and is supported everywhere from browsers to embedded boards. BMP is the right answer when you specifically need a Win32 GDI-friendly raster, a microcontroller framebuffer dump, or compatibility with a tool that documents BMP as its only input. Otherwise reach for XCF to PNG.
Yes — the converter renders the composite the way GIMP's own export-to-PNG/BMP pipeline would, applying each layer's blend mode, opacity, and masks before writing pixels. If a layer is hidden in the XCF (eye icon off in GIMP), it won't appear in the output. Toggle visibility in GIMP and re-save the XCF first if you want hidden layers included.
Yes. Drop a whole folder of .xcf files into the upload area; each one is converted with the same Quality and Resolution settings and you get a zip of the BMPs at the end. This is useful when you've been authoring a sprite sheet or wallpaper set across dozens of GIMP files.
Standard BMP encoders, including the one this converter uses, write 8-bit-per-channel pixels (24-bit RGB or 32-bit RGBA). Microsoft's BMP spec does describe 16 and 32 bits per pixel, but those are packed RGB layouts, not 16-bit-per-channel HDR. If you authored your XCF in GIMP 2.10's high-bit-depth mode and need to keep that precision, convert to TIFF instead — TIFF supports 16-bit-per-channel cleanly.
The rasterization itself is lossless when you use the High or Very High preset (24-bit uncompressed BMP). What you lose is editability — layers, paths, channels, and any GIMP-specific metadata are dropped. Lower Quality presets that reduce the palette to 256, 16, or fewer colors are lossy in the color-quantization sense, similar to saving an indexed PNG or GIF.
Yes. macOS Preview, Finder thumbnails, GIMP itself, ImageMagick, and almost every Linux image viewer read BMP. The format is "device-independent" by design — that's literally what the DIB acronym stands for — so portability isn't an issue. The historical caveat is very old DIBs that use BITMAPCOREHEADER (OS/2 / Windows 2.0 era), which some modern viewers handle imperfectly; the converter writes BITMAPINFOHEADER, the variant every modern decoder supports.