Make GIF from Photos on Windows
Make GIF from photos on Windows with FFmpeg: sort frames, set fps, resize, and palette encode, or use GetCompress for preview and batch export.
Design handed you twelve PNG frames for a micro-interaction storyboard. The client wants a looping GIF for Teams, not a PDF sheet. You could drop frames into a slide deck, but the thread asked for motion. Building a GIF from still photos means setting frame rate, resizing to display width, and running a palette pipeline so gradients do not band. Processing locally keeps unreleased product shots off random upload sites. Marketing and design teams that ship storyboard loops each sprint benefit from one saved preset instead of rebuilding PowerShell commands per campaign.
When a photo slideshow GIF makes sense
GIF from photos works for short loops: storyboard walkthroughs, before/after sequences, loading-state mockups, and event photo highlights under ten frames.
| Good fit for photo GIF | Better as another format |
|---|---|
| 5 to 15 frame storyboard | MP4 slideshow with music |
| UI state sequence from exports | Prototype video from Principle |
| Short meme-style flipbook | Long photo album |
GIF caps at 256 colors per frame. Photo sequences with skin tones, skies, and shadows need palette tuning or they band fast. See lossy vs lossless compression when you choose between palette quality and file size.
| Frame count | Typical fps |
|---|---|
| 3 to 5 frames | 2 to 4 fps (hold each shot) |
| 6 to 12 frames | 4 to 8 fps |
| 12+ frames | 8 to 10 fps max |
For motion from actual video, see video to GIF on Windows instead of stacking stills. For shrinking the finished GIF, see compress GIFs on Windows .
Ask whether MP4 works before you spend an hour on palette flags. A Ken Burns MP4 from the same JPEG sequence is often smaller and sharper for doc tools that accept video.
Prepare your photo sequence
Consistent frame size produces cleaner loops. Mixed dimensions force FFmpeg to scale or pad, which adds artifacts.
- Export every frame at the same width and height from your design tool.
- Name files in sort order:
frame-001.png,frame-002.png, and so on. - Resize in Photos or Paint if exports are oversized for the target channel.
| Export width from design | Target for Teams GIF |
|---|---|
| 4000 px canvas | Scale to 800 px wide |
| 1920 px artboard | 960 or 800 px wide |
| 640 px component | Keep width |
Use PNG for flat UI frames with text. Use JPEG for photo-heavy sequences when slight loss is acceptable and you need smaller source files before GIF encoding.
Remove duplicate frames at the end of the sequence when the loop should restart cleanly. The first and last frame should match visually for seamless loops, or accept a visible jump.
Store frames in a dedicated folder. Avoid spaces in filenames; FFmpeg glob patterns break on messy names.
Check one middle frame before you batch the whole sequence on a high-DPI laptop display.
Build a GIF with FFmpeg
Install FFmpeg with winget:
winget install --id Gyan.FFmpeg -e
From numbered PNG frames with palette pipeline:
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
From a folder of JPEG files with glob pattern:
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
| Parameter | Slower loop | Faster loop |
|---|---|---|
-framerate | 2 to 3 | 6 to 8 |
scale width | 640 px | 960 px |
| Frame count | Fewer frames | More frames |
Lower -framerate when stakeholders want each storyboard panel readable. Raise it only when motion between panels should feel continuous.
Batch rename frames in PowerShell when design used inconsistent names:
$i = 1
Get-ChildItem *.png | Sort-Object Name | ForEach-Object {
Rename-Item $_.FullName ("frame-{0:D3}.png" -f $i)
$i++
}
After export, check file size in Explorer. If the GIF exceeds your upload cap, re-run with scale=640:-1 and -framerate 3 before you drop frames.
Keep originals until the loop passes review in the target channel.
Using GetCompress
GetCompress fits make GIF from photos on Windows when you want preview, ordering, and palette export without PowerShell glob patterns.
Drop a folder of PNG or JPEG frames, or mix stills with timing controls in the UI.
Workflow features that help:
- Preview and trim: adjust effective duration per frame before palette limits colors.
- Frame preview: catch banding on photo gradients before you post.
- Width presets: 640 or 800 px covers most Teams and doc uploads.
- Batch queue: build several storyboard loops after a design review.
- Switch to MP4: export video when the thread allows it instead of GIF.
- Local processing: keep unreleased product shots off online converters.
Save a preset like “storyboard GIF 800w 4fps” when your team ships the same frame count each sprint. When photo GIF banding persists at 640 px, export MP4 from the same frame sequence or reduce frame count instead of re-palette encoding three times.
GetCompress also helps when design drops twenty PNG exports named inconsistently. Sort in the queue, set fps, preview the loop, and export one GIF without renaming files manually for FFmpeg %03d patterns.
For still image optimization outside GIF workflows, see how to compress images on Windows when the handoff folder mixes JPEG and PNG alongside the frames you animate.
Keep source frames in a frames-src\ folder and write GIF output to gif-out\ so deploy scripts never overwrite design exports.
Document fps and width in your team wiki so the next campaign matches the last storyboard loop settings.
Clipchamp can export MP4 slideshows when GIF banding is unacceptable; GetCompress still fits when the channel requires GIF with preview before palette encode.
- Compress GIFs on WindowsMake GIF files smaller on Windows: shorten the loop, use MP4 when possible, or convert with FFmpeg or GetCompress.
- Convert Video to GIF on WindowsConvert video to GIF on Windows with FFmpeg, or export MP4 from Clipchamp when the tool allows video instead of GIF.
- How to Compress Images on WindowsCompress images on Windows with Photos and Paint. Resize JPG and PNG, convert WebP, and batch compress with GetCompress.
- Convert GIF to WebP on WindowsConvert GIF to WebP on Windows with FFmpeg for smaller animated assets, or use GetCompress for preview and batch export.
Buy GetCompress now for local media compression with reusable presets and no media upload.