Edit Note 2018-03-24: I am now using sigal for this, and I am not sure if BINS is still maintained.
The BINS Photo Album is a package to generate static web pages from the command line. Why would you want to do this? Well, most of the dynamic web photo albums require that the server do all the work when the client requests the images, thus either slowing it down, or requiring a very beefy server. Also, you introduce the chance for a script-kiddie from hacking your site. Not good.
Enter BINS. Some of its features include:
- album can contain other albums (sub albums): the album can have a tree structure ;
- generation of a thumbnail and of scaled images for each picture ;
- generated album appearance is fully customizable by using HTML templates (5 different templates sets are currently provided) and configuration parameters: colors, number and size of thumbnails per page, number and size of scaled pictures (in pixels or percentage of the original image for the size), fields to display, etc. Those parameters can be set globally (system wide or per user), per album or sub album or per picture (such as, you can change the colors of one sub album or one just one picture page in an album by editing its description file) ;
- several description fields (date, location, etc…) can be associated with the pictures (in text or HTML format). You can easily add or customize these fields ;
- description fields can be set or modified via a command line interface or a GTK+/GNOME-based GUI ;
- A search engine is included in the album : you can find some pictures by searching keywords in their description fields.
- Album can be generated from pictures managed by Zoph.
- Exif information and Digital camera support :
- use the EXIF data structure found on some image files (usually, those produced by digital cameras) to fill automatically some fields (date and time for example).
- BINS use the Orientation EXIF tag (which is normally set when you rotate a image on you DigiCam) to rotate the picture to correct orientation.
- For each image, a page provides all information available on the picture and the DigiCam settings when the photo was taken.
- Additional information are provided for Canon DigiCams.
- Tooltips provide information about the meaning of some of the fields.
- All EXIF information is saved in the XML description file, preventing they disappear when the image is modified ;
- internationalization (generation of album in different languages) using gettext. Current languages supported are Catalan, Dutch, English, Esperanto, Finish, French, German, Hungarian, Italian, Japanese, Polish, Russian, Spanish and Traditional Chinese ;
- customizable charset encoding for HTML generation, including UTF-8 (Unicode) support by default. Generation of the Apache
.htaccessfile for correct encoding charset in HTTP headers ;
- use of XML files to save user description of pictures and albums/subalbums and Exif data from image file ;
- handle correctly file and directory names with spaces or other odd characters (excepted ‘/’), and create valid escaped URLs ;
- generate valid HTML/XHTML code. The level of HTML depends of the style used. Some of the styles are valid, table free XHTML.
The web site has some great examples. Go check them out.