The 1-2-3 guide to using this software:

AGG is really that easy; you need to:

  1. Locate the directory you want resize/rotate/create gallery of; Start up AGG. Select File->New Project. Now you can type in that location in the "Image Collection Directory" field or just navigate to it.
  2. Select an output directory. Can be the same as input, though not recommended. Most of the other settings are OK, so you can just click OK.
  3. Wait for thumbnail creation. Now, navigate through you collection with the "Prev" and "Next" buttons and rotate the ones you need (if any). When you're done, click on Generate Gallery. That's it!

Or, if you are interested in just resizing pictures (without any galleries etc.), use the Batch resize tool.

The more sophisticated Guide...

1. Introduction
2. System Requirements

3. The project settings

1. General Gallery Options

1. Gallery title
2-3. Input/Output directory
4-5. Picture Sizes
6. Add Exif stats (if available)
7. Create a .ZIP with all images
8. Enhance all images (AutoContrast)

2. Gallery Look Options

1. Show when viewing image
2. Text Color, Gallery Background color & Background image
3. Font
4. Thumbnail format
5. File info and shorten file names
6. JPEG Quality
7-8. Images per row/ multipage gallery
9. Rollover thumbnails type

3. Advanced Gallery Options

1. Force lowercase on output filenames
2. HTML Template
3. Custom HTML Code
4. Watermarks

4. File Menu

Add/Reorder images...

5. Picture Menu
6. Gallery Menu
7. Tools Menu

7.1 Batch Rename
7.2 Batch Resize
7.3 Transfer Exif
7.4 Batch Transfer Exif
7.5 Adjust Exif Date
7.6 Benchmark

8. The main dialog
9. Shortcuts & Hints

1. Introduction

AGG is designed with the primary purpose to resize (and eventually rotate) pictures from, e.g., your digital camera and place it in more web-friendly form, much smaller in size and with appropriate thumbnails. With it, posting the pictures from your last trip/vacation/whatever to your website (with the proper resizing and rotating) will cost you less than 5 minutes.

It could be used for many other purposes, too.

2. System Requirements

AGG should run on any Pentium-class machine with at least 16 MB of system RAM. The application is quite memory-hungry, though; it could eat up lots of megabytes if you operate on large pictures. Since it takes 16 bytes to store a single pixel in AGG's internal format, that means you'd need at least 12MB of RAM just to store a 1024x768 image and, thus at the very least, 32 MB of system memory just to operate on collection of 1024x768 images. Since most big images are generated by digital cameras and the amount of the RAM is proportional to the camera's Megapixels, I've come up with the following formulae:

Needed memory (MB) = Megapixels x 32

This takes into account the fact, that resized pictures also require memory for temporal storage and also the OS overhead.

Anything else in your system would be fine. You'd like to use at least 16bit color mode when dealing with images, and I'd recommend at least 400 MHz processor if you intend to do convert anything bigger than just a few images.

3. The project settings

Whenever you create a new project, or select Gallery->Configure on an existing one, you are presented with the "Project Settings" dialog; these settings are global to the project (i.e. to all the pictures). Here's the explanation of each one of them:

1. Gallery Title

Sets the name that will be displayed in the HTML title tag and in the page's heading. If you leave it empty, AGG will fill it in with the name of the Input directory.

2 & 3. Input/Output directory

The input directory is where your pictures reside; the "Raw" data. Any files besides the JPEGs in that directory are merely ignored.

The output directory is where the HTMLs, the resized pictures and the thumbnails will end up. It may be the same as the Input one, but this will overwrite the original images. For each file "xxx.jpg" in the input directory, AGG creates "xxx.jpg" in the output directory and a thumbnail, named "thumbs/xxx.jpg" (or "thumbs/xxx.png" if you selected PNG thumbnails).

4 & 5. Picture Sizes

