All articles

How to Save a Single Frame From an Animated GIF

Right-click Save image as on an animated GIF downloads the whole moving file, not the frame you were looking at. Why converting it gives you frame one specifically, and how to get any other frame instead.

Disclosure: Save Image As Type is ours, and this blog is published by the same people. Anything said here about our own software is written by an interested party. Route 1 below is our own extension, and the honest limit is stated plainly: it always gives you the first frame, never a frame you pick. Route 2 is general-purpose tools we do not make, listed because they are the only way to reach a frame that is not the first one.

Why does saving a GIF never give you just the frame you want?

You are looking at an animated GIF - a reaction, a loop, a diagram that cycles through steps - and one specific frame is the one you actually want as a plain image: to drop into a slide, paste into a document, or use as a thumbnail. You right-click it, choose Save image as…, and get a .gif file that still moves. Opening it in an editor that does not play GIFs shows you whichever frame that editor happens to render for a still preview, which is not necessarily the one you were looking at either.

Nothing in that flow was built to answer “give me this one frame.” A GIF is not a picture with motion added on top - it is a small file format for storing a sequence of pictures, and saving the file means saving the sequence.

What a GIF file actually contains

The specification calls a GIF file a Data Stream, and a Data Stream can hold more than one image: “an unlimited number of images may be present per Data Stream.”[2] Each image sits behind its own Image Descriptor block, and each one can be preceded by a Graphic Control Extension whose Delay Time field “specifies the number of hundredths of a second to wait before continuing with the processing of the Data Stream.”[2] That is the entire animation mechanism: show image one, wait the delay, show image two, and so on through however many images the file declares - there is no video track, no interpolation, just a list of complete, separate images with a wait time between them.

So “the frame you’re looking at” genuinely exists as a distinct, complete image inside the file, at some position in that list. The problem is that nothing in a normal browser download exposes that list - it hands you the Data Stream whole, exactly as the server sent it.

Route 1: right-click, convert to PNG or JPG - and get frame one

Save Image As Type adds Save image as PNG (and JPG, WebP, AVIF) to the right-click menu on any image, including an animated GIF. Choosing one of those draws the GIF onto a canvas and re-encodes it as a single still image, which is exactly the operation “give me a frame as a plain PNG” needs. The catch is which frame it gives you.

The decode step every canvas-based converter uses is pinned by the HTML standard: “if this is an animated image, imageBitmap’s bitmap data must only be taken from the default image of the animation … or, if there is no such image, the first frame of the animation.”[1] A GIF has no separately declared default image, so this always resolves to the first frame - the same first image the Data Stream lists before any Graphic Control Extension has had a chance to introduce a delay. It is not a setting, and it is not affected by whichever frame happened to be playing on screen when you right-clicked. It is frame one, every time.

The extension does not pretend otherwise. Convert an animated GIF and a notification appears immediately after the save completes:

The animation was not saved. Only the first frame was saved as PNG.

with a Save the original instead button beside it, which writes back the untouched animated file from the bytes already fetched - no second download, no re-visiting the page. The button exists because “converted, then found out afterwards the motion was gone for good” is the actual failure mode a silent flatten produces. Here the motion is not gone; it is one click away.

If you only right-click once, there is also Save original file in the same menu, which skips conversion entirely and writes the animated GIF unchanged - useful when you already know you want the whole thing and would rather not see the notification at all.

The honest limit stands regardless of which button you use to get there: this route reaches frame one and only frame one. If the moment you want is three loops in, Route 1 cannot get you there - it was never built to pick a frame, it inherits whichever one the browser’s own decode step hands over.

Route 2: pick the exact frame with a frame extractor

Getting a frame other than the first means something has to walk the Data Stream and hand you each image separately, which needs a tool built for that specific job:

  • ffmpeg, on the command line: ffmpeg -i input.gif frame_%03d.png writes every frame out as its own numbered PNG, so you page through the folder and keep the one you want.
  • ImageMagick: magick input.gif frame_%03d.png does the same split (convert on older installs where magick is not yet the entry point).
  • An online frame splitter, such as ezgif.com’s GIF-to-PNG tool, if installing a CLI is overkill for one image. Upload the file, and it renders a thumbnail of every frame with its own download link. The file leaves your device for this one, which is the trade for not installing anything.
  • GIMP or Photoshop: opening a GIF imports each frame onto its own layer on a timeline, so you can hide every layer but the one you want and export just that.

This is a heavier step than a right-click, and it is the only route that answers “save frame from gif” when the frame in question is not the first one.

Which route should you use?

Diagram: an animated GIF can be right-clicked and converted to get frame one always, right-clicked and saved as the original to keep every frame moving, or run through a frame-splitting tool to get any frame you pick
One file, three different things you can walk away with.
RouteGets youWhich frameImage leaves your device
Right-click, Save as PNG/JPG/WebP/AVIFA still imageAlways frame oneNo
Right-click, Save original fileThe whole animated GIFAll of them, movingNo
ffmpeg / ImageMagick / a frame-splitter siteA still imageAny frame you pickOnly with an online tool

If the first frame is a fine representative of the GIF - a title card, a loop that starts on its punchline, a diagram’s opening state - Route 1 is a single click and never touches the network beyond what the page already sent. If you need a specific later frame, that is a real second job, and Route 2 is the right size for it. If you convert and realize you wanted the motion after all, the extension’s own notification undoes that mistake without asking you to find the page again.

The same first-frame limit applies to animated WebP for the identical reason - a PNG or JPG cannot hold motion, so a canvas decode of either format lands on one frame by the same spec rule. And if what actually brought you here is a file that will not open at all rather than one you want a still from, the WebP problem, end to end and saving an image as PDF without printing the page cover the other two shapes that complaint takes.

Sources

  1. HTML Standard, 8.11.2 The ImageBitmap interfacePrimary source

    That "if this is an animated image, imageBitmap's bitmap data must only be taken from the default image of the animation ... or, if there is no such image, the first frame of the animation" - the rule createImageBitmap() follows whenever a canvas-based tool decodes an animated source, GIF included. Read .

  2. GIF89a Specification (W3C)Primary source

    That "an unlimited number of images may be present per Data Stream" (section 20, Image Descriptor), and that the Graphic Control Extension's Delay Time field (section 23) "specifies the number of hundredths of a second to wait before continuing with the processing of the Data Stream" - together the mechanism an animated GIF uses to store and play back more than one image. Read .

Related reading

Title card reading "The WebP Problem: why your downloads will not open"

WebPJPG

The WebP Problem: Why the File Will Not Open, and the Fix

13 min read

Title card reading "How to Save WebP Images as PNG"

WebPPNG

How to Save WebP Images as PNG

4 min read

Title card reading "AVIF to JPG: How to Convert the File Without Uploading It"

AVIFJPG

AVIF to JPG: How to Convert the File Without Uploading It

8 min read