Initializing... drag & drop files here
Supports: XCF
XCF (eXperimental Computing Facility) is GIMP's native project format, first released December 1997 and the default save format since GIMP 2.8 in 2012. It preserves every layer, channel, path, guide, and selection — perfect for editing, useless for distribution because almost no consumer software opens an XCF. SWF (Small Web Format) is Adobe's Flash container; Adobe ended Flash Player support on December 31, 2020, but SWF lives on through Ruffle, the open-source emulator written in Rust that now plays ~99% of ActionScript 1/2 content and ~90% of ActionScript 3 content as of 2026. Converting XCF → SWF wraps GIMP artwork in a self-contained Flash file for the legacy and archival contexts where SWF is still the required deliverable:
swfcombine, png2swf) chains SWFs together. An XCF converted to SWF drops straight into those workflows..swf.For modern web, social, and signage delivery instead use XCF to MP4, XCF to WebM, or XCF to GIF — SWF is appropriate only when the receiving system specifically requires Flash.
| Property | XCF | SWF |
|---|---|---|
| Full name | eXperimental Computing Facility | Small Web Format (orig. ShockWave Flash) |
| Media type | Layered raster project file | Multimedia / animation container |
| First released | December 1997 (GIMP) | 1996 (FutureWave / Macromedia / Adobe) |
| Native software | GIMP | Adobe Flash Player (EOL Dec 31, 2020) |
| Stores layers / paths / guides | Yes — full editability preserved | No — flattened on encode |
| Vector support | No (raster only) | Yes (SWF's original strength) |
| Animation | None (no time dimension) | Yes (timeline + ActionScript) |
| Audio | No | Yes (MP3, ADPCM, Nellymoser) |
| Browser playback in 2026 | None | Via Ruffle extension (Chrome, Firefox, Edge) or self-hosted Ruffle.js |
| Typical file size | 5-50 MB per layered project | 100 KB - 5 MB per slideshow |
| Modern recommended? | Yes — for editing in GIMP | No — use MP4/WebM unless legacy required |
| Setting | What it controls | When to pick it |
|---|---|---|
| Quality Preset — Very High (recommended) | Encoder targets visually lossless output | First choice for archival masters and Newgrounds uploads |
| Quality Preset — Medium | Balanced visual quality / file size | Web embeds where bandwidth matters but visuals lead |
| Quality Preset — Lowest | Aggressive compression | Quick proof-of-concept, internal review SWFs |
| Target file size (%) | Encoder hits a percentage of the source size | Matching an existing SWF's footprint in a swap-out |
| Specific file size (MB) | Hard size cap | LMS uploaders or CDNs that enforce a per-asset ceiling |
| Constant Bitrate (CBR) | Fixed bitrate every second | Legacy streaming servers that expect predictable rate |
| Variable Bitrate (VBR) | Bitrate flexes with scene complexity | Default for archive-quality storage |
| Constant Quality (CRF) | Encoder holds a quality level, size varies | When visual quality must not drop, size is secondary |
| Constraint Quality | CRF capped by a maximum bitrate ceiling | Mixing quality target with a bandwidth limit |
Adobe officially ended Flash Player support on December 31, 2020, and Chrome, Firefox, Edge, and Safari removed the NPAPI Flash plugin shortly after. SWF playback in 2026 runs through Ruffle, an open-source emulator written in Rust. As of 2026, Ruffle implements 99% of ActionScript 1/2 (81% of the API) and 90% of ActionScript 3 (77% of the API), with browser extensions for Firefox and Chromium-based browsers and desktop builds for Windows 7+, macOS 10.13+, and Linux. SWFs converted from XCFs (no scripting, just flattened images) sit firmly inside the AS1/2-class content Ruffle handles best.
No — XCF layers are flattened on import. Each XCF becomes one rendered frame composed of all visible layers merged top-to-bottom with their layer modes and opacities applied; hidden layers are skipped. If you want each layer as its own SWF frame, export your layers separately from GIMP first (File → Export As… one PNG per layer), then assemble them with PNG to MP4 and convert downstream — or use SWFTools' png2swf locally for direct PNG-to-SWF stacking.
XCF is a raster format — pixels, not paths — so the SWF that comes out wraps bitmap frames inside the Flash container, not native Flash vector shapes. SWF's original strength was vector animation, but converting from a raster source can't invent paths. For true vector SWFs draw directly in Adobe Animate, Synfig Studio, or export GIMP paths to SVG and use SWFTools' swfc to compile.
Yes. Newgrounds runs Ruffle in-browser for all SWF submissions, the Internet Archive's emulator viewer wraps SWFs in Ruffle automatically, and BlueMaxima's Flashpoint (an offline preservation collection of ~150,000 Flash works) plays SWFs through both Ruffle and a packaged copy of the original Flash projector. A flattened-image SWF from this converter falls inside the AS1/2-class content all three platforms support best.
MP4 in nearly every case. MP4 (H.264) plays natively in every browser, every iPhone and Android, every smart TV, and on every social platform — see XCF to MP4. SWF only makes sense when the receiving system explicitly requires Flash: a Newgrounds submission, a legacy LMS that imports .swf, a museum kiosk built around a Flash player, or asset replacement in an archived Flash game. For everything else MP4 is smaller, more compatible, and isn't dependent on a third-party emulator for playback.
Output duration = number of XCFs × Image Duration. 30 XCFs at 4 seconds each = 120 seconds (2 minutes). 60 XCFs at 1/24 second = 2.5 seconds of cinematic playback. Reorder files in the upload list before clicking Convert — the Duration applies uniformly to every uploaded XCF.
Each flattened XCF is scaled to fit inside the chosen output resolution while preserving its source aspect ratio. Empty area is padded with the Background Color you picked (letterbox bars top/bottom for tall sources in a wide frame, pillarbox bars left/right for wide sources in a tall frame). For consistent results, normalize XCFs to a common canvas size in GIMP (Image → Canvas Size) before uploading.
No — this converter writes a silent, script-free SWF: just the flattened frames inside a Flash container. SWF supports audio (MP3, ADPCM, Nellymoser) and scripting (AS1/2/3), but adding either requires an authoring tool. Open the converted SWF in Adobe Animate (formerly Flash Professional) or JPEXS Free Flash Decompiler to attach a soundtrack or script timeline events.
GIMP has never shipped a native SWF exporter — the Save format is XCF and the Export As dialog (introduced in GIMP 2.8, October 2012) targets raster formats like PNG, JPG, GIF, TIFF, and WebP. The historical workflow was: export each XCF as PNG, then run png2swf from SWFTools on the command line. This converter collapses that two-step pipeline into one upload — pick a duration, pick a quality preset, click Convert.
Yes — common XCF outputs on xconvert include XCF to JPG (flat photo), XCF to PNG (lossless with transparency), XCF to GIF (animated loop), XCF to PDF (multi-page document), XCF to MP4 (universal video), XCF to MOV (Apple-friendly video), and XCF to WebM (modern web video). To go the other direction and pull frames out of an existing SWF, see SWF to MP4 or SWF to GIF.