Extract images from Fig, on your device. Nothing ever uploads.

Drop up to 20 Figma .fig files below — get the document preview and every embedded image out byte-for-byte, exactly as stored. Download each image, or all of them as a ZIP.

  • Your file data never leaves the device
  • Figma .fig, hash-labelled images
  • Batch up to 20 files + ZIP
  • Original bytes, sequential ZIP names

Extract images from Figma files

Add your Figma files

Drag & drop Figma files here

or browse your files · you can also paste from clipboard (Ctrl+V)

A .fig is a ZIP package — canvas.fig is the fig-kiwi scene graph (not decoded), meta.json carries the document name, thumbnail.png is the 512×512 preview render, and the embedded images live under images/ keyed by SHA-1 hash — read on this device with JSZip, the document preview first, then the embedded images in archive order, each labelled with its hash, and canvas.fig, meta.json, fonts/, __MACOSX and hidden entries skipped. Every image downloads byte-for-byte, exactly as stored — no re-encoding, no quality loss. Embedded images are PNG, JPEG, GIF, WebP, SVG, AVIF, BMP or TIFF by their magic bytes. DOCX/XLSX/PPTX, Sketch and XD files, PDFs and CBZ/CBR archives are refused with a pointer at the right tool or fix.

    No files yet. Everything stays on this device. Downloads start instantly.

    Privacy you can verify, not just trust

    Most online Figma tools upload your files to their servers first — and some keep a download link live for 30 days, or cap free conversions at a few per month. This one can't: each image is pulled out of your file bytes entirely in your browser. Your file data never leaves the device — the only third-party requests are the site's own analytics, which count page views — and it uploads nothing, ever. There is no file fetched after load for the extraction itself. Don't take our word for it:

    New cross-origin requests during use: 0
    1. Press F12 to open developer tools, then the Network tab.
    2. Extract any file above. Watch: apart from the site's analytics, nothing new is requested — no uploads, and no file data ever leaves your device.
    3. Extra credit: disconnect your internet after this page loads — extraction still works.

    How to extract images from a Figma file without uploading it

    Every "free" online Figma tool you've used uploads your file to a company server, extracts it there, and — in several documented cases — keeps a copy or a live download link for days, or limits free users to a few conversions a month. For client work, unreleased designs, or artwork you simply wouldn't post publicly, that's an unnecessary risk. The safer approach is to extract the file where it already is: on your own device.

    This tool does exactly that. When you drop a .fig here, your browser:

    1. Checks the file is really a Figma .fig file — by its magic bytes, not its name — so a JPEG renamed .fig is refused with a clear message, a PDF renamed .fig is refused with a pointer at the Extract Images from PDF tool, a DOCX renamed .fig is refused with a pointer at the Extract Images from DOCX tool, an XLSX renamed .fig is refused with a pointer at the Extract Images from XLSX tool, a PPTX renamed .fig is refused with a note that it is a presentation, a Sketch file is refused with a pointer at the Extract Images from Sketch tool, an XD file is refused with a pointer at the Extract Images from XD tool, a CBZ or plain .zip renamed .fig is refused with a pointer at the CBZ tools, a Figma Make file is refused as a different format, and a password-protected archive is refused with an explanation instead of a cryptic error. A real .fig saved with the wrong extension still extracts.
    2. Reads the file's own structure and pulls the images in archive order — thumbnail.png is the 512×512 preview render saved inside the file, and the embedded images live under images/ keyed by SHA-1 hash, so the document preview comes first, then the embedded images in archive order, each labelled with its hash. canvas.fig, meta.json, fonts/ and macOS entries are skipped, and everything skipped is listed on the file card.
    3. Hands you the originals — download one image and it keeps its stored identity (an embedded image downloads as its SHA-1 hash plus its detected extension; thumbnail.png keeps its name); download the file as a ZIP and every image is renamed image-01, image-02 and so on in extraction order. Nothing is re-encoded, rasterized or resized at any point: the bytes you download are the bytes that were stored in the file.

    What makes this extractor different

    Most pages that top the results for this search convert on a server, or handle one file at a time with no previews — instead of handing you the images themselves. The desktop options are installs, not browser tools. This page does the simpler job, and does it fully in the browser: no upload, no monthly cap, no account, no 10 MB limit, a batch of 20 files, the document preview first with hash-labelled originals in archive order, original identity on per-image downloads, sequential names in the ZIP, and a live network-request counter so you can verify the privacy claim yourself.

    Honest limitations

    Verbatim means verbatim — no quality recovery

    JPEG throws away detail when it compresses, and extracting cannot put it back. But nothing is lost either: the source bytes download unchanged, in every format. There is no quality setting because there is nothing to re-encode.

    The document preview is a snapshot at export time

    thumbnail.png is the 512×512 preview render saved when the file was exported — not a live re-render, and not an original. If the file was edited after its last export without re-exporting, the preview shows the older state.

    Metadata stays in the files

    Extraction copies the stored bytes, so EXIF and other metadata inside each image is kept — including location data, if the image has any. The file's own parts are skipped, and listed on the card, but the images themselves are untouched. Strip metadata yourself before sharing an image publicly.

    No editable design, no text

    Extraction cannot restore the editable design — only Figma reassembles that. This tool pulls out images only: it does not extract the document's text, and images linked from outside the file are never inside it to extract.

    No frame labels — hash labels only

    Frame and page labels are not available: the mapping from images to frames lives inside canvas.fig, the binary scene graph, which this page does not decode — so each image is labelled with its SHA-1 hash instead of a frame name. The 512×512 document preview usually makes it easy to tell which image is which.

    Embedded images carry no filenames

    Figma stores embedded images under bare SHA-1 hashes (images/<hash>), not filenames — so a per-image download is named after its hash plus its detected extension. The ZIP names (image-01, image-02, …) are the readable way to keep the images in extraction order.

    Frequently asked questions

    Do my files upload anywhere?

    No. Your Figma files are extracted entirely in your browser — your file data never leaves the device, and the only third-party requests are the site’s own analytics, which count page views. You can verify it yourself with the network-request counter in the privacy section below the extractor.

    What is a .fig file, and how is it different from .xd and .sketch?

    A .fig file is a Figma design document — a ZIP package holding canvas.fig (the scene graph in a binary format called fig-kiwi), meta.json (the document name and export details), thumbnail.png (a 512×512 preview render) and the embedded images under images/, keyed by SHA-1 hash. An XD file is also a ZIP package, but with a different layout (a manifest listing the artboards and a JSON scene graph per artboard, with images under resources/). A Sketch file is also a ZIP package, with a meta.json index, pages stored as JSON, and images under images/. This page reads Figma .fig files; for an XD file, use the Extract Images from XD tool, and for a Sketch file, use the Extract Images from Sketch tool.

    Why are the images named after long hashes?

    Figma stores embedded images under images/ keyed by their SHA-1 hash — a 40-character fingerprint of the image bytes — with no filename and no extension, so two copies of the same image are stored once. This page keeps that identity: a per-image download is named after its hash plus its detected extension, for example a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2.png. ZIP downloads use sequential names (image-01.png, image-02.png, …) in extraction order, which are easier to read.

    Why can’t I see which frame or page each image came from?

    The mapping from images to frames lives inside canvas.fig, the scene graph, which is stored in a binary format called fig-kiwi — this page does not decode it, so it cannot say which frame an image belongs to. The images come out in archive order, each labelled with its SHA-1 hash, starting with the document preview. The 512×512 preview shows the whole document, which usually makes it easy to tell which image is which.

    What about password-protected Figma files?

    Figma itself has no password protection for .fig files, so a protected archive is not a plain .fig file — this page refuses it with a clear message instead of asking for a password. Open it with the password in the program that made it and save an unprotected copy, then extract that. A Figma Make file is also refused: it is a different format (its canvas.fig starts with “fig-makee”), not a design .fig.

    Document preview vs the original images — what is the difference?

    thumbnail.png is the 512×512 preview render of the whole document that Figma saves inside every .fig at export time — one picture of the finished design. The images under images/ are the individual embedded originals, one per image in the file, in archive order. This page hands you the preview first, then each original, so you can reuse the finished picture or the separate assets.

    Are the images re-encoded, or do I get the originals?

    You get the originals. Every image downloads byte-for-byte exactly as stored in the file — no re-encoding, no rasterization, no quality setting, no quality loss. Per-image downloads keep the stored identity (an embedded image downloads as its SHA-1 hash plus its detected extension; thumbnail.png keeps its name); ZIP downloads use sequential names (image-01.png, image-02.png, …) in extraction order.

    Does extraction keep metadata like EXIF location data?

    Yes. Extraction is verbatim, so EXIF and other metadata inside each image is kept — including location data, if the image has any. The file’s own parts are skipped and listed on the card, but the images themselves are untouched. Strip metadata yourself before sharing an image publicly.

    What should I do with a DOCX, XLSX or PPTX file?

    A DOCX is a Word document, an XLSX is an Excel workbook and a PPTX is a PowerPoint presentation — all three are ZIP archives like a .fig, but with a different layout, so this page refuses them. For a DOCX, use the Extract Images from DOCX tool, which reads Word documents the same way this page reads Figma files. For an XLSX, use the Extract Images from XLSX tool. A PPTX is a presentation, not a design file — open it in PowerPoint and export its pictures from there. A Sketch file is also refused here — use the Extract Images from Sketch tool for that.