SlimGIF

GIF to APNG

Drop one GIF here or paste a GIF file.

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

No file selected.

Checking browser support…

Convert GIF to APNG or animated WebP

Choose one local GIF and select a format. Preview the converted animation and download the encoded file. No login, registration, added watermark or saved history. No URL imports, cloud imports or multiple-file batches.

Same animation, different loop fields

The loop panel reads the GIF extension and calculates the output field. No loop extension means one play: output play count 1. GIF value 0 means infinite playback: output 0. A finite GIF repeat value N means the initial play plus N repeats. APNG num_plays and WebP ANIM loop count are written as N + 1. This is a format translation, not a measured playback promise. Players can ignore loop instructions.

WebP has a 16-bit play-count field. GIF repeat value 65535 requires 65536 plays and cannot be represented by this WebP writer. Choose APNG instead. That WebP export is rejected rather than silently changing the loop.

Where each frame delay goes

Every GIF frame remains one output frame in source order. Its stored centisecond delay becomes APNG delay_num / delay_den with denominator 100. WebP stores the same delay as integer milliseconds. No fixed-frame-rate copies or motion interpolation are needed. Zero and short delays remain stored; viewers can clamp them, so observed playback speed may differ.

What is preserved, and what changes?

The browser decodes each GIF frame with its disposal and compositing history. Each output frame is a complete canvas, replacing the previous output frame without blending. Original dimensions and decoded transparency are retained. APNG uses PNG compression on decoded pixels. WebP uses the browser's lossy color encoder at quality 0.92; colors and edges can change, while alpha is retained.

Conversion cannot restore colors, smooth alpha edges or detail lost in the GIF. Full-canvas frames may make the result larger. No smaller-size or visual-improvement promise is made. Comments, palette structure and other metadata are not copied. Neither format contains audio. Some destinations reject animated PNG or WebP. APNG downloads use .apng.

Supported inputs and practical limits

GIF87a and GIF89a inputs require GIF ImageDecoder and canvas PNG encoding. Animated WebP also requires native canvas WebP encoding. Unavailable options are disabled; unsupported browsers cannot convert. Try current Chrome if a capability is missing.

No fixed input-byte ceiling is imposed: usable size depends on browser memory. Safety limits reject more than 2,000 frames or 100 million decoded frame pixels. Processing stops after two minutes. Decoded frames and output require memory; a small input can still be too large to decode. Errors produce no download.

Native browser codecs and a local container writer perform conversion. No conversion API is called. Existing engine source and license files remain with the site. Cloudflare Web Analytics records website statistics; GIF content is not sent to analytics.

Frequently asked questions

Is GIF to WebP available here?

Yes, if your browser supports WebP encoding. Select animated WebP, convert and download the .webp file. It is an animated container, not a renamed GIF.

Will APNG improve the source quality?

No. Lossless encoding preserves decoded frames; it cannot recreate missing detail. WebP color encoding here is lossy.

Why does the finite loop number change?

GIF records repeats after the initial play. Output formats record total plays. GIF repeat value 2 becomes play count 3. Infinite playback stays 0.

Can I get separate PNG images?

Extract PNG frames, Crop GIF edges, Resize GIF dimensions, Cut GIF duration, Reverse GIF playback or Reduce GIF size.

Where are the output specifications?

Read the PNG animation specification and WebP container specification for play counts and timing.