Skip to content

Make GIF from Photos on Windows: 3 Methods

Make a GIF from photos on Windows with GetCompress, Photos prep, or FFmpeg. Sort frames, set fps, resize, and palette-encode for Teams loops.

By Petr Samokhin

Design hands you a short PNG or JPEG sequence for a storyboard, UI state flip, or before/after loop. The Teams thread wants a GIF, not a PDF sheet. You need matching frame sizes, a readable fps, and a palette encode so gradients do not band. Keep unreleased product shots on your PC instead of uploading them to a random converter.

When a photo GIF makes sense

Good fitBetter as something else
5 to 15 frame storyboardMP4 slideshow with music
UI state sequencePrototype video from a design tool
Short flipbookLong photo album
Frame countTypical fps
3 to 52 to 4 (hold each shot)
6 to 124 to 8
12+8 to 10 max

GIF caps at 256 colors per frame. Photo skin tones and skies band quickly if you skip the palette step. For motion that already exists as video, see video to GIF on Windows . To shrink a finished GIF, see compress GIFs on Windows .

Method 1: GetCompress

Best for: Previewing the loop, fixing frame order, and exporting a width/fps preset without PowerShell globs.

GetCompress GIF settings with quality, dimensions, and format options for animated GIF export
  1. Drop a folder of PNG or JPEG frames into GetCompress .
  2. Sort order in the queue if filenames are inconsistent.
  3. Set width (often 640 or 800 px for Teams) and fps.
  4. Preview the loop, then export GIF.

Save a preset such as “storyboard GIF 800w 4fps” when your team ships the same frame count each project. If banding persists, reduce width or frame count, or export MP4 when the channel allows it.

Method 2: Prepare frames in Photos

Best for: Cleaning oversized exports before any GIF encode.

  1. Export every frame at the same width and height from your design tool.
  2. Name files in sort order: frame-001.png, frame-002.png, and so on.
  3. Resize oversized frames in Photos or Paint to the target width (often 800 px for Teams).
  4. Store frames in a dedicated folder without spaces in filenames.
Export width from designTarget for Teams GIF
4000 px canvasScale to 800 px wide
1920 px artboard800 or 960 px wide
640 px componentKeep width

Use PNG for flat UI with text. Use JPEG for photo-heavy sequences when slight loss is acceptable before GIF encoding.

If design used inconsistent names, batch rename in PowerShell before FFmpeg:

$i = 1
Get-ChildItem *.png | Sort-Object Name | ForEach-Object {
 Rename-Item $_.FullName ("frame-{0:D3}.png" -f $i)
 $i++
}

Limitation: Photos and Paint prepare stills. They do not assemble the animated GIF by themselves.

Method 3: Build a GIF with FFmpeg

Best for: Exact palette flags and repeatable PowerShell recipes.

winget install --id Gyan.FFmpeg -e

Numbered PNG frames:

ffmpeg -framerate 4 -i frame-%03d.png `
 -vf "scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" `
 -loop 0 storyboard.gif

JPEG folder with a glob:

ffmpeg -framerate 3 -pattern_type glob -i 'frames/*.jpg' `
 -vf "scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" `
 -loop 0 slideshow.gif
LeverSmaller GIFClearer panels
-framerate2 to 3Hold readable shots
scale width640 px800 to 960 px
Frame countFewer framesKeep only needed states

Check Explorer file size after export. If the GIF still exceeds the upload cap, re-run at 640 px and 3 fps before you drop frames.

Limitation: You maintain the commands. Messy filenames break glob patterns.

Which method should you use

SituationStart here
Preview, presets, or messy filenamesGetCompress
Oversized design exportsResize in Photos, then Method 1 or 3
Exact palette flags or scriptsFFmpeg

When MP4 is the better loop

Ask whether Teams or the doc tool accepts MP4 before you fight palette banding. Clipchamp can also build a short MP4 slideshow when GIF quality is unacceptable.

GetCompress fits when you ship storyboard GIFs often and want preview before palette limits hit. Keep source frames in frames-src\ and write GIF output to gif-out\. For stills outside GIF work, see how to compress images on Windows .