About this tool
Estimate GIF file size from dimensions, frame count and palette size, and see what fits inside an upload limit.
GIF file size is driven by four things: pixel count, palette depth, frame count and how much of each frame changes. This estimator combines the exact container overhead defined by the GIF89a specification — a 6-byte header, a 7-byte logical screen descriptor, a colour table of 3 × 2ⁿ bytes, a 19-byte Netscape looping block, plus 20 bytes and a sub-block prefix per frame — with a modelled figure for the LZW-compressed pixel data. It also works backwards, telling you how many frames or how many pixels wide the animation can be and still land inside a 1 MB, 5 MB or 15 MB upload limit.
Open GIF Size Budget Estimator on AltFTool — it loads instantly in your browser.
Enter Width, Height, Frames and Palette colours (2–256), or tap a preset such as 640×360.
Pick a Size budget from Email-friendly at 1 MB up to Large upload at 15 MB, set Content type and how much changes per frame, and say whether Dithering is on.
Read the Estimated file size with its ±40% range, plus the frame count and pixel width that still land inside the budget.
Header, screen descriptor, colour table, per-frame blocks and sub-block prefixes are taken from the GIF89a spec, not guessed.
Gives the frame count and the pixel width that fit a chosen budget, using a binary search that is exact to the pixel.
LZW output depends on the picture, so the estimate is shown as a range of roughly ±40% rather than a single confident number.
Multiply width × height × bits per pixel ÷ 8 to get the raw indexed bytes for one frame, apply a compression ratio for the kind of content, and repeat for each frame — but only for the part of the frame that changes, since encoders store just the changed rectangle after the first frame. Then add the fixed container and per-frame overhead.
256 per palette, because each pixel is an index into a colour table of at most 2⁸ entries. The palette is always rounded up to a power of two, so a 100-colour image still uses 7 bits per pixel and a 128-entry table of 384 bytes.
Cut the dimensions first — size scales with the pixel count, so halving both width and height removes about three quarters of the data. After that, reduce the frame count (frame rate alone doesn't shrink a GIF — it only changes playback speed, unless dropping it also drops frames), then cut the palette, then turn dithering off, which alone typically removes around a quarter of the compressed size because dithering adds noise that LZW cannot match.
Most often because the encoder is not doing frame differencing, so every frame is stored in full, or because the source is grainy video where LZW finds almost no repeated runs. Setting the motion profile to 'full frame changes' and the content to 'grainy video' will reproduce that worst case.
Add the GIF Size Budget Estimator widget to your blog or website — free, responsive, no signup. Just keep the “Widget by AltFTool” credit link visible.
<iframe src="https://www.altftool.com/embed/widget/gif-size-budget-estimator"
title="GIF Size Budget Estimator — free AltFTool widget"
width="100%" height="640" style="border:0;border-radius:12px;overflow:hidden"
loading="lazy" referrerpolicy="no-referrer-when-downgrade" allow="clipboard-write"></iframe>
<p style="font-size:12px;margin:4px 0 0">Widget by <a href="https://www.altftool.com/tools/all/gif-size-budget-estimator?utm_source=embed&utm_medium=widget" rel="nofollow">AltFTool — free online tools</a></p>