How to Compress Multiple Images at Once: Every Method

How to compress multiple images at once: a free browser batch tool, built-in Mac and Windows options, and command-line tools for large folders.

By Mike Wiberg · · 16 min read

How to compress multiple images at once comes down to one move: drop the whole folder into a browser batch tool that applies one setting to every file in a single pass. A free batch compressor takes dozens of images at a time, at quality 80, and hands back every file ready to download within seconds, no per-image clicking and no software to install.

Doing this one file at a time is the real time sink, and it does not need to be. Twenty photos from a phone shoot average four and a half megabytes each, ninety megabytes total, and running them one at a time means opening, waiting, and downloading twenty separate times. Online batch tools, the bulk image compression features already built into your OS, and the command line all solve the same problem: one setting applied once instead of twenty repeats. This is the batch-specific companion to the complete guide to compressing an image, covering every route for a whole folder instead of one file.

Three routes cover almost every situation: a browser batch tool for most people, the resize option already built into your OS for a quick pass, and the command line when a folder is too large for either.

Method Images at once Install required Best for
Browser batch tool Up to 30 free, 100 on Pro None Most people, most folders
Built-in OS tool (Preview, PowerToys) A handful, selected together Already on your machine A quick resize-and-save pass
Command line (jpegoptim, optipng, GIMP) Entire folder tree, no cap Terminal, one-time install Hundreds of files, developers

What does batch compressing images actually do?

Batch compressing images means applying one quality setting and one output format to every file you drop in, rather than adjusting each image by hand. The tool reads each file, re-encodes it at that setting, and hands each one back individually, so a folder of fifty photos takes the same handful of clicks as a folder of one, just a longer wait while the queue works through it.

The tradeoff is that everything in the batch gets treated the same way. A quality level that is invisible on a photograph can visibly soften a screenshot or a flat-color logo, because lossy compression smears the sharp edges lossless formats are built to protect. Group by content type before you batch, photos in one pass and graphics in another, and the setting right for one will not wreck the other.

This is different from zipping a folder. A ZIP archive wraps files in a lossless container and barely shrinks JPEGs or WebPs any further, because those formats already removed the redundancy a general-purpose archiver looks for. When you compress multiple photos at once with a real image compressor, each file is individually re-encoded, which is why the batch total drops by tens of percent instead of by almost nothing.

A batch job is also not the same job as a single-file compression, even though it uses the same engine underneath. A single file gives you room to eyeball the result and adjust; a batch of fifty asks you to trust one setting across all of them, which is exactly why the next few sections exist: to show you where that trust is earned and where it is not.

How to compress multiple images at once

The fastest route for almost everyone is a browser batch tool, because there is no install and no learning curve. I built the compressor on this site to work exactly this way, so here is the whole process, start to finish.

  1. Open the free compressor and drop your whole folder, or select multiple files, onto it. The free tier takes up to 30 images per batch, 25 MB each, no signup required.
  2. Leave quality at 80, the default the tool ships with and visually lossless for photographs.
  3. Let the batch run. Each file processes on its own, and EXIF metadata, including GPS coordinates and camera details, is stripped from every file by default.
  4. Download each result. Originals stay untouched on your device, and the uploaded copies are deleted from storage within the hour.

If you regularly work through more than 30 images in a sitting, a Pro plan at $12 a month raises the batch size to 100 and the per-file cap to 50 MB, with no per-image charge at any volume. Re-compressing a file already in the session, at a different quality or format, never counts against that limit either, which matters if the first pass at quality 80 was not aggressive enough for one stubborn file in the batch.

Say the folder is twenty photos from a phone, each around 4.5 MB, ninety megabytes total. Run them one at a time and you are opening, waiting, and downloading twenty separate times. Run them as a batch and the same twenty files land back around 900 KB apiece, eighteen megabytes total, in one pass instead of twenty separate ones. That is what batching buys you: you now know how to compress multiple images at once without touching a single file by hand, twenty or fifty times over.

Can you batch compress images without installing anything?

Yes. Both macOS and Windows can batch-process images natively, though neither compresses as aggressively as a dedicated tool, because both work primarily by resizing rather than by re-encoding at a quality setting.

macOS Preview: batch resize by selection

On a Mac, open all the target images in one Preview window, select them in the sidebar, and choose Tools, then Adjust Size. Preview resizes every selected image at once and shows the resulting size as you adjust dimensions, a workflow Apple documents in its own support guide (Apple Support on resizing in Preview). It is primarily a resize tool rather than a quality-based compressor, so a large flat PNG will not shrink much this way, and there is no equivalent of a quality-80 slider to fall back on.

Windows PowerToys: batch resize by right-click

