Skip to main content

Overview

Image Resizer is a Windows Shell Extension that enables quick batch resizing of images directly from File Explorer. Right-click on one or multiple images to resize them using predefined or custom dimensions without opening any image editing software.
Image Resizer preserves EXIF metadata by default and can handle multiple image formats simultaneously.

Activation

1

Enable Image Resizer

Open PowerToys Settings and enable Image Resizer
2

Select Images

In File Explorer, select one or more image files
3

Open Context Menu

Right-click on the selected images
4

Choose Resize Images

Click “Resize pictures” or “Resize images” option
5

Configure and Resize

Choose size preset or custom dimensions, then click Resize

Key Features

Batch Processing

Multiple Files

Resize hundreds of images at onceSelect all, right-click, resize

Mixed Formats

Process different image formats togetherJPG, PNG, BMP, TIFF, GIF, TGA

Preserve Originals

Keep original files intactCreates new resized copies

Custom Output

Choose output location and namingFlexible file organization

Size Presets

Built-in common image sizes:
Default: 854 × 480 pixels
  • Social media thumbnails
  • Email attachments
  • Quick previews
Customizable in settings

Resize Options

Multiple resizing modes:
// Resize modes available
public enum ResizeMode
{
    Fit,              // Fit within dimensions (default)
    Fill,             // Fill dimensions (may crop)
    Stretch,          // Stretch to exact dimensions
    ShrinkOnly,       // Only shrink, never enlarge
    Percentage        // Scale by percentage
}
Resize to fit within dimensions while maintaining aspect ratio:
Target: 1000×1000

Input: 2000×1000   →  Output: 1000×500
Input: 1000×2000   →  Output: 500×1000
Best for: Preserving image proportions

File Naming

Customizable output file names:
naming_pattern
string
default:"%1 (%2)"
Output filename patternTokens:
  • %1 - Original filename
  • %2 - Size name (e.g., “Small”, “Medium”)
  • %3 - Selected width
  • %4 - Selected height
  • %5 - Actual width
  • %6 - Actual height
Examples:
Pattern: "%1 (%2)"
Input:   photo.jpg
Output:  photo (Medium).jpg

Pattern: "%1_%3x%4"
Input:   photo.jpg
Output:  photo_1920x1080.jpg

Pattern: "%1_resized"
Input:   photo.jpg  
Output:  photo_resized.jpg

Format and Quality

output_format
enum
default:"Original"
Output image formatOptions:
  • Original (maintain input format)
  • PNG
  • JPEG
  • BMP
  • TIFF
  • GIF
jpeg_quality
number
default:"90"
JPEG compression quality (1-100)Higher = better quality, larger file size
png_interlacing
boolean
default:"false"
Enable PNG interlacing for progressive loading
tiff_compression
enum
default:"None"
TIFF compression methodOptions: None, LZW, ZIP, CCITT

EXIF Data Preservation

// EXIF metadata handling
public class ImageResizerOptions
{
    public bool KeepExifData { get; set; } = true;
    
    // Preserved metadata:
    // - Camera make/model
    // - Date taken
    // - GPS coordinates
    // - Copyright information
    // - Image orientation
    // - Camera settings (ISO, aperture, etc.)
}
Toggle in settings: Option to remove EXIF data for privacy.

Configuration

Size Presets

Customize the built-in presets:
  1. Open PowerToys Settings
  2. Navigate to Image Resizer
  3. Click “Edit” on any size preset
  4. Modify dimensions and name
  5. Add new custom sizes with ”+”
Example custom sizes:
Instagram Square:  1080 × 1080
Facebook Cover:    820 × 312
Twitter Header:    1500 × 500
YouTube Thumbnail: 1280 × 720
4K:                3840 × 2160

Advanced Settings

shrink_only
boolean
default:"false"
Only shrink images, never enlargePrevents quality loss from upscaling
replace_original
boolean
default:"false"
Replace original files with resized versionsWarning: Cannot be undone
ignore_orientation
boolean
default:"false"
Ignore EXIF orientation flagUse if images appear rotated
output_directory
string
default:"Same as input"
Where to save resized imagesOptions:
  • Same folder as originals
  • Custom directory
  • Ask each time
encoder_parameters
advanced
Format-specific encoding options
  • JPEG: Quality, progressive
  • PNG: Compression level, interlacing
  • TIFF: Compression type

Use Cases

Web Development

Reduce image file sizes for faster loading:
1. Select all images for website
2. Right-click → Resize images
3. Choose "Medium" (1366×768)
4. Set JPEG quality to 85%
5. Resize → Upload optimized images
Result: Faster page load times
Create multiple sizes for responsive design:
# Create small, medium, large versions
1. Resize to 640px width   (mobile)
2. Resize to 1024px width  (tablet)
3. Resize to 1920px width  (desktop)
Use in HTML:
<img srcset="image-640.jpg 640w,
             image-1024.jpg 1024w,
             image-1920.jpg 1920w"
     src="image-1920.jpg" alt="...">

Photography

1

Social Media Sharing

Resize photos for social platforms:Instagram:
  • Square: 1080×1080
  • Portrait: 1080×1350
  • Landscape: 1080×566
