Does Figma Compress Images? I Measured the Exports

Does Figma compress images? Not on import under 4096px. Exports grew my 4.13 MB photo to 10.78 MB as a JPG and 19.60 MB as a PNG. Dated test.

By Mike Wiberg · · 15 min read

Does Figma compress images? Not in the direction anyone expects. On 2026-07-18 I placed a 4.13 MB iPhone photo into Figma and exported it twice through the standard export panel. The JPG came back at 10.78 MB, 160.8% larger than the original. The PNG came back at 19.60 MB, 374.4% larger. Figma never shrank the photo once, and it stripped the EXIF metadata both times.

Does Figma Compress Images? What My Two Exports Measured

Figma grew my photo on both exports, by margins that surprise anyone who assumes export means optimize. The direction and the size of the change came entirely from the output format I picked, not from any hidden optimizer working behind the canvas.

My test, 2026-07-18 Went in Came out Change
iPhone photo, exported as JPG 4.13 MB at 4032x3024 10.78 MB at 4032x3024 160.8% larger
iPhone photo, exported as PNG 4.13 MB at 4032x3024 19.60 MB at 4032x3024 374.4% larger

The reference file and the method

The file is the same reference photo I run through every platform in this series for the hub on which apps compress your images: a real iPhone photo, 4,332,705 bytes, 4032x3024 pixels, JPEG, with its EXIF metadata intact. I placed it into a Figma design file, exported it once as JPG and once as PNG through the standard export panel at its defaults, and measured both downloads on disk.

The scope of the claim

One file, one day, one account, one upload path. These numbers prove what Figma did to that photo on 2026-07-18 and nothing more. A different path in the same product can behave differently. The second reference file in this series, a transparent PNG cutout, was not measured on Figma, so this page makes no claims about what Figma exports do to transparency.

What the numbers actually say

Neither export touched the dimensions: 4032x3024 in, 4032x3024 out, both times. Both exports stripped the EXIF metadata, the hidden block where the camera writes GPS coordinates, the phone model, and the capture time. And both exports produced a much larger file than the phone did. So does Figma compress images? At export it re-encodes, and for this photo, re-encoding meant growth.

Does Figma Compress Photos When You Import Them?

Not below the pixel cap, as far as anything I measured or Figma documents shows. Figma states that images can be up to 4096 pixels in each dimension, and anything larger is scaled down proportionally until the longest side fits, with the caveat that some file metadata may be lost during that resize. Below the cap, your original bytes are kept as the maximum quality source for everything that follows.

My photo is 4032 pixels on its long side, 64 pixels under the ceiling. The import step left it alone, and the exported dimensions matching the source exactly is consistent with that. If your camera shoots wider than 4096 pixels, and most current phone and mirrorless cameras do, the downsample will fire on import and Figma does not document which algorithm it uses.

One more mechanism worth knowing: Figma does not store your image as a loose file. It becomes an image fill on a rectangle, stored by content hash, and Figma keeps two resolution variants of anything over 512x512 so it can load the light one when you are zoomed out. That is a performance system, not a compression system. Importing a photo under the cap costs you nothing. Exporting is where the rewrite happens.

Why Clipboard Paste Looks Worse Than Place Image

Pasting an image from the clipboard compresses and scales it before it lands in your file. Placing the same image keeps the original bytes. Users have been asking Figma for a way to paste screenshots without compression, and the fact that it lives as a feature request tells you the paste behavior is intended, not a bug.

The fix costs one keystroke. Use File, then Place Image, or Shift+Cmd+K on a Mac and Ctrl+Shift+K on Windows. Placing hands Figma the file on disk. Pasting hands it whatever your operating system squeezed onto the clipboard, which for screenshots and copied browser images is often already a degraded copy.

If a screenshot looks soft the moment it hits the canvas, before any export, the paste path is almost always the reason. My test photo went in through Place Image, which is why the import step stayed clean.

Why Did Figma Make My Photo Bigger?

Because every export is a fresh encode of the canvas, and Figma's encoders make different choices than your phone's. There is no passthrough. The export panel renders the frame and writes a brand new file in the format you chose, and both of the formats I tested wrote more bytes than the hardware encoder in an iPhone does.

The JPG case: a phone writes its JPEGs through a hardware encoder tuned hard for storage, because it expects you to keep thousands of photos. Figma re-encoded the same pixels at its default High quality and kept far more per-pixel data than the source encode did. Same dimensions, same visible photo, 2.6 times the bytes.

