LOCAL FILE WORKSPACE

WebP to GIF

On your device
01 / SOURCEWEBP

Drop one WebP here or paste a WebP file.

All file processing stays in your browser. Your file is not uploaded.

No file selected.

Checking browser support…

Convert WebP to GIF on your device

Choose, drop or paste one static or animated WebP. Convert, inspect the GIF preview and download. Static inputs produce one still frame; animated inputs retain their frames in source order. No login, registration, added watermark or saved history. No URL imports, cloud imports or multiple-file batches.

Timing that GIF can actually represent

WebP stores frame durations in integer milliseconds. GIF stores unsigned 16-bit centiseconds: each output delay is input milliseconds divided by 10. This tool accepts only multiples of 10 ms from 0 to 655,350 ms per frame. A 15 ms delay is rejected, not rounded to 20 ms. It does not duplicate or drop frames to approximate timing. Zero and short stored delays are retained, although players may clamp them.

After encoding, the generated GIF is parsed again. Download is withheld unless frame count, every stored delay, dimensions and translated loop instruction match. The browser also decodes the generated GIF and checks its frame count. Validation does not promise identical colors or identical playback behavior in every viewer.

Same plays, different loop numbers

WebP ANIM records total plays. GIF records repeats after the first play. WebP 0 becomes GIF 0 for infinite playback. WebP 1 becomes no GIF loop extension, meaning one play. A finite WebP value N greater than 1 becomes GIF repeat value N − 1. The number changes because the fields mean different things; the intended number of plays stays the same. Static WebP receives no loop extension.

Color and transparency trade-offs

The browser decodes each frame with its compositing history. The local writer stores a complete canvas per frame with a fixed 216-color RGB palette. Colors are quantized and can visibly change. Fully transparent pixels remain transparent. Partially transparent pixels are composited onto white before quantization; smooth alpha edges cannot be retained by GIF. Each output frame clears before the next full canvas.

Dimensions stay unchanged. No audio, EXIF, ICC profile, XMP or comments are copied. This is not a lossless image conversion or a compression guarantee. Output may be much larger than the WebP. GIF cannot recover detail already lost in the input.

Supported files and browser limits

Static lossy or lossless WebP and animated WebP are accepted when the browser supplies WebP and GIF ImageDecoder, workers and OffscreenCanvas. Unsupported browsers display an error and cannot convert. Try current Chrome if a capability is missing; support is checked on your device.

No fixed input-byte ceiling is imposed. Browser memory limits usable files. Safety limits are 4,096 pixels on either side, 2,000 frames and 100 million decoded frame pixels. Processing stops after two minutes. Even a small encoded file may exceed decoded memory limits. Invalid, truncated or timing-incompatible input yields no download.

Native browser codecs and an original local GIF writer perform conversion. No conversion service is contacted. Engine source packages and licenses remain available with the site. File names and file content are not sent to analytics.

Single-run measurement · October 11, 2026

Source: clock.webp uploaded by qazmlpok in Pillow issue 9790. This is a public user attachment, not a built-in tool sample. One local Chrome run produced these readings; they are not averages or a promise for other files or devices.

Input bytesGIF bytesFramesPixelsTime
323,720336,56258 → 58800 × 8003.120 s

The downloaded GIF was independently decoded with Pillow. All 58 delays matched in order; both files store infinite playback (loop 0). Total stored duration: 30,000 ms. The GIF is larger than the WebP. Encoding uses the fixed 216-color palette described above; these timing checks do not establish identical pixels.

Frequently asked questions

Does animated WebP stay animated?

Yes, when its stored delays can be represented exactly. Its frames are kept, with no interpolation or frame reduction. A static source stays static.

Why is my conversion blocked?

The status reports the failed check. A delay that is not a multiple of 10 ms cannot be stored exactly in GIF. This tool refuses export instead of changing it silently.

Will the GIF be smaller?

Not necessarily. Full-canvas GIF frames and a different encoding can increase file size. Inspect the actual byte reading.

Can I convert in the other direction?

Convert GIF to APNG or WebP, Resize GIF dimensions, Crop GIF edges or Reduce GIF size.

Where are the timing specifications?

See the WebP container specification and GIF89a specification.