Facebook:
  • Post: 1200×630
  • Cover: 820×312
2

Email Attachments

Reduce file size for email:
  1. Select photos
  2. Resize to “Small” or “Medium”
  3. JPEG quality 80-85%
  4. Attach resized versions (under 10MB total)
3

Print Preparation

Create print-ready sizes:
  • 4×6”: 1800×1200 (300 DPI)
  • 5×7”: 2100×1500 (300 DPI)
  • 8×10”: 3000×2400 (300 DPI)

E-commerce

Product Images

Standardize product photo dimensionsConsistent sizing across catalog

Thumbnails

Create grid thumbnailsSquare format for category pages

Zoom Images

Multiple resolution versionsSmall preview + large zoom view

Mobile Optimization

Mobile-friendly image sizesReduce bandwidth usage

Content Creation

Prepare blog post images:
Featured image: 1200×630 (2:1 ratio)
Inline images:  800×600 or 800×450
Thumbnails:     400×300

Technical Details

Architecture

Windows Imaging Component

Image Resizer uses Windows Imaging Component (WIC):
// WIC-based image processing
IWICImagingFactory* factory;
IWICBitmapDecoder* decoder;
IWICBitmapFrameDecode* frame;
IWICBitmapScaler* scaler;
IWICBitmapEncoder* encoder;

// High-quality resizing
scaler->Initialize(
    frame,
    newWidth,
    newHeight,
    WICBitmapInterpolationModeFant  // High-quality Fant algorithm
);
Benefits:
  • Native Windows support
  • Hardware acceleration
  • High-quality algorithms
  • Codec extensibility

Supported Formats

FormatReadWriteNotes
JPEGAdjustable quality
PNGLossless, alpha support
BMPLarge file sizes
TIFFMultiple compression options
GIFAnimation preserved
TGATruevision Targa
WDPWindows Media Photo
HEICRead-only (requires codec)

Resize Quality

Interpolation algorithms:
enum WICBitmapInterpolationMode
{
    WICBitmapInterpolationModeNearestNeighbor,  // Fastest, lowest quality
    WICBitmapInterpolationModeLinear,           // Fast, good for thumbnails
    WICBitmapInterpolationModeCubic,            // Good quality/speed balance
    WICBitmapInterpolationModeFant              // Highest quality (default)
};
Image Resizer uses Fant algorithm for best quality.

Project Structure

src/modules/imageresizer/
├─ ImageResizerCLI/           # Command-line interface
├─ ImageResizerContextMenu/  # Shell extension (C++)
├─ ImageResizerLib/          # Core resize logic
└─ ui/                       # Resize dialog UI (C#)
Source: src/modules/imageresizer/README.md

Keyboard Shortcuts

In Resize Dialog

ShortcutAction
EnterResize with current settings
EscCancel and close dialog
TabNavigate between options
Alt+SToggle size dropdown
Alt+RResize button

Troubleshooting

Check:
  • Image Resizer enabled in PowerToys Settings
  • Selected files are image formats
  • On Windows 11, check “Show more options”
Fix:
  1. Restart File Explorer
  2. Disable and re-enable Image Resizer
  3. Restart PowerToys
  4. Check shell extension registration
Possible causes:
  • Insufficient disk space
  • Output directory not writable
  • Image file corrupted
  • Filename too long
Solutions:
  1. Check available disk space
  2. Verify output directory permissions
  3. Try resizing one image to identify problem file
  4. Use shorter filename pattern
Improve quality:
  1. Increase JPEG quality setting (90-95)
  2. Use PNG for lossless quality
  3. Don’t enlarge small images
  4. Enable “Shrink only” to prevent upscaling
  5. Use appropriate resize mode (Fit, not Stretch)
Note: Upscaling always reduces quality
Preserve metadata:
  1. Open Image Resizer settings
  2. Enable “Keep EXIF data”
  3. Resize images again
Note: Some formats don’t support EXIF (BMP, GIF)Alternative: Use EXIF tools to copy metadata
Performance tips:
  • Process in smaller batches (50-100 images)
  • Close other applications
  • Use SSD instead of HDD
  • Disable antivirus temporarily
  • Reduce output quality slightly
Note: Processing hundreds of large RAW files takes time

Best Practices

Quality vs File Size:
  • Web images: JPEG 80-85 quality, 1920px max width
  • Thumbnails: JPEG 75 quality, 400px max
  • Archival: PNG lossless or JPEG 95 quality
  • Screenshots: PNG lossless
  • Photos with text: PNG or high JPEG quality

Batch Processing Tips

  1. Test First: Resize one image to verify settings
  2. Backup Originals: Keep original files safe
  3. Consistent Naming: Use clear filename patterns
  4. Organize Output: Use subfolders for different sizes
  5. Document Settings: Note what presets/settings you used

Format Selection

Choose format based on content:

✓ JPEG:  Photos, complex images, gradients
✓ PNG:   Screenshots, logos, transparency, text
✗ BMP:   Avoid (large files, no benefits)
✓ TIFF:  Professional/archival (with LZW compression)
✗ GIF:   Avoid for photos (256 colors max)

See Also

Build docs developers (and LLMs) love