eSlides 2.0: A Web Slideshow Generator

The eSlides documentation and user manual is still being updated. MIT Athena users can use eSlides to generate their own web slides by following these simple quick-start instructions, which can get you up and running in less than a minute.

Check out some sample web slideshows created using eSlides.

Download [ eSlides.tar ] or check out the individual source files: [ eSlides perl script ] [ eSlides.template ] [ eSlides.js ] [ eSlides.css ]

1 Introduction

1.1 What is eSlides?

eSlides is a free lightweight and high-performance command-line tool for generating web slideshows. It takes a folder of photos as input and automatically generates thumbnails with optional drop shadows, web-optimized viewing images, a webpage with a dynamic slideshow, and an optional link to a zip file with all the full-scale images. It is a Perl script that uses ImageMagick and can be run on Unix, Mac OSX, or Windows. Because eSlides does not rely on any auxiliary Perl modules, it can be easily run on any machine with a Perl interpreter and ImageMagick.

Most available slideshow software, like the Web Album Generator for Windows, create static slideshows consisting of a collection of webpages, but eSlides harnesses the power of Javascript and CSS stylesheets to maximize the digital photo sharing experience with images that dynamically slide across the web browser.

1.2 Why should I use eSlides?

If you own a digital camera, then you've most likely tried to share some of your digitally captured moments at birthdays, formals, parties, and trips with friends or family. To share the photos, chances are that you've tried instant messaging your photos, sending the photos over email, or simply dumping them into a publicly viewable directory on some web server, and you might have found that all of these methods are quite inefficient.

Instant messaging the photos requires many rounds of pairwise communication where both the sender and the receiver are online concurrently and can be slow when there is limited network bandwidth. Sending the photos via email does not scale well to a large number of images and can easily consume excessive mail storage space or cause email clients to freeze while downloading multi-megabyte attachments. Simply dumping the photos into a public directory on some web server offers the viewer no easy way to scan the images; the viewer must pogostick though each link one-by-one to view and save photos, unless the viewer is technically savvy and knows how to use a utility like wget or an scp client. These utilities would still require the user to download the images and then subsequently use some image viewing software on their computer to view the images.

eSlides solves the photo-sharing problem in a fun and efficient manner. You download a collection of photos from your camera onto your computer, type in a command to run eSlides to generate a web slideshow from the photos, and then upload the output folder with the slideshow of the images onto a publicly viewable web server to share your photos with the world. No excessive bandwidth cost to share the photos, no excessive CPU cost to generate the slideshow, and no cost for the photo-sharing software.

1.3 What's new in version 2.0?

eSlides 2.0 supports the following new features:

eSlides 1.0 used an open-source image manipulation application called the GIMP to generate thumbnails. In version 2.0, the eSlides program core was rewritten to use a lighter weight and more powerful image manipulation utility called ImageMagick for faster thumbnail generation and for thumbnail drop-shadow support.

Considerable development effort was invested to tuning performance optimizations in eSlides 2.0. A 1.33 GHz PowerPC G4 Powerbook can generate web slides for 30 photos without drop shadows in under 70 seconds and with drop shadows in under 100 seconds.

1.4 Requirements

Usage of eSlides only requires Perl, ImageMagick, and the eSlides code. Consult the installation and usage instructions for more details.

1.5 License

eSlides is an open-source application licensed under the GNU Public License. Thus, you are free to use, modify, and distribute the application.

2 Quick-Start for MIT Athena Users

If you are not an MIT affiliate with an Athena account, skip this section.

A copy of the eSlides tool is publicly accessible to MIT Athena users at /mit/edmond/Public/eSlides/. To generate a web slideshow, follow these simple four-step instructions in an Athena terminal.

  1. Add the graphics locker to access ImageMagick utilities by entering the following command at the Athena prompt:
    athena% add graphics
  2. Add the edmond locker to gain easy access to eSlides through the /mit directory:
    athena% add edmond
  3. Change to your Public/ directory or www/ directory or wherever you would like the web slideshow to be generated.
  4. The command to run eSlides is:
    /mit/edmond/Public/eSlides/eSlides [-tar] [-shadow] input-directory "title"
    So, for example, if your photos are stored in ~/photos/karaoke, and you would like to title your web slideshow "Karaoke Night", run the following command on your athena prompt:
    athena% /mit/edmond/Public/eSlides/eSlides -tar -shadow ~/photos/karaoke "Karaoke Night"
    This command creates a Karaoke-Night directory in your current working directory with an index.html file that contains your web slideshow. The -tar flag bundles all your images into a tar file so that people can easily download your images, and the -shadow flag generates fancy drop shadows for your thumbnail images. Both flags are optional and can be omitted.

