![]()
Drag and drop your static or animated WebP file. Upload up to 10 files for batch conversion.
Choose dithering method (Floyd-Steinberg for photos, none for pixel art), palette size (256 default), and transparency handling.
Click Convert and download your GIF file. Files are deleted from the server immediately after download.
Modern image format by Google. Up to 30% smaller than JPG with the same quality.
Classic format for simple animations. Supports transparency and up to 256 colors.
Apple photo format used by iPhone and iPad. High quality with small file size.
High Efficiency Image Format — same as HEIC, used on Apple devices.
Lossless format that preserves every pixel. Best for screenshots and logos.
Universal format for photos. Supported everywhere, great balance between quality and file size.
Uncompressed bitmap format. Maximum quality but very large file size.
Professional lossless format used in printing and photography.
Next-gen format with excellent compression. Up to 50% smaller than JPG.
Portable Pixmap format used in Unix/Linux environments.
High Dynamic Range format storing extended brightness data.
Flexible Image Transport System used in astronomy and science.
Portable Document Format. Convert PDF pages to JPG, PNG or WebP images.
Quick comparison to help you choose the right format
The downgrade is significant on every technical axis. WebP supports 16.7 million colors (24-bit RGB) with 8-bit alpha transparency (256 opacity levels). GIF is limited to 256 colors per frame from an indexed palette with only binary transparency — each pixel is either fully transparent or fully opaque.
File size increases dramatically. Animated WebP files are typically 64–75% smaller than equivalent animated GIFs, so the reverse conversion produces output roughly 3–4× larger. A benchmark comparing a 30-frame animation at 320×240 showed a 600 KB animated WebP becoming a 2400 KB GIF — a 4× increase. The visual quality drops because color quantization reduces smooth gradients to visible bands, and semi-transparent edges become hard jagged cutoffs.
This conversion exists for one reason only: compatibility with platforms that require GIF format specifically.
Animated WebP stores per-frame timing, disposal methods, and loop counts — all of which have GIF equivalents. Convertify reads each WebP frame, quantizes its 24-bit pixels down to a 256-color palette (using median-cut with optional Floyd-Steinberg dithering), thresholds the 8-bit alpha to binary transparency, and writes the result as a GIF89a frame with the original delay preserved.
Frame delays in WebP are stored in milliseconds; GIF stores delays in centiseconds (hundredths of a second). Convertify handles the conversion correctly — a 40 ms WebP frame delay becomes a 4 cs GIF delay (25 fps). Loop count transfers directly: infinite loop in WebP becomes loop=0 in the Netscape Application Extension block.
One caveat: browsers silently clamp GIF delays below 2 cs (20 ms) to approximately 10 cs (100 ms). If your WebP animation runs at 50+ fps, the GIF version will play noticeably slower.
Every frame of the WebP is reduced from 24-bit truecolor to an 8-bit indexed palette. The quantizer selects the optimal 256 colors using the median-cut algorithm, then maps every pixel to its nearest palette entry.
For photographic content with smooth gradients — skies, skin tones, product shots — this produces visible banding where continuous tones become staircase steps. Dithering helps: Floyd-Steinberg error diffusion scatters pixels of adjacent colors to simulate intermediate tones, making the output look smoother from normal viewing distance. The trade-off is file size — dithered frames compress poorly under GIF's LZW algorithm because the scattered pixels break the runs of identical values that LZW exploits.
For flat-color content (icons, pixel art, simple logos), the quantization is often invisible because the source already uses fewer than 256 distinct colors.
WebP supports full 8-bit alpha — 256 levels of opacity per pixel, enabling smooth anti-aliased edges and gradual fade effects. GIF supports only binary transparency: one palette index is flagged as transparent, and every pixel is either 100% transparent or 100% opaque.
Convertify thresholds alpha at 50% by default: pixels above 50% opacity become fully opaque, below 50% become fully transparent. Anti-aliased edges from WebP (soft transitions between subject and background) produce hard jagged outlines in the GIF. This is a fundamental format limitation with no workaround.
If the WebP will be displayed on a known background color, matte the edges against that color before conversion to minimize the visible halo effect.
Discord custom emoji must be GIF for animation — exactly 128×128 px, under 256 KB, maximum 50 frames. Slack custom emoji requires GIF, under 128 KB. GitHub and PyPI README files render animated GIF inline but do not support animated WebP. Microsoft Outlook desktop (all versions through current Microsoft 365) uses Word's rendering engine for HTML email and shows only the first frame of any animated image — but it displays GIF frame 1 reliably, while WebP is not rendered at all.
Forum software (phpBB, vBulletin, Discourse in some configurations) and legacy CMS platforms treat GIF as the only acceptable animated image format. Giphy and Tenor's entire ecosystem is built around GIF (though they serve MP4 behind the scenes).
For modern web pages where you control the delivery, keep WebP — it is smaller, sharper, and supported by 97% of browsers. Convert to GIF only for the specific platforms listed above.
The converted GIF will be large. Practical steps to reduce it: downscale resolution to 480p or lower (Giphy recommends 480p max), reduce palette to 128 or 64 colors (128 saves roughly 15–20% over 256 with minimal visible difference), lower frame rate to 10–12 fps instead of the source's 24–30 fps, and use Bayer dithering instead of Floyd-Steinberg (the ordered pattern compresses better under LZW).
If the GIF still exceeds your platform's size limit, the honest answer is: GIF is the wrong format for your content at that resolution and duration. Consider MP4 video (10–30× smaller than GIF at equal quality) or APNG (20–50% smaller than GIF with full 24-bit color).
For the best possible compression with animation support, try WebP to AVIF — but only if the destination supports it.
The Rust backend uses libvips to decode the WebP via libwebp, reading all animation frames with their timing metadata. Each frame is quantized to 256 colors using the median-cut algorithm with configurable dithering (Floyd-Steinberg default for photographic content, none for pixel art). Alpha is thresholded to binary transparency.
The GIF encoder writes GIF89a with Graphic Control Extension blocks for per-frame delays (converted from WebP milliseconds to GIF centiseconds), disposal method 2 (restore to background) as the safe default, and a Netscape Application Extension for loop count.
For static WebP input, the output is a single-frame GIF. Files stream to the HTTP response without temporary disk writes.