(Note: the following describes the way that I did this. There may be other ways that work equally well. Also, whenever I say "camera" or "image device" below, I mean any of these: an iOS device, an SD or other camera card plugged into the computer, a camera connected via a USB cable or any other device that Image Capture sees when attached to your Mac.)
To begin, make sure that no "image devices" are connected to the computer; that means no iPad or iPhone/iPod touch, no cameras, no SD cards. You don't want to confuse anything into thinking it is supposed to run yet.
Then, in Finder, click the "Go" menu and then "Go to Folder..." (⌘ + Shift + G for you keyboard folks) and then go to /System/Library/Image Capture/Support/Application as shown here:
Inside that folder you will see two files: AutoImporter and ImportImage.bundle. Double-click on AutoImporter, and it will launch. If you have any image devices attached to the camera, AutoImporter tends to quit automatically after a few seconds, that's why I had you make sure they were all disconnected first.
Open AutoImporter's Preferences, and you will see something like this:
You can choose where to have your pictures imported. It defaults to ~/Pictures/, but you can specify a subfolder name by dragging the the date, camera name, user name and/or sequence # items to the white field. You can see that I have chosen "camera name" as the only part of the subfolder name. This means that pictures taken on my camera, iPod touch, iPad and iPhone will all be sorted into different folders. If you attach your camera directly to the computer with a USB cable, that is different than plugging the SD card directly into it. Cameras will get one folder, SD cards will get different folders based on their names as shown in the Finder. Also, iOS devices are named according to how you see them in iTunes.
N.B. You cannot make several subfolders like "user name" / "camera name" / date. The field will not accept a "/" character (and a ":" will be treated as a literal character). I even tried copying a "/" and pasting it into the field, and it still did not work.
You will also notice the "Delete items from camera after successful import" option. You should not check that box. I'll explain why very soon. If your camera takes videos as well as pictures, they will also be imported to this same folder.
Once you have the settings that you want for AutoImporter, quit the application.
Attach your image device to your Mac and launch Image Capture. It will show you a window that lists attached devices as well as pictures that have been found on those devices.
Image Capture will let you set specific applications to launch when specific cameras are attached. For example, here you can see that I have set AutoImporter to launch whenever my iPad is attached:
(Note: that is a closeup of the bottom-left part of Image Capture's window.)
Image Capture also has the option to "Delete after import," and here is where you should decide whether or not you want images deleted from the camera. If you set AutoImporter to delete items from camera after successful import, it will override the setting in Image Capture. To avoid confusion, I highly recommend leaving the AutoImporter setting off and using Image Capture's settings to control whether or not images are deleted.
You can choose to have no application open, or Image Capture, Preview, iPhoto or AutoImporter. Other image handling applications may also appear if installed, but if you don't see the one you want, choose "Other..." -- then you can select it. You could create your own application using Automator and have it launched if you want.
Hazel and Dropbox (Optional Steps)
As I said, when I connect my camera to my Mac, I want to get my pictures off the camera as quickly as possible, but that doesn't mean I just want them all sitting there in one big folder, even if they are sorted by camera name. I prefer to have my pictures grouped together by the day that they were taken, and I'd rather keep my pictures in my ~/Dropbox/Photos/ folder so that they are automatically backed up. I also want my videos moved to ~/Movies/, not left in ~/Pictures/.
I manually created a folder for each "camera" in my ~/Dropbox/Photos/ folder, for example ~/Dropbox/Photos/16GB iPad/. Then I created a Hazel rule for ~/Pictures/16GB iPad/:
- If kind / is / image
- Sort file into subfolder / with pattern / Date Created
And then I created another rule:
- If kind / is / folder
- Move file / to folder ~/Dropbox/Photos/16GB iPad/
I did the same for each "image device."
For the iPhone/iPod touch and SD card folders I added additional rules:
- If kind / is / movie
- Move file / to folder ~/Movies/
And I created a Hazel rule for ~/Movies/:
- if / name / Starts With / "IMG_"
- Rename file / with pattern / date created "#" extension
Where "#" is the Hazel attribute for a counter. That way, if I take more than one video on the same day, the names won't conflict. (Note that your camera may not name videos "IMG_," in which case you'll need to change that Hazel rule accordingly.)
You could probably accomplish the same thing with Folder Actions and some shell scripts, but I've found Hazel to be much easier to use and more reliable.