Recently I went hunting for an open source slideshow tool that would work with my WordPress installation. I found lots of alternatives, but most of them interacted with the WordPress database in one way or another, typically by requiring the slideshow to be defined by attaching pics from the media library to a post, and then annotating the post with some tag that would kick off the slideshow.
There’s nothing wrong with the built-in media library, as far as it goes, but it isn’t really suited for managing large numbers of images sorted into categories, i.e. 30 images for one slideshow, 20 for another, etc. There are some plugins that improve on it, but this was all more complicated than I wanted it to be. All I wanted was to be able to prepare a folder of images and have the slideshow drive off of that. Fortunately I discovered exactly what I needed in JonDesign’s SmoothGallery 2.0.
SmoothGallery is a MooTools-based slideshow driver that works off of an HTML document or fragment that describes all the images in the slideshow, as well as the metadata associated with each image (title, description, etc.). The nice thing about this is that it is search engine friendly, and self-contained. The downside is that you have to prepare the HTML document that describes the slideshow. I’m pretty lazy, and didn’t relish the idea of manually adding image elements for 50 slideshow images. So I wrote a tool to do it for me.
SmoothGen is a simple console program that takes as input a folder of images, and outputs a complete HTML document describing the slideshow. It supports all of the options available in SmoothGallery, as well as some additional features such as alternative thumbnail sizes, changing the height of the info pane, and importing title/description fields from image metadata. It was written to work with SmoothGallery 2.0, and requires the .Net framework version 4 to run. The source is included, so you should be able to rebuild it for earlier versions of the framework if you need to. If you have any questions that aren’t answered in the documentation, feel free to drop a comment here.