← All articles 9 min read

How to Resize an Image on Windows (6 Methods)

Windows gives you at least three built-in ways to resize images — and most people only know about one of them. Paint handles quick single-image resizes, the Photos app offers a more visual workflow, and PowerShell lets you batch-resize hundreds of files without installing anything.

Then there are the free third-party options: IrfanView for speed-obsessed batch processing, GIMP for pixel-perfect control, and browser-based tools like Pixotter when you want something fast that works on any device.

This guide walks through all six methods on Windows 11 23H2, with exact steps, keyboard shortcuts, and a PowerShell script you can copy and run right now. Pick the method that fits your situation, or use the comparison table below to decide.

For Mac users, we have a separate guide on how to resize a photo on Mac. And if you want a broader overview of resizing techniques across platforms, check out our general how to resize a photo guide.

Methods Comparison

Method Cost Batch Resize Quality Control Aspect Ratio Lock Formats Best For
Paint Free (built-in) No Low (no compression settings) Yes BMP, PNG, JPEG, GIF, TIFF Quick single-image resizes
Photos App Free (built-in) No Medium (quality presets) Yes JPEG, PNG, BMP, TIFF Visual users who want a preview
PowerShell Free (built-in) Yes Medium (adjustable JPEG quality) Manual Any via System.Drawing Developers, batch processing
IrfanView 4.67 Free Yes (powerful) High (full format control) Yes 100+ formats Batch resizing with presets
GIMP 2.10.38 Free (open source, GPLv3) Via Script-Fu Highest (interpolation control) Yes 40+ formats Precise resizing, resampling control
Pixotter Free Yes High (client-side processing) Yes PNG, JPEG, WebP, AVIF No install, works on any OS

Method 1: Paint (Built-in, Simplest)

Paint ships with every Windows installation and handles basic resizing in under 30 seconds. It lacks compression settings and batch processing, but for a quick one-off resize, nothing is faster.

We have a detailed guide on how to resize an image in Paint if you want the deep dive. Here is the short version:

Steps

  1. Right-click the image in File Explorer → Open withPaint.
  2. Click Resize in the toolbar (or press Ctrl+W).
  3. Choose Pixels or Percentage.
  4. Check Maintain aspect ratio (checked by default — leave it on unless you specifically need to stretch the image).
  5. Enter the new width. The height adjusts automatically.
  6. Click OK.
  7. FileSave as → pick your format (JPEG for photos, PNG for graphics with transparency).

What to Watch For

Paint resamples using a basic algorithm. Resizing a 4000×3000 photo down to 800×600 looks fine. Upscaling a 200×150 thumbnail to 1920×1080 produces visible blur. Paint is a one-direction tool — shrink, not grow.

JPEG saves in Paint default to moderate quality with no way to adjust the compression level. If file size matters (email attachments, web uploads), you may want a tool that lets you control JPEG quality directly.

Method 2: Photos App (Windows 11)

The Photos app on Windows 11 23H2 offers a resize option with preset sizes and a live preview. It is slightly more polished than Paint and provides quality presets for output.

Steps

  1. Open the image in Photos (double-click usually opens it here by default).
  2. Click the three-dot menu (⋯) in the top toolbar.
  3. Select Resize image.
  4. Choose a preset size or enter custom pixel dimensions.
  5. Select the output format and quality level.
  6. Click Save and choose the destination.

When to Use Photos Instead of Paint

Photos gives you quality presets when saving, so you get some control over the file size vs. quality tradeoff. It also shows the estimated output file size before you save, which helps when you are targeting a specific size limit (under 1 MB for email, under 200 KB for a web page).

The downside: Photos cannot resize to exact pixel dimensions in all cases, and the preset sizes may not match what you need. For exact control, Paint or PowerShell is more reliable.

Method 3: PowerShell Script (Batch Resize, No Install)

PowerShell with System.Drawing lets you resize images programmatically — one image or a thousand. No downloads, no installs. This works on any Windows machine with .NET Framework (every Windows 10 and 11 system has it).

Single Image Resize

Open PowerShell (press Win+XTerminal) and run:

# Resize a single image — PowerShell 5.1+ / Windows 11 23H2
Add-Type -AssemblyName System.Drawing

$inputPath  = "C:\Users\You\Photos\original.jpg"
$outputPath = "C:\Users\You\Photos\resized.jpg"
$newWidth   = 1200