On Windows, Microsoft's free PowerToys utility adds a Resize pictures option to the right-click menu. Select a folder of images, right-click, choose resize, and PowerToys writes resized copies alongside the originals without touching the source files. Like Preview, it cuts pixel dimensions rather than adjusting quality, so pair it with a quality pass afterward if bytes are still the problem once the dimensions are right.

Neither tool needs an install beyond what is already on the machine or a single free download, and both are the right call when you want a quick pass without leaving your desktop. Where they fall short is exactly where a browser compressor or the command line picks up: a real quality-based re-encode instead of a resize standing in for one.

Batch export in Photoshop or Lightroom

Professional editors already have a batch route built into the software they use daily. Photoshop's File menu includes Scripts, then Image Processor, which applies one export setting, format, quality, and destination folder, to an entire folder of source files in a single run. Lightroom works the same way from the other direction: import the shoot into one catalog, select every photo, and Export with one file setting applied across the whole selection.

Neither is the fastest option if you do not already have the software open for other reasons; installing a full editing suite just to shrink a folder of photos is a lot of tool for the job. But if Photoshop or Lightroom is already part of the workflow, batch exporting through it means one less app in the loop and one less place for a file to get lost.

How do you batch compress a folder from the command line?

For a photography archive or a folder too large for either point-and-click tool, the command line beats both because it never has you clicking anything, and it can walk an entire folder tree in one run.

jpegoptim and find for JPEGs

