LBIMAGIC 2.0

Author: T. Pavlidis

Albimagic is a program for posting collections of pictures on the web (web photo albums) that I wrote after I became frustrated with one program that I had bought and after taking a look at some others (including free ones offered by IPS or portals) and not finding what I wanted. A zipped executable, Albimagic231.zip is available for downloading. Use at your own risk! There is also a Help file that the program can access directly from the web, so you need not download it. (For "geeks": Albimagic is compiled with MFC as static and as a result the zipped file is three time bigger, but it is also safer to run. Version 2.0 relies on the MFC CImage class while Version 1.6 and earlier used their image I/O and display code. As a result the code to be maintained has decreased significantly.)

The program is suitable not only for ordinary photo collections but also for creating web pages to display computer generated images. Because comments about the images can be read from a text file an image processing or graphics program can generate that file at the same time as the images and then Albimagic will create the web page from them. There is an option that lets you create a web page suitable for inserting text with (usually) large size "Thumbnail" sketches as illustrations.

Design Philosophy

The program follows the Unix philosophy of having one tool do just one thing. So Albimagic creates only web pages with thumb sketches from a set of given images. It does not do any image manipulation, enhancement, or make tea. Users are supposed to have taken care of that using another tool. (However Albimagic may resize, crop, or rotate images for the web display if the user so desires.)

For the same reason that it does no image processing, Albimagic does not fuss around too much with the web page appearance. Its goal is to take over the tedium of creating thumb sketches and laying them out on a page. If users want to include a lot of comments or change the appearance of the captions, etc, they can do so with a web page editor.

The following are some features that I needed but II could not find in the programs I examined (although they might exist in others) and I built into Albimagic.

  • Thanks to the CImage class of MFC the program handles JPG, BMP, PNG, and GIF files. (It does not handle indexed or paletted images because, with the exception of GIF, these have become obsolete as digital memories have become less and less expensive.)
  • Users can select an area in a picture from where to build the thumbnail sketch (so it can focus on, say, people, rather than the sky).
  • Images can be re-ordered by drag and drop.
  • Captions may (optionaly) be displayed under the images.
  • The web page uses a style sheet rather than font information on every caption so that users can change easily the appearance of the page through any web page editing tool.
  • Work is saved in a character file, Albimatic.txt, that computer-experienced users can edit. (Another echo of Unix!) This allows for quick assignment of captions or dates to groups of pictures as well as re-ordering. It can also be generated programmatically, a useful feature for albums of computer generated images.
  • For beginners there are hints, including pop-ups (that come up when the user chooses a toolbar button) explaining what the button does (see below).

Hints for Beginners

The program starts in a "learning mode" and whenever a toolbar button is "pressed" a dialogue box pops up explaining the function of the button. Each of these dialogues includes a checkbox for getting out of the learning mode and suppressing additional messages of this kind. The learning mode can also be modified through the Options dialogue or the HELP button. The mode is saved in the registry, so Albimagic remembers the user preference between sessions.

Source Code

Not ready yet for prime time. The core of the program has been put together from pieces from other other programs (see below) and it requires a lot of clean-up. Such code streamline is the only task left (besides bug fixes).

Credits

Most of the code of the first version was taken from certain image processing programs I had written (see for example some of my pack4png work). Version 1.6 and earlier used a basic JPEG I/O library was obtained from the Independent JPEG Group site and a basic PNG I/O library was obtained from the Portable Network Graphics site. Some of the code for dealing with the directory tree interface was taken from the CD-ROM accompanying Programming Windows with MFC (2nd ed.) by J. Prosise. HTML and other web related specifications (such as the. standard colors) have been taken from the O'Reilly "Koala" book (HTML & XHTML).

Harry Pavlidis made several suggestions (and particular the one that resulted in the Hints/Learning mode feature) as the first user of the program after myself.

Timeline

I started the project (perhaps appropriately) on April fool's day 2005 and most of the initial work involved importing classes from some of the image processing programs that I had written (see Credits). I had a working program (for myself) a few days later and by April 12 I had a version good enough for friendly users that I posted on the web. After the middle of May work fell mostly in the bells and whistles category. Independence day seems like a good time to wrap up the project.

Albimagic 1.5 was posted on July 3, 2005. Albimagic 1.6 was posted on October 21, 2005. It contains some minor bug fixes and an option for going around some over-aggressive advertisement filters that (incidentally!) suppress many thumbnail sketches. (See advanced options menu.)

Albimagic 2.0 was posted on January 12, 2006. Its main difference with earlier versions is the use of the CImage class of MFC.

The Latest: Albimagic 2.3.1 was posted on August 15, 2008. It includes some minor bug fixes and reading the Exif record of image files to accurately post the time and date a picture was taken.

Author's Main Page