$image    = [System.Drawing.Image]::FromFile($inputPath)
$ratio    = $image.Height / $image.Width
$newHeight = [int]($newWidth * $ratio)

$bitmap   = New-Object System.Drawing.Bitmap($newWidth, $newHeight)
$graphics = [System.Drawing.Graphics]::FromImage($bitmap)
$graphics.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic
$graphics.DrawImage($image, 0, 0, $newWidth, $newHeight)

# Save as JPEG with 90% quality
$encoder    = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() |
              Where-Object { $_.MimeType -eq "image/jpeg" }
$qualityParam = New-Object System.Drawing.Imaging.EncoderParameters(1)
$qualityParam.Param[0] = New-Object System.Drawing.Imaging.EncoderParameter(
    [System.Drawing.Imaging.Encoder]::Quality, 90L)

$bitmap.Save($outputPath, $encoder, $qualityParam)

$graphics.Dispose()
$bitmap.Dispose()
$image.Dispose()

Write-Host "Resized to ${newWidth}x${newHeight} — saved to $outputPath"

Batch Resize Script

This script resizes every JPEG and PNG in a folder, preserving aspect ratio and saving to a subfolder:

# Batch resize all images in a folder — PowerShell 5.1+ / Windows 11 23H2
Add-Type -AssemblyName System.Drawing

$sourceFolder = "C:\Users\You\Photos\Originals"
$outputFolder = "C:\Users\You\Photos\Resized"
$maxWidth     = 1200
$jpegQuality  = 85

if (!(Test-Path $outputFolder)) { New-Item -ItemType Directory -Path $outputFolder | Out-Null }

$encoder = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() |
           Where-Object { $_.MimeType -eq "image/jpeg" }
$qualityParam = New-Object System.Drawing.Imaging.EncoderParameters(1)
$qualityParam.Param[0] = New-Object System.Drawing.Imaging.EncoderParameter(
    [System.Drawing.Imaging.Encoder]::Quality, [long]$jpegQuality)

$files = Get-ChildItem -Path $sourceFolder -Include *.jpg, *.jpeg, *.png -Recurse
$count = 0

foreach ($file in $files) {
    $image = [System.Drawing.Image]::FromFile($file.FullName)

    if ($image.Width -le $maxWidth) {
        Copy-Item $file.FullName -Destination $outputFolder
        $image.Dispose()
        $count++
        continue
    }

    $ratio     = $image.Height / $image.Width
    $newWidth  = $maxWidth
    $newHeight = [int]($maxWidth * $ratio)

    $bitmap   = New-Object System.Drawing.Bitmap($newWidth, $newHeight)
    $graphics = [System.Drawing.Graphics]::FromImage($bitmap)
    $graphics.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic
    $graphics.DrawImage($image, 0, 0, $newWidth, $newHeight)

    $outputPath = Join-Path $outputFolder $file.Name
    $bitmap.Save($outputPath, $encoder, $qualityParam)

    $graphics.Dispose()
    $bitmap.Dispose()
    $image.Dispose()
    $count++
}

Write-Host "Done — resized $count images to max width ${maxWidth}px in $outputFolder"

Why PowerShell Over a GUI Tool

PowerShell shines when you have a recurring task. Save the script as resize-images.ps1, schedule it with Task Scheduler, and every image dropped into a folder gets resized automatically. No clicking, no waiting, no forgetting.

Method 4: IrfanView (Free, Batch-Capable)

IrfanView 4.67 is a lightweight image viewer that has been a Windows staple since 1996. It is free for personal use (BSD-style license for non-commercial use; commercial use requires a $12 registration). Its batch conversion feature handles hundreds of images with granular control over output format, quality, and naming.

Single Image Resize

  1. Open the image in IrfanView.
  2. ImageResize/Resample (or press Ctrl+R).
  3. Enter the new dimensions. Check Preserve aspect ratio.
  4. Under Size method, select Lanczos for the sharpest downscale results.
  5. Click OK.
  6. FileSave as → choose format and quality.

Batch Resize

  1. FileBatch Conversion/Rename (or press B).
  2. Add files using the file browser on the right. Select all images you want to resize.
  3. Check Use advanced options → click Advanced.
  4. Check Resize → enter the new width (or set a long-edge max).
  5. Select Resample filter: Lanczos.
  6. Set the output directory and format.
  7. Click Start Batch.

