Is there a program (preferably free) that would allow me to shrink a ton of JPEG pictures at once?
June 21, 2010 12:42 PM   Subscribe

Is there a program (preferably free) that would allow me to shrink a ton of JPEG pictures at once?

I constantly need to shrink a large number of high resolution JPEG files to under 1 MB every day for work. Right now I need to shrink each file one at a time, and this is very time consuming. Is there a program (preferably free) that would allow me to shrink all the JPEG pictures at once?
posted by AZNsupermarket to Technology (17 answers total) 5 users marked this as a favorite
 
Irfanview

"...Selected thumbnails can also be sent directly to IrfanView's Batch Processing module..."
posted by de void at 12:44 PM on June 21, 2010 [2 favorites]


Do you mean shrink in size as well as filesize? If so, Google's Picasa lets you do this.

Select the ones you want, choose Export to Folder from the File Menu and choose the width you want.
posted by jontyjago at 12:45 PM on June 21, 2010


Given that JPGs are already compressed files, you're not going to shrink them very much without reducing resolution.
posted by Admiral Haddock at 12:47 PM on June 21, 2010


You need a batch conversion utility. Take the originals, put them in a folder, point the utility at it, and setup what you want to have happen. Most programs can save all the new, smaller copies (however you define "small") in a new folder wherever you desgnate it to be, and/or save them with a specific filename convention like DSC300025_small.jpg.
posted by DarlingBri at 12:51 PM on June 21, 2010


Seconding de void with Irfanview.
posted by fingerbang at 12:54 PM on June 21, 2010


ImageMagick is an open-source, command-line tool for manipulating images. Being a command-line tool, it's not the most intuitive thing to use, but it's just the thing for processing a lot of files. There would be a learning curve getting it to work the way you wanted, but once you did, it would be a big time saver.
posted by adamrice at 12:54 PM on June 21, 2010


+1 to ImageMagick, that's what I used to batch resize pictures to thumbnail format a long time back. Worked fine for my needs, but then again I'm a command-line type of guy.
posted by splice at 12:56 PM on June 21, 2010


Best answer: http://imageresizer.codeplex.com/
posted by pants tent at 12:58 PM on June 21, 2010 [2 favorites]


And for what it's worth, you'd be looking at the "mogrify" program in ImageMagick, and the most likely options you'd be looking at are -compress and -quality.
posted by splice at 12:59 PM on June 21, 2010


you're not going to shrink them very much without reducing resolution

Nonsense. Going from q=90 to q=60 for example could easily result in the file size shrinking by half.
posted by Rhomboid at 1:09 PM on June 21, 2010


Response by poster: reducing the image size is fine by the way.
posted by AZNsupermarket at 1:16 PM on June 21, 2010


Shrinking dimensions (which will also shrink file size) can easily be set up as a Photoshop action. If you have Photoshop, just look into how to do this -- it's like recording and playing a macro.
posted by amtho at 1:16 PM on June 21, 2010


Response by poster: pants tent is the winner! That program works perfectly is incredibly intuitive! Thanks to everyone who responded, and special thanks to pant tent for finding the perfect solution.

PROBLEM RESOLVED!
posted by AZNsupermarket at 1:32 PM on June 21, 2010


irfanview:

file->batch process/rename
select images, choose "add" or "add all"
choose your output directory and or "advanced options"
done!
posted by fake at 1:33 PM on June 21, 2010


Probably too late, but Multiple Image Resizer .NET is a pretty good one.
posted by christopherious at 1:58 PM on June 21, 2010


Or the "convert" program in ImageMagick.
$ for f in *.jpg; do convert -resize 640x -quality 60 $f small_$f; done
If you leave out a width or height in the "-resize WxH" it keeps the aspect ratio all proper.

#!/bin/bash
SIZE="$1"
shift

function usage() {
	echo "Usage: $0 size filename*"
	exit
}

if [[ -z "$SIZE" ]]; then
	usage
fi

for f in "$@"; do
echo $f
	s="small_$f"
	cp "$f" "$s"
	q=100
	while [[ $(ls -l "$s" | cut -d' ' -f5) -ge $SIZE ]]; do
		 convert -quality $q "$f" "$s"; q=$(( $q - 1 ))
	done
done
$ smallit 1000000 *.jpg

Will get you lowering quality until below a certain size.

(on preview, aw, shucks...)
posted by zengargoyle at 2:02 PM on June 21, 2010


Maybe I'm missing something but a quick way to do this is to highlight a bunch of jpgs, then right click --> send to --> mail recipient. You don't actually have to use whatever client is on the machine and it will give you a couple of resize options. When the message box opens with the resized jpgs attached just save them somewhere else.
posted by Big_B at 3:52 PM on June 21, 2010 [1 favorite]


« Older I don't even know if I have a parachute, let alone...   |   Do photochromic/transitioning/Reactolite... Newer »
This thread is closed to new comments.