The PNG case is the bigger trap. PNG is a lossless format built on DEFLATE compression, which preserves every pixel value exactly and is wonderful for graphics, logos, and screenshots. Photographs are the worst case for it. Push a lossy phone JPEG into a lossless container and the file balloons, which is the whole story of why PNG files are so large. Mine hit 19.60 MB.

A bigger file is not a better photo. The quality ceiling is the file you uploaded, and no export can add detail the original never had. The 10.78 MB JPG contains nothing the 4.13 MB original lacked. When the destination needs a small file, let the export finish, then compress the exported photo and pull the quality slider until the size fits. Choosing the number yourself beats hoping an export panel chooses it for you.

File Size on disk Versus original
Original iPhone photo, JPEG 4.13 MB baseline
Figma JPG export 10.78 MB 160.8% larger
Figma PNG export 19.60 MB 374.4% larger
One photo in, three sizes out 4.13 MB iPhone photo, exported from Figma at default settings Original 4.13 MB JPG export 10.78 MB PNG export 19.60 MB Measured 2026-07-18. Same source file, standard export panel, default settings. Bar length proportional to bytes.

What Figma Changes: Size, Format, Dimensions, and EXIF

In my test, Figma preserved the pixel grid, rewrote every byte, followed my format choice, and dropped the metadata. Here is the full inventory for one photo through two exports.

What Original photo After my Figma exports
File size 4.13 MB 10.78 MB as JPG, 19.60 MB as PNG
Dimensions 4032x3024 4032x3024, unchanged
Format JPEG whatever the export panel is set to
EXIF metadata present stripped, in both exports

The EXIF result deserves its own paragraph, because Figma's documentation does not give you this answer. The official docs mention metadata loss only for the over-4096 resize, and say nothing about what a normal export keeps. My measured answer, for one file on one day: both exports stripped EXIF entirely. GPS coordinates, camera model, capture time, all gone. That is a quiet privacy win if you share exported photos, and a real loss if you are a photographer who needs the shooting data, so keep your original.

Most of what gets called figma image compression online is really this pair of behaviors: a full re-encode whose size depends on your format pick, plus a metadata strip that nobody documents.

The Figma Export Settings That Decide Your File Size

The export panel has four levers that matter: format, quality level, resampling, and scale. Every byte of the difference between my two exports came from the first lever alone, so learn what the other three do before you blame the tool.

JPG and PDF quality levels

JPG and PDF exports offer three named quality levels, High, Medium, and Low, with High as the JPG default and Medium as the PDF default. Figma does not publish what percentage or quantization each label maps to, so the only way to know what High costs in bytes is to export and measure, which is exactly how this page got its numbers.

PNG has no quality dial

The image quality setting does not appear for PNG, because PNG is lossless by definition. The size lever for a PNG export is pixel dimensions, not quality. If a PNG export is too heavy, export smaller, pick JPG instead, or compress the file afterward.

Image resampling: Detailed versus Basic

Since early 2025 the advanced export settings include an image resampling choice. Detailed, the current default, is bicubic: it averages surrounding pixels, which flatters photos and gradients. Basic is nearest neighbor: it copies the single closest pixel, which is the correct choice for pixel art and hard-edged icons. If your pixel art comes out fuzzy, this default is why, and switching it back is the fix.

Scale, DPI, and the export math

Export dimensions come from the frame size on the canvas, not from the original image's resolution. A 3200 pixel photo shown in a 1600 pixel frame exports at 1600 pixels at 1x and 3200 at 2x. Figma's base export is 72 DPI, so 4x gets you 288 DPI, not 300. For true 300 DPI print output you need a custom scale near 4.17x, and for the deeper resolution mechanics see the guide on reducing image resolution.

Do Figma Compression Plugins Actually Work?

They compress exports, but every number in their listings is the vendor's own, and no page ranking for this query has independently tested one. Here is the honest state of the three plugins people actually install.

Plugin Its claim The catch
TinyImage Compressor exports up to 95% smaller freemium, the deep features are paid
Image Compressor batch compresses image fills user comments report some files coming back larger
Figma Image Compressor free up to 80% smaller .fig exports vendor figure, no independent test

TinyImage Compressor is the incumbent, with roughly 517,000 users and format conversion to WebP, AVIF, and progressive JPEG built in. That adoption is a real signal, and the creator actively answers support threads. It is still a paid tool making its own marketing claims, and the comment threads across all three plugins surface real complaints: occasional empty exports, and compressed images that came out larger than they went in.