The two fields, "Resize pictures to:" and "Size thumbnails at:" command how much your output images will be. E.g. if your input pictures are 1600x1200 or 1200x1600 and you selected "1024", the output pictures would be 1024x768 and 768x1024, correspondingly, since the bigger side is taken when calculating the scaling factor.

NOTE: AGG will never up-scale an image. If an image turns out being smaller than the requested in the configuration dialog value, it won't be resized, but rather just copied. If rotation is needed, it is opened, rotated and saved, but scaling still doesn't occur.

TIP: If you don't want your photos being resized, set the Picture size to a sufficiently large value, like 9999.

TIP: If you just want to add gallery+thumbnails to your images, create a project with Input Dir = Output Dir and set the Picture size to 9999.

6. Add Exif stats (if available)

This will add a simplistic HTML page with Exif statistics. This is probably worthless if you are not a keen photographer, or you have some very simple (or old) digital camera. So this feature is intended for SLR-like and dSLR camera owners. The page will contain histograms for usage of following image shooting settings:

The Exif stats page is only generated if enough information is available (at least two images that contain at least ISO, Aperture, Shutter or Focal length data). If the page is generated, AGG will put a link to it in the main gallery page.

A last note: If you like this feature, keep in mind, that AGG is not created for this exact purpose - there are some very good programs that will do Exif statistics on a bunch of images and display it in a human friendly format. A good program that does this is ExposurePlot (which is not connected to AGG in any way).

7. Create a .ZIP with all images

If specified, AGG will create a .ZIP file with all images from your gallery. Note that, while very useful, this feature will nearly double the required gallery storage space. If the file is generated, AGG will put a link to it in the main gallery page.

NOTE: The .ZIP file format does not cope well with non-english file names. Specifically, you may change the output file name of an image with the Rename/annotate tool, but if you use non-latin characters, the file's name may be garbled in the .zip (or even absent at all!).

8. Enhance all images (AutoContrast)

If this is specified, all images will be preprocessed by applying auto contrast to them. It is performed by analyzing the image and normalizing the intensity in the [0..1] range. This works well for scanned images, for photos through fog or great distances, where contrast usually diminishes. Please note, that this feature will probably do a good job in most cases, but is no match for professional software. If you don't want to enhance all images, you can do it selectively from the Picture menu (with the Auto Contrast and Auto Levels options).

1. Show when viewing image

This option specifies whether you want to be able to browse the images one-by-one via a dedicated "viewer" page. The default option "Prev/Next buttons" enables the viewer as a simple page with navigation buttons. "Prev/Next & EXIF info" will also show the EXIF metadata for the image in a table. "None" option is the pre-0.2.2 behaviour, where the index page links to the images directly.

2. Text Color, Gallery background color and background image

These control the text, bgcolor and background properties of the HTML body tag. The color is taken into account when creating JPEG thumbnails with frame fadeout. The color is being blended with the image at its border. Note that if you wish to use a background image as well, it should very closely match the selected background color; in fact, if using any complex background, it is recommended to use PNG thumbnails.

The background image (if you select it) will be copied to the gallery's output folder. Keep in mind it is highly recommended to make the background image smallish, like 50-100K, to keep slow internet users not too nervous.

3. Text font

This field selects the text font face to be used for the generated gallery. For example, the font face of the text you are reading now is most probably Verdana. Web browsers do not guarantee to be using the exact fonts you tell them; if a particular font is not available, the browser will use the most "similar-looking" font instead.

That's the reason why fonts are grouped like this in AGG's font selection field - every choice is a list of similar looking fonts (we also say they belong to the same family). For example, the choice "Times New Roman, Georgia, serif" contains only Serif fonts, while "Verdana, Arial, Helvetica, sans-serif" contains Sans-serif fonts only. You'd best experiment with this field a bit to see which family matches best your tastes.

If you are still not happy with the "stock" choices from AGG, you can always compose your custom font-list. Choose "Custom..." from the font selection field. A dialog will appear - you can compose your own genuine list now. Keep in mind, that the list is prioritized - the Browser will use the first font he finds installed on the system. Hint: Try selecting the font "Comic sans MS" " if you have it. Some galleries look particularly cool with it.

