Initializing... drag & drop files here
Supports: HEIC
This walk-through is for anyone who needs a HEIC photo wrapped inside a legacy SWF (Shockwave Flash) file — usually to feed an old Flash-based authoring tool, kiosk, or animation timeline that still expects .swf input. Read the honesty note first: SWF is a dead playback format, so most people land here by mistake and actually want HEIC to MP4 instead. The conversion holds your still HEIC image on screen for a fixed duration with no motion and no audio, then encodes it into a Flash movie.
SWF is Adobe Flash. Adobe stopped supporting Flash Player on December 31, 2020 and began blocking Flash content from running on January 12, 2021 (Adobe end-of-life notice). Every major browser pulled Flash in early 2021 — Chrome around January 19 and Firefox around January 21 — so a .swf file will not play in Chrome, Firefox, Edge, or Safari today, and there is no plugin to re-enable.
Only pick SWF if a specific tool requires it — for example importing a still into an older Adobe Animate / Flash Professional timeline, or supplying an asset to legacy courseware or signage software that has not been migrated. If you simply want a short video clip of your photo that plays everywhere, stop here and use HEIC to MP4; for a looping animated image use HEIC to GIF. HEIC itself is the HEVC-encoded still format Apple iPhones have shot by default since iOS 11 (2017), which is why it so often needs converting before older software will read it.
.heic photo onto the page or click "+ Add Files". You can queue several photos at once; each is processed with the same settings..swf. Files are uploaded over an encrypted connection, processed on our servers, and deleted automatically a few hours after conversion — no sign-up, no watermark, never shared.Because the output is one motionless still, "duration" is the only timing decision that matters, and the right value depends entirely on what will consume the SWF:
The duration list runs from 1/60, 1/30, 1/24, 1/10, 1/5, 1/3, and 1/2 of a second up through 1 to 10 whole seconds, so you can match an existing frame rate (1/24 ≈ one film frame) when you need the SWF to drop cleanly into a 24 fps timeline.
The dropdown labels each fractional value with the frame rate it corresponds to, which makes matching a timeline straightforward:
| Duration setting | Frames it fills at 24 fps | Best for |
|---|---|---|
| 1/60s (single frame at 60fps) | Under one | Dropping a still into a 60 fps timeline as a single frame |
| 1/30s (single frame at 30fps) | Under one | A single frame in a 30 fps NTSC-style timeline |
| 1/24s (single frame at 24fps) | Exactly one | The cleanest import into a 24 fps film-rate Animate timeline |
| 0.1s (single frame at 10fps) | About 2 | A brief flash or transition element |
| 0.2s (5fps) / 0.3s (3.33fps) | About 5 / 7 | Short beats in a sequence of stills |
| 0.5 seconds (2fps) | 12 | A quick slate you will stretch on your own timeline |
| 1 second per frame | 24 | The practical default for importing into an editor |
| 2-4 seconds per frame | 48-96 | A caption or title card someone needs to read |
| 5 seconds per frame (default) | 120 | Placeholder and test assets; the shipped setting |
| 6-10 seconds per frame | 144-240 | A standalone kiosk or signage hold before the loop restarts |
| Property | SWF (this page) | GIF | MP4 |
|---|---|---|---|
| Status | End of life since 2020 | Alive, universally supported | Alive, the default video format |
| Plays in a modern browser | No | Yes | Yes |
| Plays without extra software | No — needs Ruffle or a Flash projector | Yes | Yes |
| Audio track | No | No | Yes (silent here, since a photo has none) |
| Colour depth | Full colour | 256 colours per frame | Full colour |
| Loops by itself | Depends on the host player | Yes | Depends on the player |
| Import into a current video editor | Generally not supported | Yes | Yes |
| Typical reason to choose it | A Flash-dependent tool demands .swf |
A looping image for chat or a forum | Anything you want to share or play |
| xconvert page | this page | HEIC to GIF | HEIC to MP4 |
If the destination software has already dropped Flash support, no HEIC-to-SWF conversion will help: a modern browser, video editor, or web embed will not play .swf at all. In that case convert to a living format instead — HEIC to MP4 for a shareable video clip, or HEIC to GIF for a looping image. If you have inherited an old SWF and only need its content in a usable form, go the other direction with SWF to MP4. Reserve HEIC-to-SWF for the narrow case where a still-Flash-dependent toolchain genuinely demands SWF input.
Because browsers no longer run Flash. Adobe ended Flash Player support on December 31, 2020 and blocked Flash content on January 12, 2021, and Chrome and Firefox both removed Flash in early 2021. A valid .swf produced here will still open in the Ruffle emulator, the Adobe Flash Player Projector, or the legacy Flash authoring tool you are targeting — just not in a normal browser tab.
No. A HEIC is a single still photo, so the conversion holds that one frame on screen for the duration you choose. There is no audio track and no movement. If you want motion or a loop, HEIC to GIF or HEIC to MP4 is the better fit.
A short value works best — 1 second, or 1/24 of a second to match a 24 fps timeline. Animate then has to ingest only a frame or two, and you can extend the still on your own timeline. Long durations like 10 seconds only make sense for standalone kiosk loops.
No — it is one of the worst choices, because the format itself is end-of-life and unsupported in browsers. For long-term storage keep the original HEIC, or convert to a widely supported still like HEIC to JPG or HEIC to PNG. Reserve SWF for feeding a tool that still explicitly requires Flash input.
You can queue multiple HEIC files, and Advanced Options exposes a merge strategy ("Merge images" versus one video per image). In our testing the merge path is best treated as a basic fixed-duration sequence, not a transition-rich slideshow — for an actual shareable slideshow with reliable playback, build it as HEIC to MP4 instead, since SWF output can only be viewed through an emulator.
Flash Video (Sorenson Spark) is the shipped default, and MJPEG is the other codec the SWF container accepts on this page — both are Flash-era codecs, because SWF never carried anything modern. With a single motionless still as input, the choice barely affects how the image looks: a held frame compresses cleanly either way, and the difference shows up in file size rather than sharpness. Leave it on the default unless the tool you are feeding specifically asks for motion-JPEG frames.
No. A HEIC straight off an iPhone can carry EXIF (capture date, GPS coordinates, camera model, orientation), an embedded depth map, and the Live Photo pairing to a short video clip. The SWF holds only the decoded picture — everything else is dropped when the still is encoded into a video stream. Keep the original HEIC alongside the SWF if any of that metadata matters, because there is no way to recover it from the Flash file afterwards.
Yes, if you leave Video resolution set to "Keep original" — the SWF then uses the HEIC's native pixel dimensions. Choosing a smaller fixed or preset resolution downscales the image, and forcing a different aspect ratio adds a background-color fill around it.