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 the values you already know.
Fine-tune the options to match your scenario.
Read the result and use it in your planning or reporting.
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 rate, 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 Estimatorwidget 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"></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">AltFTool — free online tools</a></p>