Currently, for shooting sports events, my workflow contains following sequential steps:

  • shoot at location (JPEG for smaller files and minimum post-processing);
  • batch resize all photos into a size that suits better for web and limited hosting resources;
  • upload the resized photos.

With hundreds or thousands of photos from an event (and I'm not using continuous shooting), this all takes hours to finish, especially because during first step the photos are just sitting there. From server logs, I can see people are expecting the photos to arrive sooner.

I imagine that the workflow would complete faster if the steps could be parallelized, so that resizing and uploading of first photos would start instantly instead of many hours after shooting them.

I know there are Eye-Fi cards to get photos to a local Wi-Fi device, but what next? Is there some software that would resize incoming photos and send them off over mobile broadband (via FTP or HTTP)? I do think resizing has to happen locally, as the broadband is not that broad.

Having a Raspberry Pi lying around, I'd be interested in a Linux-based solution, but a mobile app would do as well. A laptop would be too heavy and power-hungry to carry around all day.

  • 4
    \$\begingroup\$ My first thought when I saw the "thousands of photos" was "please, don't!". As for a Linux solution, it shouldn't be too hard to string together imagemagick to resize the photos and then use maybe curl or a FTP client to perform the upload. \$\endgroup\$
    – user
    Commented Feb 14, 2013 at 10:42
  • 1
    \$\begingroup\$ Even though its push-style transfer is more suited to your goal, I wouldn't recommend an Eye-Fi for use with Linux due to its absymal, 3rd party reverse-engineered only compatibility. A Toshiba FlashAir can be easily accessed over HTTP. \$\endgroup\$
    – Ryccardo
    Commented Mar 30, 2013 at 16:50

5 Answers 5


If you can set up your Raspberry Pi to listen on WiFi, my suggestion is as follows:

  1. Install imagemagick on the Pi to get the convert utility.
  2. Set up the Pi with an SSID and NFS/SMB/whatever shared folder to receive the images.
  3. Script something in bash like for x in *.jpg; do convert -resize 50% $x; done. You can poll the folder on the Pi for changes, too, so you can execute this relatively quickly - see: this SE thread. Note that convert will resize the image in-place, so no pesky duplicate files to handle.
  4. Execute your command of choice to push the images to your sshd/ftpd/httpd server right after the resize command finishes in the script.

nb. This is my first SE answer (although I've been reading photo.se for a long time, hope it's helpful.)

  • \$\begingroup\$ This is more or less what I had in mind when I wrote my comment, but it's a proper answer so +1. \$\endgroup\$
    – user
    Commented Feb 15, 2013 at 8:54
  • \$\begingroup\$ WiFi on the pi is not an easy task since it doesn't always put enough power out of the usb port, if you can do tethering that would be more efficient for one. \$\endgroup\$ Commented Feb 17, 2013 at 21:59
  • \$\begingroup\$ Also using RAW+jpeg might be quicker too and the image processing in-camera would be far superior to converting on the pi unless Convert can make use of the GPU? \$\endgroup\$ Commented Feb 17, 2013 at 22:06
  • \$\begingroup\$ James, good point about the pi's usb, but mine seems to be very reliable on an ~1A 5V source. One of those portable cell phone charger devices connected via the micro usb port should do nicely for power. As to the raw/jpg, I'd think it best for overall efficiency to shoot as low res as one could get away with anyway. The pi doesn't have to resize, it could simply upload if the camera jpgs are sufficiently small enough. \$\endgroup\$
    – TroyR
    Commented Feb 18, 2013 at 9:13

Photo Mechanic is one of the most widely used products by photojournalists due to the speed you can read your cards, scan thumbnails, add metatdata and upload images. It's a standalone program which runs on Mac and Windows - I don't think there's a version for Linux.

If you have a Eye-Fi card, Photo Mechanic can monitor folders for new files as you shoot them (so as Eye-Fi uploads images, Photo Mechanic can import them). It can add IPTC data from a tempalte as it read them. It's supposed to be super fast at generating thumbnails and for searching and tagging. It can crop, scale, and upload to various services, and also has a feature where you can upload to a remote catalog over HTTP.

I haven't used it myself, so can't say it meets all your requirements, but it's recognised as the premier product for in-the-field cataloguing of images.

  • \$\begingroup\$ I don't have the Eye-Fi (yet), but if it can do the resizing and uploading, a portable WiFi-to-mobile hotspot is all I would need (and actually already have). \$\endgroup\$
    – Imre
    Commented Feb 14, 2013 at 11:07
  • \$\begingroup\$ It seems that as of now, scaling happens on Eye-Fi server, effectively wasting lots of data (and time) over network. \$\endgroup\$
    – Imre
    Commented Feb 14, 2013 at 14:34
  • \$\begingroup\$ Sorry, I'll edit, when I said "if you have an Eye-Fi card, it can monitor" I meant Photo Mechanic can monitor the folder Eye-Fi is writing to. \$\endgroup\$
    – MikeW
    Commented Feb 14, 2013 at 18:36

Photoshop has a batch-gallery creator (from a folder) and so you'll get also thumbnails and big-images

File -> Automate -> Web Photo Gallery => Check the Options select box

Update: I used and liked XnView - http://www.xnview.com/ I can see it also has a linux version. It's way light than Photoshop

  • \$\begingroup\$ The downside of this is that you'd need a laptop to run Photoshop (which the OP has already ruled out as too heavy and power-hungry); I don't think Photoshop will run on the Raspberry Pi. \$\endgroup\$
    – user
    Commented Feb 14, 2013 at 10:43
  • \$\begingroup\$ Sorry, I didn't know the capabilities of Raspberry Pi but, this Photoshop option is also available for older versions - I can't tell but a version log will do. \$\endgroup\$ Commented Feb 14, 2013 at 12:13

I used a Nikon D4 which embeds IPTC into RAWS and jpgs. Before an event I upload a batch of templates into the camera. D4 is USB connected to my Pi but you can also connect it via wifi to avoid wires. the RAWS are stored on a HD and the jpgs sent to my database running php scripts to retreive the metadata and flash them beside the thumbnails on my website. The Pi is connected to my server either by ethernet, wifi or 3G. Camera and pi run on batteries. Wifi dongle on Pi works without using a powered usb hub as well. The pi runs cronjobs, and also waits for new files. It can resize files too using gphoto2. Best. Laurent

  • \$\begingroup\$ Sounds like a neat approach, but I think for the computer geek level of this site it really needs a higher level of detail to be a helpful explanation. \$\endgroup\$
    – mattdm
    Commented Dec 31, 2013 at 2:31

I would suggest investing in a programmer.

A programmer can easily make a python script to resize an image and copy it to a directory that is under control of Dropbox.

Then, dropbox uploads your resized image to it's cloud service. And you share your dropbox folder with your customers.


  1. Shoot tethered/eyefi/wifi to copy to a directory.
  2. Have python script poll/get notified when a new file appears.
  3. Have python script open file, resize, maybe even throw a watermark for good measure.
  4. Have python script copy to your dropbox folder.
  5. Have Dropbox.exe running on your computer.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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