Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question already has an answer here:

I'm curious is there any faster way to reduce the size of jpeg files. My jpeg files are about 6MB per file. I open each file in a simple Paint program and press Ctrl+S to resave the image. File resaved with let's say 1.3Mb. The quality is worse, but it is still OK to view the image. I do it for each file that is over 2Mb.

Is there any way to do it for over a 1,000 jpeg image files much faster?

P.S. Windows XP or 7 is the OS I'm looking for a solution for.

share|improve this question

marked as duplicate by random May 19 '14 at 4:17

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

up vote 2 down vote accepted

Xnview is an interesting way to batch process thousands of files, because you can also apply some minor but effective filtering in the batch process. When I wanted to process over 1 million files, it was way faster than any of the photo programs scripting or batching methods, and the design of the filter elements work the way a person would want them to. Like the interesting conbright and gamasat, good settings for simple sharpening , and fast filter operations all done in cpu. You could also easily set the quality of the jpeg compression/destruction for the output.

I recommend not because it is free, but because it blew away a popular photo program speed wise by more than 10 times. It would take some time to learn.

To get you started generally:
In the tools menu select Batch processing, select the files or whole folders.
Avoid the scripts as you are not likely to need it for simple stuff.
Set the directory (preferably a New one, not overwriting)
Set the Options for the file format (jpeg) be sure to set the options before starting the process.
Go to the transformations tab, and select a resize, hit Add and adjust the resize values.
If your resizing down it can be helpfull to toss in a bit of sharpening, also in the transforms tab.
Hit the GO button after you have set everything.

Being a bit lazy I will get the batch going, the process is so fast, that I can see how it is working out, and stop it and delete the finals, and make a few more adjustments and start it again. Because this is mostly GUI based, you can test before hand the same actions, and see easily what will occur, then batch the same action to a large set of files.

That is what I use when there is not Re-Touching of the photos, the photos are all mostly the same size and format, and/or the same changes would be useful to all of the pictures, and I just want to process them as best as can be done in a auto process.

Anytime your trying to recrunch high loss format like Jpeg, into just makeing its file size some smaller, if you can choose to resize the file clean it up some , and save it out a at Smaller resolution size with less heavy compression, that will be better than trying to just recompress it and store it with even more lossy compression.
Nothing will beat the most original photos (even highly compressed) for archiving the originals or preserving the originals. Unless the information is discardable, a person would want to think about keeping the Originals, Writing them to a couple of CDs or storing them on a back-up hard drive.
When at work processing peoples photos, having the originals to work with is gold, all the crunched and made for web and smaller versions of them might make better Output, but if they are needed for a different process, or project only the originals (as badly as they may be crunched) are as original as we can get.

share|improve this answer

There are many programs around that do this in batches. I use Image Resizer as an occasional tool. You can then select all the files to process and specify parameters.

share|improve this answer

You could use Cygwin or Linux (possibly within a virtual machine) and use jpegoptim using this script to optimise all jpeg files recursively within the current directory.

#! /bin/bash

optimise() {
  jpegoptim *.jpg *.jpeg -t -p --strip-all
  for i in *
    if test -d $i
      cd $i
      echo $i
      cd ..

I have done this to optimise many thousands of jpeg images on webservers, taking only a few minutes. (Then I copy them to a CDN for hugely increased performance.)

share|improve this answer

If you have Adobe Photoshop at hand, you could batch resize the files in one folder.

Open Photoshop, File > Scripts > Image Processor. Choose the folder the files are in.

Or you could also do this online with:

share|improve this answer

Try RIOT. It very good free windows jpeg/png/gif optimiser and it support batch mode.

share|improve this answer

There are several tools you can use: Format Factory, FotoSizer,... Try one of these ;)

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.