3 Installing eSlides

The requirements for running eSlides consist of three components: a Perl executor, ImageMagick version 6.0 or higher, and the eSlides tool itself. This section provides instructions for obtaining the three components on an Unix/Mac OS X environment as well as on a Windows environment.

3.1 Unix/Mac OS X

  1. Perl should come pre-installed in Mac OS X and is distributed with most Linux distributions. To verify that Perl is installed on your system, run a simple Perl command in the terminal (you can start a terminal in Mac OS X by going to Applications > Utilities > Terminal):
    perl -v
    If Perl runs and outputs its version information, you're set for this step. Otherwise, you may need to install Perl by either building Perl from source code or downloading a binary for your system.
    • Source: You can build Perl from the source code by following the instructions on perl.com.
    • Binaries: If you do not have a compiler or are unsure how to compile source code, you should download the binary for your system. For Mac OS X, you can use a binary called Active Perl; for Unix, you can find an appropriate binary on the CPAN ports page.
  2. To check if ImageMagick version 6.0 or higher is installed on your system, run the following command on your terminal prompt:
    convert -version
    If the convert program executes and identifies itself as ImageMagick version 6.0 or higher, you're set for this requirement. Otherwise, the simplest way to obtain a new version of ImageMagick on Mac OS X is to download and run this installer. Be sure to download version 6.0 or higher. On Unix, you can either install from source or download a binary release from the official ImageMagick page.
  3. Download eSlides.tar and extract the contents into your Applications folder or whereever else you prefer. To make running eSlides easier in the future, you can add eSlides to your path. To do this on a bash terminal (the default terminal on Mac OS X), add the following two lines to your .bash_profile in your home directory. If you did not extract eSlides to /Applications/, then replace that path with whereever you extracted the program.
    PATH=/Applications/eSlides:$PATH
    export PATH
    
    You will need to restart your terminal for the change to take effect.

3.2 Windows

4 Using eSlides to Generate Your Own Web Slides

eSlides provides a very simple command-line interface:

eSlides [-tar] [-shadow] input-dir "title"

For example, if your photos are stored in ~/photos/karaoke, and you would like to title your web slideshow "Karaoke Night", run the following command in a terminal:

eSlides -tar -shadow ~/photos/karaoke "Karaoke Night"

This command creates a Karaoke-Night directory in your current working directory with an index.html file that contains your web slideshow. The -tar flag bundles all your images into a tar file and adds a link to the tar file in your slideshow so that people can easily download your images. The -shadow flag generates fancy drop shadows for your thumbnail images but requires slightly longer to run. Both flags are optional and can be omitted.

Note: At this time, the eSlides program does not support an input directory with spaces, so if the path to your photos contains spaces, you will need to change directories to one such that you can specify an input directory without spaces.

5 Technical Specification

5.1 Design Goals

  1. Small footprint. The tool should not require any intricate installation or uninstallation; a small footprint allows the tool to be easily copied to any machine.
  2. Portability. In order to easily share the tool, the tool should be cross-platform and run on Athena. The output of the tool should also be conveniently packaged into a directory.
  3. No server-side scripting. Because most people do not own web servers, the webpage(s) generated by eSlides must be standalone and viewable on any web server where someone might not have access to server-side scripting. For this reason, PHP is out fo the picture.
  4. Quick use. Because the purpose of the tool is to enable the user to share photos as quickly as possible, usage of the tool should require a minimal amount of the user's time.
  5. Simplicity of interface. The design focus of the tool should be on a straightforward approach rather than burdening the user with multiple configurations and options.

6 Contact Information for Comments, Feedback, and Feature Requests

I am still actively developing eSlides. Please send any comments and feedback about the tool to edmond@mit.edu.

Created 5.23.2005 - edmond@mit.edu