4. Thumbnail Format

You can choose between JPEG and PNG. The JPEG files are usually smaller and load faster. PNGs, while still small, also handle transparency (which could only be needed when creating thumbnails with frame fadeout and custom background). Please note, that in the last case you may have problems with Microsoft Internet explorer (which doesn't handle transparency correctly; They claim it will be fixed in the newest versions, that is, IE7).

5. File Info and shorten filenames

Here you can choose what will be displayed under each thumbnail as text; probably the file's name is best, but you are still given the final decision.

The "shorten if needed" checkbox (on by default) will compress any long file names, that might appear in the gallery and break the alignment of the columns. E.g., if you have a name like "A_very_long_long_file_name_123.jpg" , it will be displayed as something like "A_ver...e_123.jpg". Note that if the name is short enough so that it doesn't pose any problems with the layout, it will be used verbatim, so the option does nothing if all the names are short

6. JPEG Quality

This is the quality (scale 1-100), which applies to both rescaled images and thumbnails (if they are JPEG). Generally useful values: 5-95.

7 & 8. Images per row and multipage gallery

Images per row controls how many images to put in each table row; note that (Images per row) * (Thumbnail size) = (Optimal screen resolution), since your gallery will be browsable without horizontal scrolling (which is quite annoying). So select this value carefully.

Multipage gallery creates many index.html, index1.html, index2.html and so on files, each storing at most the requested number of pictures. All pages are linked, so browsing is almost as seamless as with one-page gallery. Avoid putting more than, say, 50 images per one gallery page - it gets too much for people with slow internet connections.

9. Rollover thumbnails type

Rollover thumbnails are purely optional; if you wish to use them, this will add some effect to the thumbnail, which is currently under the cursor. This option controls what kind of effect to apply, here is the list of effects:

  • None - No effect (no rollover thumbnail creation);
  • Hilight - Apply more brightness to the thumbnail;
  • Change opacity - The thumbnail that is under the mouse will be 100% opaque; all others will be 20% transparent;
  • Both - Apply both of these effects :)

1. Force lowercase on output filenames

Forces lowercase on the destination file names. E.g., if an input image is IMG_0001.JPG, the output image in the gallery will be named img_0001.jpg. This option is designed to handle problems with case-sensitive file systems, e.g. an Linux web-server with apache as host.

2. HTML template

Allows you to specify a custom HTML template for the gallery (either an existing template, or create a new template, cloning the Default template). This feature is discussed in more detail here.

3. Custom HTML code (top & bottom)

Allows you to insert custom HTML code snippets at the top/bottom of the index page of the gallery. The exact positions where the snippets are inserted are:

Top code: Just before the text "Gallery for ..."

Bottom code: After the credits at the bottom of the page

You can change these positions (and indeed anything else) using the Custom HTML templates feature.

4. Watermarks

You embed a watermark in your gallery images. There watermark can be in any of the four corners of the images, and you can have a different watermark in each corner, if you wish. To enable watermarking, slide the "Watermark opacity" a bit. This controls how pronounced will the watermarks be. The four corners will now be active, and you can click on each of them to select the image file to be used as a watermark. That file can be of BMP, PNG or JPEG format, and, in case of PNG, it will use the file's alpha channel (transparency) to control the blending with the base image.

4. File Menu:

AGG uses Project files to store your current setup - the number of images, their locations, the settings and the per-image rotations. It is advisable to store the project file for each gallery you create since, for example, if you aren't satisfied with something (and this happens two days later), you could load the Project file, fix the parameter you wish and then just regenerate the gallery.

New Project...

Essentialy, brings the Project settings dialog. Clears the currently loaded project, so it's wise to save it before creating new project.

Open Project...

Opens a stored Project file (with .agg extension). The Project files are textual and very straightforward. Please note, that the Project files are inoperable between Linux and Windows because of the File systems fundamental differencies between these OSes.

