Epsilon Developers Documentation

Corey Donohoe <>

Carsten Haitzler <>

Azundris <>

Eric Johnston <>


What is Epsilon?

This is a small, display independent, and quick thumbnailing library. The lib itself conforms to the standard put forth by You can find out more information about it at fdo thumbnail spec It seemed better to break it out into a component that only depended on what was absolutely necessary. Upon showing raster the wonders of thumbnailing, he proclaimed that it was far to slow, this prompted him to write epeg. Epeg offers very noticeable speed increases to this standard, but is only available if the input image is a jpeg file. If the file is anything other than jpg, the traditional png thumbnailing will occur.

To show the speed increase epeg offers, Epsilon builds with and without epeg. Notice the time difference for the epsilon compiled with Epeg.

Digital Photo Results: 3072x204 jpeg images

nemesis% du -sh /home/atmos/Pictures/October_07_2004/     
241M    /home/atmos/Pictures/October_07_2004/

Mixed Image Formats: png,gif,xcf,and jpg, various sizes

nemesis% du -sh /home/atmos/Images/  
289M    /home/atmos/Images/

How do I use epsilon ?

Epsilon isn't really an app anyone will use. The executable provided is merely for testing the library's functionality. If you would like to generate thumbnails, simply run epsilon on the image files.
$ epsilon /home/me/myphotos/*.jpg 

You'll see messages saying that the thumbnails need to be generated. After a short time you'll be back at your command prompt. Running the same command after the thumbnail has been generated returns the meta info stored inside of the thumbnail. Exif info is extracted from the image file if it is present. The epsilon executable is just a simple test case for the library. You can extract much more information from the lib than you see from the epsilon executable.

nemesis% epsilon /home/atmos/Pictures/October_07_2004/October_07_2004_098.jpg /home/atmos/navigation_bar_things.png 

Thumbnail already exists
Thumbnail already exists
URI: file:///home/atmos/navigation_bar_things.png
Source Image Width: 685
Source Image Height: 195
Source Image Mtime: 1097025094
Trying EXIF Info: Not Found!

Thumbnail already exists
Thumbnail already exists
URI: file:///home/atmos/Pictures/October_07_2004/October_07_2004_098.jpg
Source Image Width: 0
Source Image Height: 0
Source Image Mtime: 1097168889
Trying EXIF Info: Found!
Image Orientation: Left-Hand, Bottom
Exposure Time: 1/60 sec
F-Number: f/5.6
ISO Speed Rating: 400
Flash: Flash, Auto
Focal Length: 49.00 mm

What does Epsilon require?

Epsilon relies on a lot of libraries most notably

The following instructions assume you've checked out the e17 directory from cvs.

$ cvs login 
$ cvs \
co e17/libs/imlib2 e17/libs/imlib2_loaders e17/libs/epeg e17/libs/epsilon 

That should fetch all the libraries you'll need to get epsilon.

1. You need libpng, your distribution probably already has it

2. You need Imlib2 > 1.1.0 
  cd e17/libs/imlib2; ./; make; sudo make install

3. You need imlib2_loaders
  cd e17/libs/imlib2_loaders; ./; make; sudo make install

4. You need Epeg from cvs
  cd e17/libs/epeg; ./; make; sudo make install

5. You need Epsilon from cvs
  cd e17/libs/epsilon; ./; make; sudo make install

Add a -c option to epsilon that goes through and prunes invalid thumbnails.

Copyright ©

Epsilon Documentation Generated: Sun Sep 27 01:51:16 2009