IrfanView processes images remarkably fast — expect 50-100 images per second on modern hardware for simple resizes. It also supports command-line batch operations via i_view64.exe /convert for integration into scripts.

Method 5: GIMP (Free, Advanced)

GIMP 2.10.38 is a full image editor (free, open source, GPLv3). It is overkill for simple resizing, but if you need precise interpolation control, selective resizing of layers, or advanced resampling algorithms, GIMP is the free option that delivers.

Steps

  1. Open the image in GIMP (FileOpen).
  2. ImageScale Image.
  3. Enter the new width. The chain-link icon between width and height locks the aspect ratio — keep it locked unless you want distortion.
  4. Under Interpolation, choose your algorithm:
    • None — fastest, pixelated (good for pixel art).
    • Linear — fast, slightly soft.
    • Cubic — good balance of speed and quality.
    • NoHalo — best for downscaling photos (minimizes ringing artifacts).
    • LoHalo — similar to NoHalo, slightly different artifact profile.
  5. Click Scale.
  6. FileExport As → choose format → adjust quality slider → Export.

When GIMP Is the Right Choice

Use GIMP when you need to resize one layer of a multi-layer composition, resize and apply sharpening in the same step (Filters → Enhance → Unsharp Mask after scaling), or when the interpolation algorithm matters for your output quality. For batch resizing, GIMP's Script-Fu console can loop through files, but IrfanView or PowerShell is simpler for pure batch work.

Method 6: Pixotter (Browser-Based, Any OS)

Pixotter's resize tool runs entirely in your browser. Drop an image, set your target dimensions, and download the result. No upload to any server — the processing happens locally via WebAssembly, so your images stay private.

Why Use a Browser Tool on Windows?

Steps

  1. Go to pixotter.com/resize/.
  2. Drop your image (or click to browse).
  3. Enter the target width and height, or choose a preset.
  4. Click Resize and download the result.

The entire process takes about 3 seconds per image, and nothing leaves your machine.

FAQ

Does resizing an image reduce file size?

Yes. A 4000×3000 JPEG at 3 MB becomes roughly 400-500 KB when resized to 1200×900 at 85% quality. The file size reduction is proportional to the pixel count reduction, though the exact ratio depends on image content and compression settings. Images with fine detail (text, foliage) compress less efficiently than images with large uniform areas (sky, solid backgrounds).

Can I resize an image without losing quality?

Downscaling (making smaller) preserves perceived quality well — a 4000px photo resized to 1200px looks sharp because you are discarding excess pixels, not inventing new ones. Use a good resampling algorithm (Lanczos in IrfanView, HighQualityBicubic in PowerShell, NoHalo in GIMP) for the best results. Upscaling (making larger) always loses quality because the software must interpolate pixels that do not exist. If you need to upscale, AI-based upscalers produce better results than traditional interpolation, but the original detail is still gone.

What is the best image format to save after resizing?

For photographs: JPEG at 80-90% quality. For graphics with transparency or text: PNG. For web delivery where browser support exists: WebP offers 25-35% smaller files than JPEG at equivalent quality. AVIF is even smaller but has narrower browser support. Pixotter lets you resize and convert in one step, so you can output WebP directly.

How do I resize multiple images at once on Windows?

Three options: PowerShell (see the batch script above — no install required), IrfanView 4.67 batch conversion (File → Batch Conversion, fastest GUI option), or Pixotter's batch resize in the browser. Paint and Photos do not support batch processing.

Does Windows have a built-in batch resize tool?

Not as a dedicated feature, but PowerShell with System.Drawing gives you full batch resize capability without installing anything. The script in this guide handles JPEG and PNG files, preserves aspect ratio, and lets you set quality. Save it as a .ps1 file and run it anytime. For a GUI-based built-in option, Microsoft PowerToys includes an Image Resizer extension, but it requires a separate install from the Microsoft Store.

What dimensions should I resize to for web use?

For blog content and general web pages: 1200px wide covers most layouts and looks sharp on high-DPI displays. For full-width hero images: 1920px wide. For thumbnails: 400-600px wide. For social media, each platform has specific dimensions — Instagram posts are 1080×1080, Facebook shared images are 1200×630, and LinkedIn posts are 1200×627. When in doubt, 1200px wide at 85% JPEG quality is a reliable default that balances file size and visual quality.

Also try: Compress Images