jpegoptim --max=85 --strip-all *.jpg compresses every JPEG in a folder in one command and strips metadata as it goes (DigitalOcean's guide to reducing image file size in Linux). It overwrites the source file by default, so add a --dest flag to write to a separate folder if you want your originals left alone, which you should. To reach every subfolder instead of just one, point the same tool at a folder with find rather than a wildcard: find /path -type f -name "*.jpg" -exec jpegoptim --max=85 --strip-all {} +. The + form batches files into fewer process launches and runs noticeably faster on a tree with hundreds of files than the equivalent command using \;.

optipng for PNGs

PNGs need a different tool, since jpegoptim only understands JPEG. find /path -type f -name "*.png" -exec optipng -o5 {} + losslessly optimizes every PNG under a tree, the same recursive pattern as the JPEG command above, with no quality loss because PNG compression is lossless by definition.

GIMP for a scripted batch export

GIMP can also batch-export headlessly from a script, useful if a folder mixes formats you would rather funnel through one tool. The catch is version-specific: the file-jpeg-save procedure that older Script-Fu batch commands rely on works on GIMP 2.10 and is gone in GIMP 3.0, so a script copied from an old forum post may error out on a current install until it is rewritten against the newer export API.

Command-line batches scale to sizes nothing else here touches, hundreds or thousands of files in one run, but they demand a terminal and a willingness to read an error message instead of clicking a retry button. For a one-off folder of vacation photos, that trade is not worth making.

The measured results: 50 photos through the browser tool

Take the measured single-photo result already established for this tool, a 4.5 MB phone photo compressing to about 900 KB at quality 80, and scale it to a realistic batch: 50 phone photos average 225 MB total, and the same batch comes back around 45 MB, roughly an 80 percent reduction, all in one pass instead of fifty.

Batch stage Files Total size
Original phone photos 50 225 MB
After browser batch at quality 80 50 ~45 MB
50 phone photos, one batch pass total size before and after, quality 80 Originals 225 MB After batch ~45 MB Scaled from the measured single-file result, 4.5 MB to 0.9 MB at quality 80, imagecompressor.tools, July 2026. Bar length proportional to total bytes.

That gap, 225 MB down to roughly 45 MB, is the difference batching makes even before you touch the command line or a desktop app: one setting, one wait, applied to the whole folder instead of adjusted fifty separate times by hand. The time saved compounds the same way the bytes do. Fifty individual uploads at even thirty seconds apiece is twenty-five minutes of clicking, opening a file picker, waiting for a preview, and downloading a result, fifty times over. One batch drop replaces all fifty of those cycles with the time it takes the queue to run, usually under a minute for fifty phone photos, because the tool processes each file the moment the one before it finishes rather than waiting on you to start the next upload.

When does batch compression backfire?

Batch tools assume one setting fits every file in the folder, and that assumption breaks in three predictable ways: mixed content, a session cap you did not check, and overwriting the only copy of your originals.

Mixed content in one batch

A quality-80 photo setting looks fine on every photograph in the batch and rough on the one flat-color logo or screenshot that snuck in with them, because lossy compression smears the sharp edges lossless formats are built to protect. Grouping images by type before you batch, photos in one pass and graphics in another, so the setting right for one does not wreck the other, is standard batch practice (BulkPicTools on batch compression best practices).

A free-tier cap you did not check

Twenty images is not an obvious limit until image twenty-one throws an error. Many free batch tools cap a session at 20 images, 5 MB each, a hundred megabytes total, before you need a second session or a paid plan (Tinify's web optimizer); if a WordPress media library is the target instead, the equivalent free cap on a bulk-optimize plugin runs around 100 images a month (WordPress.org's TinyPNG plugin listing). If a folder is close to a tool's cap, count first or split it into two passes rather than finding out mid-batch.

Overwriting your only copy

Command-line tools in particular tend to overwrite the source file by default; jpegoptim does exactly this unless you add a --dest flag. Compression cannot be undone, so confirm a batch job is writing to a separate output before running it on files you cannot replace. Preview one or two results before committing the whole folder, since a setting that is wrong shows up in the first file exactly as much as the five hundredth, and catching it early saves redoing the entire batch.

The ZIP myth

Zipping a folder of already-compressed JPEGs or WebPs barely shrinks it further, because JPEG and WebP compression already removed the redundancy a general-purpose archiver looks for. Zipping helps with uncompressed formats and with bundling many files into one download, not with making photos smaller. If the goal is a smaller batch, batch-compress the images first and zip the results only if you need one file to send.

Batch compressing to a KB limit, or into one PDF

Two batch requests come up often enough to name directly: hitting an exact KB limit across every file in a folder, and combining a batch of images into a single PDF.

For a KB target across a batch, resize before you compress, the same rule that applies to a single file. A form that wants every photo under 100 KB almost always wants a small display size too, and a 4000-pixel-wide original will not reach 100 KB at any quality worth keeping. Cut dimensions to roughly what the destination displays first, then run the quality pass across the whole batch, and the byte target becomes realistic instead of a fight with the slider on every single file.

Combining images into one PDF is a separate step from compressing them, and this tool does not merge files into a PDF. The straightforward order is to batch-compress the images first, so the PDF starts small, then combine the compressed copies using your OS's built-in tools, Preview's Print menu on a Mac or an online PDF joiner on Windows, so the merge step never has to work against fifty full-size originals instead of fifty already-shrunk ones. This comes up most often with scanned receipts, contracts, or a batch of whiteboard photos that need to leave as one document instead of fifty separate attachments, and the size difference is not small: a PDF built from fifty full-size phone photos can run past a hundred megabytes, while the same fifty images compressed first typically keeps the finished PDF under twenty.

Questions

How do I compress multiple JPG files at once?

Drop the whole folder into a browser batch tool and it processes every JPG in one pass at a shared quality setting, typically up to 30 files at 25 MB each on a free tier. For a folder too large for that cap, `jpegoptim --max=85 --strip-all *.jpg` compresses every JPEG in the current directory in a single command, no browser required.

How do I resize 100 images at once?

A Pro batch plan raises a browser tool's cap to 100 images per pass, 50 MB each, with quality-based compression included in the same step. Without a paid plan, Windows PowerToys' Resize pictures option and macOS Preview's Adjust Size both resize a folder's worth of images at once, though both cut pixel dimensions rather than re-encoding at a quality level.

Can I compress multiple files at once if some are not images?

Image batch tools, including this one, only process image formats; other file types in the same folder are skipped or left untouched. Zipping a mixed folder bundles everything into one download, but zipping barely shrinks already-compressed JPEGs or WebPs further, since a general-purpose archiver cannot remove redundancy the image format already removed.

Can I batch compress images and combine them into one PDF?

Not in one step here. Compress the batch first, so the PDF starts as small as possible, then combine the compressed copies into a PDF using Preview's Print menu on a Mac or an online PDF joiner on Windows. Combining the originals first and compressing the finished PDF afterward usually produces a larger file than compressing first.

Does batch compression overwrite my original files?

It depends on the tool. A browser compressor produces new files and leaves your originals untouched. Command-line tools like jpegoptim overwrite the source file by default unless you add a `--dest` flag, so check that setting before running one on files you cannot replace.

What is the fastest way to batch compress hundreds of images?

For a few hundred files, the command line wins: one `find` command combined with jpegoptim or optipng recurses through an entire folder tree in a single run. For anything under a hundred images and no terminal experience, a Pro batch plan with a 100-image cap is the faster, no-code route.

Ready to batch compress that folder?

Now that you know how to compress multiple images at once, the method you pick depends on the folder in front of you: a browser tool for most people, the resize option already on your OS for a quick pass, or the command line when a folder is too large for either. Drop your folder on the compressor and download every file at once, free for up to 30 images a pass, gone from our storage within the hour.