My take as someone who builds compression tooling: a plugin makes sense when you need to shrink dozens of image fills inside the design file itself. If you only need the final export smaller, compressing after export does the same job with nothing installed and no file access granted.

How to Keep Figma From Bloating Your Exports

Five habits cover almost every case, and none of them needs a plugin.

  1. Place, never paste, when quality matters. File, Place Image keeps the original bytes; the clipboard path pre-compresses them.
  2. Pre-shrink anything over 4096 pixels before import, so an undocumented downsampler never touches your file. Do it yourself and you pick the algorithm.
  3. Match the format to the content: JPG for photographs, PNG for flat graphics and screenshots. The decision table lives in PNG vs JPG, and picking wrong is how a 4 MB photo becomes a 19.60 MB download.
  4. Switch resampling to Basic for pixel art and hard-edged icons, and leave Detailed for photos.
  5. Compress the download before it goes anywhere. Exports are a starting point, and the difference between lossless and lossy handling is explained in lossy vs lossless compression.

How Figma Compares to Canva, Slack, and Discord

Figma is the only platform in my test series so far that grew the photo in every export I ran. The same 4.13 MB reference photo has now been through design tools, chat apps, and cloud drives, and the pattern is clean: design tools re-encode, storage tools pass through.

Platform, same 4.13 MB photo Result Change
Figma, JPG export 10.78 MB 160.8% larger
Figma, PNG export 19.60 MB 374.4% larger
Canva, JPG export 2.34 MB 43.5% smaller
Canva, PNG export 18.21 MB 340.7% larger
Slack 4.58 MB 10.9% larger
Discord 497 KB 0.3% smaller
Google Drive 4.13 MB byte identical

The Canva contrast is the interesting one, because both are design tools that re-encode everything. Canva's JPG export cut the photo by 43.5% while Figma's grew it by 160.8%, which means Canva's default encoder is tuned lean and Figma's is tuned rich. Both PNG exports ballooned, because that is physics, not policy. The full Canva breakdown, including what its exports did to a transparent PNG, is in does Canva compress images.

Ask does figma compress images next to its neighbors, and the answer lands in a strange spot: it is the platform in this series most likely to hand you back a bigger file than you gave it.

Questions

Does Figma compress photos on upload?

Not below 4096 pixels on the longest side. Under that cap, Figma stores your original bytes untouched and uses them as the quality source for every export. Over the cap, it downsamples proportionally and warns that some metadata may be lost. My 4032 pixel test photo imported with no measurable change.

Does Figma reduce image quality?

Not at import, below the pixel cap. At export, the format decides: PNG re-encodes losslessly, so pixels survive intact, while JPG applies lossy compression at the chosen quality level. In my test both exports kept every pixel dimension and grew the file, so visible quality survived while size ballooned. Blur usually traces to the source or the paste path, not the encoder.

Why is my image blurry on Figma?

The usual suspects, in order: the image was pasted from the clipboard instead of placed, the source file was low resolution to begin with, or the frame is smaller than the display size you are judging it at. Figma also shows a lighter preview when zoomed out. Re-import with Place Image and export at 2x before deciding anything is wrong.

How do I export high quality images from Figma?

Place the image rather than pasting it, keep the source under 4096 pixels so nothing gets auto-resized, and export photos as JPG at High or graphics as PNG. Set the scale so output pixels match your real target size, and leave resampling on Detailed for photos. Quality is capped by the file you imported, so start with the best source you have.

Does Figma strip EXIF data from images?

The documentation only says metadata may be lost when an oversized image is resized on import. My 2026-07-18 test gives a measured answer for a normal export: both the JPG and PNG exports stripped EXIF completely, including GPS location, camera model, and capture time. Treat exports as metadata-free copies and archive the original if you need the shooting data.

Pick the File Size on Purpose

Figma answered the question backwards: my photo went in at 4.13 MB and came out at 10.78 MB or 19.60 MB, depending on a dropdown. If the destination is a website, an upload form, or an inbox, the export is where the work starts, not where it ends. Drop the export on the photo compressor and set the output yourself: it is free for up to 30 images at a time at 25 MB each, so even that 19.60 MB PNG fits, it it strips EXIF by default, and uploads are deleted within the hour. The wider method, resize first, then compress, then check the result, is in the full guide on how to compress images.