Skip to content

Compress PNG on Windows: 3 Methods

Compress PNG on Windows with GetCompress, Photos or Paint, or FFmpeg plus oxipng. Resize first, then lossless recompress screenshots without losing transparency.

By Petr Samokhin

A Figma export at 2880 px wide lands in Teams as an 8 MB PNG. The message sends, but the thread crawls on mobile data and the next upload form rejects the same file. PNG is right for UI with transparency, yet full-monitor exports are almost never viewed at that size. Resize first, then lossless recompress, or change format when alpha is not required.

Three solid routes cover most Windows jobs: GetCompress for recurring batches, Photos or Paint for one or a few files, and FFmpeg plus oxipng in PowerShell.

Method 1: GetCompress

Best for: One file or folders of PNG screenshots (often mixed with JPEG or WebP) with a max-width preset you reuse often.

GetCompress main window with images queued and image settings open, including max width and format options
  1. Open GetCompress and drop PNG files or a folder into the queue.
  2. Set max width and keep PNG when transparency matters.
  3. Preview icon edges and small type, then export.
  4. Convert to WebP or JPEG in the same pass when alpha is no longer needed.

Processing stays on your PC. Exact target file size applies to video only, not images.

Method 2: Resize in Photos or Paint

Best for: One or a few PNG files.

Photos (Windows 11):

  1. Open the PNG in Photos.
  2. Choose … → Resize image, pick a width (for example 1920 for a hero), and save a copy.

Paint works on every Windows PC: open the file, Resize, set pixels, then Save as PNG if transparency matters.

Zoom on small type, icon edges, and semi-transparent overlays. If the image is a photo without alpha, save as JPEG at a sensible quality and keep the original PNG archived.

Limitation: Slow for thirty mockups. No reusable preset.

Method 3: FFmpeg and oxipng

Best for: Same max width across a folder, plus lossless bitstream savings after resize.

winget install --id Gyan.FFmpeg -e
winget install oxipng
mkdir out
Get-ChildItem *.png | ForEach-Object {
 ffmpeg -i $_.Name -vf scale=1920:-2 "out\$($_.Name)"
}
cd out
Get-ChildItem *.png | ForEach-Object { oxipng -o 4 --strip safe $_.Name }

--strip safe removes non-critical metadata while keeping useful color profiles. Run oxipng on the resized file. Document scale flags in your repo so teammates do not guess different settings.

Limitation: Command-heavy. Mixed formats still need scripting or a dedicated app.

Which method should you use

SituationStart here
Recurring design file folders, mixed formats, presetsGetCompress
One screenshotPhotos or Paint
Scripted resize plus lossless passFFmpeg + oxipng

Broader advice: how to compress images on Windows . Web delivery: PNG to WebP on Windows . Keep client mockups local ( are online file compressors safe on Windows ).

Lossless vs lossy choices

PNG compression is lossless by default. You still shrink files by resizing, rewriting the bitstream, or converting when transparency does not matter.

ApproachBest when
Resize pixelsImage displays smaller on screen
Lossless PNG toolsTransparency must stay; UI stays sharp
WebP or JPEGNo alpha; photos and heroes for web
Lower color depthFlat UI with few distinct colors

Read lossy vs lossless compression . Compare one representative file with the image comparison tool .

When Photos or PowerShell is enough

Photos or Paint can finish a single resize. PowerShell can work when the folder is uniform and your README already documents width and oxipng flags.

GetCompress also helps when the same max width returns every week, when PNG and JPEG arrive together, or when folder monitoring should catch new design drops. It does not replace a design tool. Write max width in the project README so you do not put back 2880 px files.