How do I automatically resize all iPhoto pictures above a certain size? I have many photos managed by iPhoto that are over 16 megapixels, much larger than I need. I'm running low on hard disk space and I'd like automatically resize all images over a certain size/resolution by 50%. This is somewhat similar to how iTunes can downsample all your music files above a certain size on your iOS device.

I'm guessing an AppleScript is necessary for this?
There is no way to do this in iPhoto, as what you're doing is destroying data, and iPhoto is built to expressly avoid this.

So, File -> Export, set the Kind to Jpeg and then choose from the Quality setting as appropriate. Export the images to a folder on the desktop.

Trash the images from iPhoto.

Import the exported ones.

Note some things 1: You lose your lossless editing history and Faces data at the very least. If any of the images are used in Books, Slideshows etc then these will have to be remade.

If space is an issue, have you considered moving the Library to a larger disk - an external, for instance? It's easy:

Make sure the drive is formatted Mac OS Extended (Journaled)
 


Quit iPhoto
 
Copy the iPhoto Library from your Pictures Folder to the External Disk.
 
Hold down the option (or alt) key while launching iPhoto. From the resulting menu select 'Choose Library' and navigate to the new location. From that point on this will be the default location of your library.
 
Test the library and when you're sure all is well, trash the one on your internal HD to free up space.