Recent projects

Keeps a list of recently-opened projects, and you can quickly load one of them.

Save Project

Save your current settings to a filename of your choice.

Save Project as...

Save the current settings of the project to a different filename.

Add/Reorder images...

This will open the Project Manager.

Export Rename List...

This is part of the Export Rename List/Prefix Filenames duo. Read more about them here.


Allows you to set up some details of AGG's operation in general. Here are the options you have:

  • 1. Use multiple processors/cores (if available)
    AGG will try to utilize your processing resources if you have more than one processor (or a multicore one). HyperThreading is also supported. Multiple threads are used for image loading, resizing and writing, speeding up the entire processing. For example, the speedup for a dualcore processor is nearly twice compared to a single-core one;
  • 2. Swap mouse buttons for image ops
    If turned on, right mouse button will mean "next image", left will be "rotate CCW", the opposite of the default behaviour;
  • 3. Use advanced instruction sets (if available)
    If available, SSE instruction set will be used for image resizing. Generally, if the program works, you need never to turn off this option;
  • 4. Preserve Exif metadata in output images
    This option will disable writing of Exif metadata in output images. Other Exif-related work will still be done;
  • 5. Sort images by Exif Date (if available)
    This will turn on sorting the images by Exif Date. This is especially useful if image filenames are broken, or if you are assembling the photos from some event, and you are gathering image files from several digital cameras. The photos will be ordered chronologically, provided that Exif Date field is set correctly by all cameras (so be sure to synchronize their clocks. If you allready got the images and some clock is wrong, use the Time Offset feature). Since the sorting requires some setup time and is not-so-frequently required, the option is turned off by default.
  • 6. Use Thumbnail Cache
    This option turns on the caching of thumbnails. When you create a new project, all the images have to be read so that the thumbnails are created. This is a CPU-intensive operation. When you save your project, close it, and open it again later, the thumbnails have to be created again. When the thumbnail caching is on, the resized thumbnails are saved in a special cache folder, so such "reopen" operations are very fast (as the thumbs are read from disk).

    Beware that this option eats up hard-disk space (though I haven't been able to top 1 GB usage for a year's worth of using AGG). You can always take a look of the cache size and purge it if you want to reclaim the disk space. Also, if you aren't happy with AGG secretly eating your HDD space, you can turn the caching off.
  • 7. Resize quality
    This option allows you to select the algorithm to be used for image resizing. The available algorithms are discussed here.
  • 8. Thumb resizer
    Same as above, but applies to the algorithm for resizing images to thumbnails. (the difference is that you may not want to use the same algorithm for resizing the gallery images and for the thumbnails. E.g. lanczos is perfect for the images, but not quite for the thumbs; in practice, you'd rarely want to use anything than "Area" for the thumbnails).
  • 9. After gallery creation
    You can set what to do when the gallery is created (or "Create preview" is clicked). The choices are: do nothing, open the generated gallery in your default web browser, or ask you what to do every time.
  • 10. Interface language
  • 11. Developer mode
    Use this to enable undocumented features of AGG. For advanced users only.
  • 12. Auto save
    When a project file is loaded (or a new project is created and then saved at least once, i.e. the file name of the project file is known), this option will internally save the project file to the disk every two minutes. This is to guard against power outages, computer crashes, etc.
  • 13. Gamma-aware resizing
    By default (and in most photo-processing packages, including GIMP, Adobe Photoshop, and AGG prior to 0.3.0), images are manipulated in the gamma-compressed sRGB colorspace. This is slightly imprecise, as any arithmetical operations in a non-linear space are incorrect by definition. The issue is explained in detail in this article.
    When this option is enabled, images are first decoded into the linear RGB space, and all resize operations happen there. Just before saving back to disk, the images are again recompressed in sRGB.
    On the practical side of things, the kind of images the article talks about are quite specific and, on real-world photos, the differences between the plain old gamma-ignorant resizing and the "correct" one are unnoticeable or minute at best. Yes, they can be seen by a person who looks specifically for this sort of things (they are visible in areas containing repetitive fine details and a lot of contrast - e.g., a fountain spray, or the sea horizon at sunset, etc.). Since the differences are so small, and the gamma-aware resizing imposes a performance penalty, this option is disabled by default.

5. Picture Menu:


This allows you to change current file's name and output size. If don't want to resize this particular image, just set the "Resized Resolution" to 9999;

Exif info

Shows a big table with the full EXIF metadata from the image (if available);

Quick Exif info

This shows a small dialog with the "most important" Exif info fields;

Auto Contrast

This option enhances the current image by maximizing its contrast;

Auto Levels

This option enhances the current image by maximizing the contrast of each channel. Usually this corrects color bias (fixes white balance). Don't use both Auto Levels and Auto Contrast.

View Full Image

(Shortcut: Alt-V) This opens the currently selected image in a separate window, that allows you to view the image in more detail. This is useful if the thumbnail is too small to decide the image orientation, or whether or not to include the image in the gallery. This is a generic "Image Viewer" that clones much of the functionality of the main window: left-clicking on the image moves you to the next; right-clicking rotates the image CCW; you can also zoom, pan, etc; here's the full list of shortcuts within the View Full Image dialog:

Left click (on the image): Next image
Right click: Rotate CCW
Mouse Scroll: Next/Prev images
Hold right button and drag mouse up/down: Zoom image
Hold left button and drag mouse: Panning
Space: Toggle the "Exclude" checkbox
S: Display project statistics
Escape: Close the Viewer

6. Gallery Menu:


Just brings up the Project Settings dialog. You won't be able to change the source directory, though.

Create Preview...

This option creates a preview of the whole gallery - i.e. it writes the HTMLs and thumbnails so you can preview them in your browser, and when you are happy with the way it looks you can finally generate the whole gallery (since the actual rescaling happens then, and it is quite time-consuming, compared to HTML and thumbnail creation).

Time Offset...

This brings up the time offset management dialog. For more details, see here.

Jump to

Use this to quickly jump to a specific image in the gallery (when working with large galleries).

Add title picture...

This opens a dialog that creates - and inserts - a title picture in the gallery. Read more about this feature here.

Prefix filenames

This option prefixes the output filenames in the gallery with a serial number (starting from 0), in the order they are in the gallery. So, when the list of output files is viewed in, e.g., Windows Explorer, and the file names are sorted alphabetically, the files appear in the same order as in the AGG project. Read more about this, and the "Export Rename List" feature here.

Exclude all

This marks all images in the gallery as "excluded". The idea is that if you have a project with a lot of photos and a small number of "keepers", then you could just exclude all, and then only mark the photos you want to keep.

Remove duplicates

This tool scans the images of your gallery and finds groups of images that are very similar. For each such group, one image (a representaive of the group) remains, the other are removed from the project.

When you click on "Remove duplicates", at first, only a slider that selects the similarity threshold, and a preview button, are available. Click on "Preview" to see what groups of similar images are detected with the default threshold. If you aren't satisfied with the results, tune the threshold, and click Preview to recalculate the results each time. You can preview which images exactly are grouped by similarity, by double-clicking on their name in the list. You can also remove entries from the list - first select them, then press the Delete on the keyboard. When you're satisfied with the results, click OK - this will remove the files in the left-hand side of the list, from the gallery project.

7. The Tools menu:

There are two utilities in this menu. The Batch Rename is used for renaming a bunch of files according to some rule. The Batch Resize is used for resizing a whole hierarchy of image files. See their pages for more info.

Transfer Exif...

There is also a tool, named "Transfer Exif". It is used to copy the Exif metadata from one JPEG file onto another.

Batch Transfer Exif...

This is a more serious tool for transferring Exif metadata from a set of images to another set of images. For each image in the input directory, the tool will read the metadata from it and look for a file with a similar name in the output directory. Then it will copy the Exif metadata to that file.

Adjust Date Dialog
The Batch Tranfer Exif dialog

Source EXIF from files in - this is the directory, that holds the images, which have Exif metadata.
Output directory - this is the target directory. The Exif data will be transferred to the images here.
Note, the tool assumes 1:1 file name matching - for each file like foo.jpg in the input directory, the tool will search a file foo.jpg in the output directory, except if you enable Rename output files:
Prefix - the given prefix is prepended to the name of the output file. E.g., if the prefix is abc, for a file named foo.jpg in the input directory, the tool will seek abcfoo.jpg in the output directory, and transfer the Exif data from foo.jpg to abcfoo.jpg.
Suffix - Similarly to the prefix. If the suffix is xyz and the input file is foo.jpg, the tool will look for output file, named fooxyz.jpg. The prefix and suffix can be used simultaneously. If your rename pattern is more complex than that, you can use the batch rename tool to convert one of the two sets of images into a suitable format.

Adjust Exif Date...

The "Adjust Exif Date" utility can be used to fix incorrect Date/Time settings on a bunch of photos. This is useful if the clock of the digital camera was wrong and the Exif DateTime fields do not represent the actual time the photos were taken. The same adjustment is added to the Exif DateTime of all images.

Adjust Date Dialog
The Adjust Date dialog

You need to select the directory where the files to be corrected reside. Then you need to specify the adjustment amount, in seconds, minutes, hours and days (when applicable). When the direction is Add, clock is adjusted forward (e.g, 17h with 2h adjustment becomes 19h). The "Carry" button performs carrying from smaller units to larger. E.g., you can enter 5000 in the seconds field. Then pressing Carry will result in 1h, 23m, 20s. Press "Adjust" to actually process the photos.
This function only works well for corrections up to few weeks; for larger corrections (several months or years) you need to perform increasingly complex calculations to derive the exact number of days you need to add/subtract.


This function exercises the Area resizer algorithms (non-SSE, and SSE versions), and shows the results in arbitrary units of MegaPixels per second. The results shouldn't be taken too seriously as an indicator of PC performance -- its actual purpose is to compare the different resizer implementations for the given build and is more a "compiler benchmark" than anything else.

8. The main dialog

After creating a new project or loading existing one, the main window is "brought to life" and here's what you can do:

Prev - One image back; shortcut: Alt-P.
Rotate CCW - Rotate 90 degrees counter-clockwise; shortcut: Alt-R.
Next - Go to the next image; shortcut: Alt-N
Save - Saves the current Project as an .agg Project file.
Generate Gallery - Performs full rescaling & rotation, writes out thumbnails and HTMLs.
Frame type - you can frame type of the thumbnails in the generated gallery: no frame, a smooth "fadeout" frame, or a hard frame.
Exclude from Gallery tick - If checked, the current image won't be included in the gallery. This still doesn't mean it would be deleted, even if Source Dir = Dest Dir.

9. Shortcuts & Hints

The Mouse Wheel - changes the currently previewed image;
Left Mouse Button - goes to the next image;
Right Mouse Button - rotates the image CCW;
Left, Right Arrows - changes the current image
F2 - Opens the rename/annotate dialog, where you can rename the current picture or select different (nondefault) output resolution;
F3 - Reads all Exif metadata for the current image and displays it;
F4 - Displays a brief summary of Exif data (shutter speed, aperture, ISO speed and focal length);
F5 - Applies Auto Contrast to the current image;
F6 - Applies Auto Levels to the current image;
F8 - Brings the Time offset dialog;
J - Quick jump around the project;
Alt-V or Enter - Opens up the current image in a separate window for a closer inspection
Alt-S within the detailed image viewer - will print out statistics about the gallery. How many pictures are in there (total), how many are included, how many are excluded.

Get Anrieff's Gallery Generator at Fast, secure and Free Open Source software downloads