Fotoxx User Guide  v.13.04

License and Warranty

Fotoxx is licensed under the GNU General Public License v3 (Free Software Foundation).
Fotoxx is not warranted for any purpose, but if you find a bug, I will try to fix it.

Origin and Contact
Fotoxx originates from the author's web site  http://kornelix.com/fotoxx. Other web sites may offer it for download. Modifications may have been made. If you have questions, suggestions, or a bug to report, please contact me.


Program Updates
To be automatically informed of new releases, subscribe to this web page.
You can find the latest source package here and install packages here.
A Summary of recent changes to this guide can be found here.



Getting Started

Please read at least the first few pages, up to the index of menu functions below. The rest can be used for reference as needed. Use the F1 key at any time to view information for the current or last-used menu function.

When you see the word directory, substitute folder if this is your way of thinking. The terms file and image and image file mean a single file of type JPEG, PNG, TIFF, etc. containing a single image (photo or illustration).

Installation
To install Fotoxx, try the appropriate package first: packages. It may install OK with one click. If not, you must install from source code. Instructions are here: downloads. Fotoxx should show up in the system menu after installation (or maybe after a new login). If not, use the command "fotoxx" in a terminal window or launcher.
Command line options are listed in the Technical Notes section.


Initialization
Fotoxx needs to know where all your image files are located (directory and file names) and their imbedded metadata (if any): tags, geotags, captions, comments, ratings and dates. This data is indexed for fast searching. Fotoxx also creates thumbnail images on disk, so that the gallery windows (thumbnail pages) will work fast. Fotoxx does not modify or copy the image files - it only reads them to get data for the search index and to make thumbnails. After completion, the gallery windows and search functions will work very fast.

When Fotoxx starts, it checks for a top image directory and search index. These will be missing the first time Fotoxx is started, and a popup dialog will ask you to supply a few key items of information:


The top image directory is simply a directory containing all your image files (or subdirectories with image files). This is typically named "/home/<user>/Photos" or similar. Use the [browse] button to locate this directory. You may also specify multiple top image directories if needed. It is OK if other files are mixed with your image files.

The file sync function should normally be enabled. If it is not, you can still use Fotoxx to view and edit image files, but the metadata functions will not work and will be disabled until a file sync is done (these include adding tags, geotags, comments, etc. and all image search functions). You can do the file sync manually at a later time if desired (see Synchronize Files).

For thumbnail files, you have three options: (1) None:
do not create thumbnail files (the gallery windows will be slow). (2) Thumbnail files are placed in a hidden directory (.thumbnails) in the same directory as the corresponding image files. (3) Use a dedicated directory where thumbnail files are kept. This must be outside the top directories containing the image files (suggestion: /home/<user>/.fotoxx/thumbnails).

If you have many thousands of images, the file sync function may need significant time. A strong computer will process 1500+ images per minute.
Some computers will be much slower. When you start Fotoxx after new image files have been added to your collection, the synchronize function starts automatically to process the new images. This normally needs a few seconds unless there are hundreds of new images. For more details, see Synchronize Files.

Test Run
After Fotoxx finishes initialization, use the [open] button on the toolbar to select an image file to view in window tab F. Choose the menu Retouch > Brightness/Color, and in the dialog use the [+++] button to brighten the image. Use the [cancel] button to leave the dialog without changing the image file on disk. Use the tab G button (gallery) to see all the images in the current directory. Use the navigation buttons on the gallery window to navigate within the directory. Click on a thumbnail image to view the image in tab F. If this all works then Fotoxx is installed OK.


Essential Information for those who hate big user manuals
(you and me):
  o  Menu functions and dialogs have live help activated by keyboard F1.
  o  Zoom an image in/out with left/right mouse click or mouse scroll wheel.
  o  Pan and scroll a zoomed image with mouse left-drag (invisible scroll bars).
  o  Tab G: view a thumbnail gallery of images in the current directory.
  o  Click a thumbnail: show big image in tab F. Use menus to edit image.
  o  The window title bar has the current image file and directory names.
  o  The status bar at the bottom has image and edit status information.

This User Guide is available in the menu Help > User Guide. The F1 key will bring up a help topic for the current menu or dialog. This appears in your chosen web browser (and can get hidden under the Fotoxx window if you use maximized windows).


Using Window Tabs F and G

Use window Tab G to show an image gallery window (thumbnails) showing image files in the current directory, the latest search results, or the current named collection. Use this window to scroll around and select image files by clicking thumbnails. The arrow buttons allow scrolling forward or back by rows or pages. Use the zoom buttons to change the thumbnail size and the number of thumbnails fitting in the window. Clicking on a thumbnail will show the full-size image in Tab F. Pressing Tab G will show the gallery, with the current image in Tab F scrolled to the top row.

The current directory path is shown at the top of the gallery window. Click on one of the higher level directories to go to that directory. Its subdirectories will be shown as folders. Click on one of them to go to that directory.


There are three types of gallery windows: (1) the image files in a single directory, (2) the results of using an image search function to find images, which may be in various directories, (3) the images in a named collection, which may also be in various directories. The gallery window title bar will show (1) the current directory path, (2) "Search Results", or (3) the collection name. If the current gallery is of type (2) or (3) (i.e. not a file directory), the arrow keys in both tabs F and G will navigate within this gallery. To leave the special gallery and go back to directory navigation, use the open button or the discard button. The discard button goes to the directory of the current file in Tab F.

The smallest gallery window zoom size is zero (text without thumbnails). The sort button is used to sort the thumbnails by file name, file modification date, or photo date (from EXIF data). The displayed date is photo date unless the sort is by file date.

Mouse Actions on Image Window
To zoom the image in the main window, left-click a position on the image. The image will grow with each click and the clicked position will move to the center. A right-click will restore the image to fit within the window. To scroll a zoomed image, left-drag the mouse across the image. This works like invisible scroll bars: the image moves in the opposite direction of the mouse. Diagonal scrolls work. The mouse wheel may also be used to zoom the image in or out. The middle mouse button (wheel) will make a zoomed image re-center at the mouse position. (In the menu Tools > User Settings, you can change the mouse pan/scroll mode to make the image "stick" on the mouse and move with it instead of in the opposite direction.)

Mouse Ownership
Some dialogs use the mouse to reference or alter the image in the main window. There may be more than one such dialog active at the same time. The mouse is also used to zoom and scroll the image, and you may need to do this while using a dialog. Therefore it is important to understand who owns the mouse (which dialog or main window) and how to change the ownership:
Dialog buttons mostly work as follows:
   [Proceed] - proceed with lengthy task based on dialog inputs.
   [Apply] - apply settings from dialog to image, leave dialog active.
   [Done] - same as [Apply], but the dialog is closed.
   [Cancel] - discard changes and close the dialog.


General Editing Procedure

The image in the main window (the current image) can be operated on with the edit functions (the menus Transform, Enhance, Repair, Effects, Combine). These functions modify the current image in memory. You can use these functions in any order, and the changes are accumulated for the current image and shown in the main window. The Toolbar [undo] and [redo] buttons can be used to review the before/after results for the current active edit function. After the function is closed (dialog [Done] or [Cancel]), these buttons can be used to review all the edits done to the current image. When finished editing an image, use [Save] to replace the original image file with the modified one. Use [Save+V] to save the modified image with a new version number (the original file is not changed). Use [Save+F] to save the modified image to a new file name ("Save-as").

Many image edit dialogs have sliders, spin buttons, or editable curves that immediately update the image in the main window. The reaction time depends on the size of the image, the complexity of the function and the speed of your computer. This is typically <1 second for a strong computer and normal images (10-15 megapixels).

Curve Editing:
Some image edit functions use editable curves. You can manipulate the curves to change some property of the image (e.g. color saturation) depending on some other property (e.g. brightness). To illustrate, you could increase color saturation in the darker areas of an image without changing it in brighter areas. Generally, the X-axis of the curve represents the input property (brightness in this example) and the Y-axis the output property (color saturation). The curves can be moved (pulled) with the mouse. "Up" increases the effect and "down" decreases the effect. An anchor point (black dot) is added to the curve wherever it is pulled, and this becomes a constraint for subsequent pulls: the curve will continue to go through this point as other parts of the curve are pulled. Anchor points can also be dragged. Delete an anchor point by right-clicking it. The curve edit windows have buttons [open] and [save] which can be used to load a curve previously saved to a file. This may reduce the time to edit a series of images receiving the same treatment.



Simple Workflow
Most of the time you can just edit the JPEG file that comes out of the camera. Use the following more complex procedure only if you see "color bands" or "posterization" after editing the image, an indication that JPEG 8-bit color is limiting the image quality.


Complex Workflow
If you want to edit RAW files instead of the corresponding JPEG, there are three options.
RAW files have typically 10-12 bit color depth and noise beyond that. Conversion into a PNG or TIFF file with 16 bit color will preserve the additional color depth available in the RAW file. The high color depth reduces the risk of visible "color bands" from retouch functions that can radically shift the brightness distribution (especially Flatten and Tone Mapping). When finished editing, convert the final file to JPEG (quality level 70 or greater) to reduce the file size to 10% or less. Note that editing in deep color is more important than having deep color in the final image. You will normally not see any difference between a 16 bit TIFF/PNG file and a JPEG made from that same file. To preserve the possibility of re-editing the image later, keep the RAW file, which is much smaller than the TIFF/PNG.


Editing Many Images
There are some batch functions in the Tools menu to speed some common tasks. You can select a number of image files and apply a batch function to all of them. Batch functions include renaming (with base name and sequence number), changing the file type, resizing, copying or moving to another location, and converting RAW files to tiff, jpeg, or png.

The functions that deal with metadata (keywords, ratings, comments, geotags ... any EXIF/IPTC data) can be used in combination with the [Next] button to rapidly go through a bunch of image files, e.g. assign keywords or comments that can be used later for searching. If the image files are not already packed together, you can select them in advance by clicking thumbnails and then proceed to process them sequentially.

Some frequently needed edit functions (trim/crop, brightness/color, gamma, many others) can operate sequentially without going back to the menu for each image. After making the adjustments for one image, use one of the [Save] buttons, then use the [Next] or [Open] button to move to the next image. The dialog stays open, the settings are still there, and they can be applied to the next image with or without making adjustments on a per-image basis.

Here is an example workflow for the initial trim (crop) of a new batch of images:
   + Copy the files from the camera memory card to a working directory.
   + Open the first file.
   + Menu > Transform > Trim.
   + Trim the image by dragging the borders to suit.
   + Press [Save+F] and choose an output file name and directory.
       (new name is optional, directory is remembered for the next file)
   + Press [Next] to start the next file. Press [Next] again to skip if wanted.
   + Repeat: drag the borders, press [Save+F], press [Next].


Managing Image Collections
You can use Fotoxx to manage a huge image collection and still be able to quickly find the images you want. Some effort by the user to organize the images is required. Search methods include directory and file names, image dates, image ratings, tags (labels for persons, places, objects, events ...), and geotags (city/country names and latitude/longitude). Suggestions for how to organize a large image collection can be found here.


Selecting Images from an Image Gallery Window

This procedure is used in several functions which operate on multiple image files (batch add or delete tags, batch convert images, slide show, manage collections, others). It is explained once here, and this paragraph is linked from each of the functions using this procedure.

The dialog box is used to select image files. Behind it is a gallery window for the current directory, collection, or search results. To select an image, click its thumbnail and the image file will be added to the list in the dialog. Other options are shown below. You can navigate the gallery window to other directories by clicking on the directories at the top and clicking on"folder"  thumbnails represending subdirectories. You can choose images from any gallery in any order. The list of image files can also be manipulated to change the sequence or remove images added by mistake. Click on a file in the list to show its thumbnail in the dialog and also set the current list position. The next image file added will be inserted at this position. If the [delete] button is pressed, the current list position will be deleted, and if the [insert] button is pressed, the last deleted image file will be inserted at the current position. The last 100 images deleted are saved and can be re-inserted anywhere: each use of the [insert] button removes one image from the saved list and inserts it at the current position. To move images to a new position in the list: click the image file (its thumbnail will be shown), click [delete]. Repeat to delete more images. Click an image file to set the insert position, then click [insert]. The first deleted image will be inserted before the selected image. Repeat to insert more images from the deleted list. The list can also be edited directly: you can use cut and paste to get the sequence you wish, but be careful to always cut and paste entire lines (files). The [add_all] button will add all the image files in the current image gallery. After using Search Images to establish a set of images, the gallery window will contain this set. You can select individual images from the gallery, or use [add all] and then delete unwanted images.
A single image may also be added multiple times to the list.

Thumbnail click rules:
   o  left click: add the image at the current list position
   o  right click: remove the image if present
   o  Shift + left click (first): set the starting image to add
   o  Shift + left click (2nd): set the ending image and add all of them


Menu Shortcuts
The Fotoxx menus are large. You may need time to get used to them and remember where the functions are located. There are three shortcut methods available for frequently used functions:
 1  
Right-click the main window or gallery window thumbnail:
A popup menu appears with some commonly used menu functions.
 2  
keyboard shortcuts - these are documented in a table below.
You can also add your own shortcuts for the menu functions you choose (more).
 3  
Favorites menu - a toolbar button for a graphical popup menu. You can add text and/or icons that link to any menu functions you choose. You can physically arrange them in a layout window. You can leave this window open and access its functions with one click (more).



Fotoxx Menus and Toolbar Buttons

File Menu File Management
New Window
Clone Fotoxx and open a new window slightly offset from the old one (more).
Open Image File
File open dialog - open an image file to view or edit (more).
Open Previous File
Go back to the last image file opened (more).
Open Recent File
Choose from a list of the most recent image files opened (more).
Open RAW File (ufraw)
Open a camera RAW file and edit with Ufraw (more).
Save to Same File
Save modified image to the same file (overwrite) (more).
Save to New Version
Save modified image to the same file with a new version number appended (more).
Save to New File
Save modified image to a new file (more).
Rename Image File Rename image files, optionally add sequence numbers (more).
Create Blank Image
Create a new blank image file (more).
Trash Image File
Move an image file into the trash bin (more).
Print Image File Select printer / paper format / orientation and print image (more).
Quit Fotoxx
Exit from Fotoxx.

Tools Menu
Utilities and setup functions.
Synchronize Files Rebuild the image search index and refresh thumbnails (more).
User Settings A collection of user preferences and settings (more).
Keyboard Shortcuts
Assign keyboard shortcut keys to menu functions (more).
Manage Collections Make named image collections, arrange the sequence, etc. (more).
Move Collections Update collections when image top directory is changed (more).
Batch Rename Rename many image files using a base name and sequence number (more).
Batch Convert/Resize/Move Convert / resize / move images (for upload to the web, e-mail, etc.) (more).
Batch Convert RAW Files Convert RAW image files to jpeg, png, or tiff (more).
Brightness Distribution Show brightness distribution graph of current image (more).
Grid Lines Add or remove grid lines for image alignment (warp, rotate) (more).
Slide Show Show a series of images full screen (no menu or toolbar) (more).
Show RGB Show RGB values at position of mouse click (more)
Monitor Color Display a color palette for tuning your monitor (more).
Monitor Gamma Adjust monitor gamma for better image editing (more).
Change Language Change the GUI language (more).
Edit Translations Revise a translation interactively while using Fotoxx (more).
Menu and Launcher Add a system menu entry and desktop launcher (more).
Burn Images to CD/DVD Select images and write them to CD, DVD or BlueRay (more).
Resources
Dump resource usage data to the log file (more).

Metadata Menu
View and edit metadata (data stored within image files)
Edit Caption/Comments
Add or change descriptive text for an image (more).
Tags Overview
Explanation of tags and how they are used (more).
Edit Metadata
Add or change image date, 'stars' rating, or tags (keywords) (more).
Batch Add Tags
Add multiple tags to many images at once (more).
Batch Delete Tag
Delete or replace one tag for many images at once (more).
View Metadata (short)
View most important image data (more).
View Metadata (long)
View all available image data (more).
Edit Any Metadata
Add or change any metadata (more).
Delete Metadata
Delete specific metadata or all image metadata (more).
Geotags Overview
General Information (more).
Download Geolocations
Download city locations and a world map for use in geotag functions (more).
Edit Geotags
Add geotag data (city, latitude, longitude) to image EXIF data (more).
Batch Add Geotags
Add the same geotag data to multiple image files (more).
Images by Location/Date
Find images from selected country / city / date range (more).
Images by Map Location
Click on a world map to get images at or near the selected location (more).
Search Images Find images with desired tags / geotags / ratings / dates / comments / captions (more).

Area Menu
Selected areas within images where edits are confined
Overview
Explanation of area selection and editing (more).
Select
Select an area for subsequent editing (more).
Show / Hide
Show or hide an area outline (more).
Enable / Disable
Enable or disable an area for subsequent editing (more).
Invert
Invert an area (more).
Unselect
Unselect an area (more).
Copy / Paste
Copy an area to memory and paste it somewhere else (more).
Open / Save
Save an area to a file and load it later to use in other images (more).

Transform Menu Functions that change image size, shape, content
Rotate Image Rotate an image (level an image or turn in 90 degree steps) (more).
Trim Image Cut out a rectangular portion of an image (more).
Auto-Trim Image
Auto-select trim margins to remove after rotate, unbend, or warp functions (more).
Resize Image
Scale an image up or down (more).
Write Text Write text on top of an image (more).
Flip Image
Mirror an image horizontally or vertically (more).
Color Mode
Make a black-white or color negative, or positive from negative, or sepia coloring (more).
Color Profile
Convert an image from sRGB to some other RGB color space (more).
Unbend Image Fix perspective problems (more).
Keystone Correction 
Straighten a photo made from an offset angle (more).
Flatten Book Page
Flatten/straighten a photographed page from a book (more).
Warp Image (area)
Distort image within an area by pulling with the mouse (more).
Warp Image (curved)
Distort entire image by pulling with the mouse (more).
Warp Image (linear)
Distort entire image by pulling with the mouse (more).
Warp Image (affine)
Distort entire image by pulling with the mouse (more).

Enhance Menu
Functions that change image qualities
Voodoo Enhance Automatic image enhancement (more).
Brightness / Color Edit brightness, contrast, color saturation, color balance (more).
Gamma Curve Edit brightness and color using the classic gamma curve (more).
Tone Mapping Increase local contrast to to enhance details (more).
Flatten Brightness Flatten the brightness distribution to enhance detail (more).
Expand Brightness Clip low / high brightness levels and expand the rest (more).
White Balance Remove false color from an image (more).
Brightness Ramp Horizontal / Vertical variation of brightness (more).
Vignette Tool Change brightness or color in a radial pattern (more).
Match Colors Match the colors in one image to those in another image (more).
Revise RGB Make complex color corrections that vary over the image (more).
CMYK Density Change brightness, CMYK colors, contrast using OD units (more).

Repair Menu
Additional retouch functions
Sharpen Image Sharpen a blurred image (more).
Blur Image Blur an image (e.g. smoothen skin) (more).
Reduce Noise Reduce noise (speckles) in low-light images (more).
Smart Erase Remove power lines and other spoilers by substituting neighboring pixels (more).
Red Eyes Remove red eyes from flash photos (more).
Paint Pixels Paint pixels or lines or areas using the mouse (more).
Remove Dust Remove dust spots on images made from scanned slides (more).
Fix Color Fringes Reduce chromatic aberration (more).
Fix Stuck Pixels Fix stuck pixels (always bright or dark) from defective camera sensor (more).
Paint Edits Mouse over an image area to apply an edit function incrementally (more).
Leverage Edits Select the whole image as a mask for retouch edit functions (more).

Effects Menu Functions that make artful transformations
Color Depth
Reduce color depth (posterize) (more).
Drawing
Transform a photo into a simulated pencil or chalk drawing (more).
Outlines
Transform a photo into a colorized line drawing (more).
Embossing
Transform a photo into a simulated embossing (more).
Tiles
Transform a photo into tiles (pixelate image) (more).
Dots
Transform a photo into an array of dots (more).
Painting
Transform a photo into a simulated painting (more).
Shift Colors
Replace selected colors with different colors (more).
Cartoon
Transform a photo into a cartoon-like drawing (more).

Combine Menu Functions that combine multiple images
High Dynamic Range
Make a high dynamic range image from multiple images (more). 
High Depth of Field
Make a high depth of field image from multiple images (more).
Stack / Paint
Combine multiple images to remove tourists and cars (more).
Stack / Noise
Combine multiple images to reduce noise (more).
Panorama / Vertical Panorama Join 2-4 overlapping images horizontally or vertically (more).
 
Plugins Menu
Other image edit programs can be used as edit functions in fotoxx (more).
Help Menu User guide, README, change log  (more).


Toolbar Buttons - Tab F (image window)


Favs
Custom graphic menu with user-chosen entries (more).
Open
File open dialog - open an image file to view or edit (more).
Prev / Next
Go to previous or next image in the current directory or search set.
Zoom+ Magnify the image. A left mouse click also magnifies.
Zoom- Reduce the image to fit window. A right mouse click also reduces.
Undo / Redo Undo one edit / Redo one edit - up to 99 edits of the current image.
Shift + Undo / Redo Changes the buttons to [undo all] and [redo all].
Color
Change the color of the mouse cursor and selected image areas (more).
Save / +V / +F
Save image to the same file, to a new version, or to a new file (more).
Trash Move an image file into the trash bin (more).





Toolbar Buttons - Tab G (gallery window)
Open
open another directory for a new image gallery window
GoTo
open a list of bookmarks, select one and go there
Discard
refresh the gallery from the directory of the current image (Tab F)
Zoom+
use larger thumbnails
Zoom-
use smaller thumbnails or no thumbnails (show file names only)
First
go to the top of the gallery (the first image files)
Last
go to the last page in the gallery
Page up
go up (back) one page
Page down
do down (forward) one page
Row up
go up one row
Row down
go down one row
Sort
sort gallery files by name, mod date/time, photo date/time (EXIF)



Right-Click Popup Menus
These menus appear when the main window or a gallery thumbnail is right-clicked with the mouse. These are present for convenience and duplicate many of the functions found in the main menus.
Menu
main
gallery
description
Rename
  x   x
rename the file without changing the directory (more)
Copy to
  x   x copy the file to another directory (create a duplicate)
Move to
  x   x move the file to another directory (remove from present directory)
Delete
  x   x delete the file (cannot be reversed)
Trash
  x   x move file to the trash folder (can be reversed) (more)
Print
  x   x print the file (more)
Trim
  x
trim the file (crop) (remove unwanted margins) (more)
Resize
  x
change the image size (pixel dimensions) (more)
Rotate
  x
turn the image 90 degrees, or level a tilted image (more)
Voodoo Enhance
  x
fast automatic enhancement that may be OK (more)
Brightness/Color
  x
adjust brightness, contrast and color (more)
Gamma Curves
  x
adjust gamma curves for brightness or for separate RGB colors (more)
Flatten Brightness
  x
flatten the image brightness distribution (may enhance details) (more)
Tone Mapping
  x
tone map the image (enhance low-contrast details) (more)
White Balance
  x
rebalance colors by clicking on a white or gray image location (more)
Red Eyes
  x
remove red eyes from flash photos (more)
Grid Lines
  x
add or change grid lines (more)
Select Area
  x
select image areas for localized edits (more)
Copy to Clipboard
  x   x copy image to clipboard for paste by other application


Keyboard Shortcuts
Keyboard shortcuts are available for some functions. The notation Ctrl+S means press and hold the Control key, then press the S key. The following shortcuts (down to F1) are fixed and cannot be changed, and the rest are changeable (more).

Main Window (tab F)
Fixed shortcuts
left / right arrow keys
Previous / next image
Page Up / Down keys
Previous / next image
+ or =  /  - keys
Zoom image bigger / smaller
F / G / W  keys
Open corresponding window tab   F / G / W
Z
Toggle: zoom image to 100% / fit image in window
Escape key
Exit slide show mode, exit a dialog.
Space Bar
Pause and resume slide show
F1 function key
Show user guide for current or prior menu function
F11 function key
Toggle main window to full-screen (with no menu/toolbar) and back


Gallery window (tab G)
Fixed shortcuts
Home / End keys
move to first / last page of image gallery
Page Up / Down keys
move to previous / next page of image gallery
up / down arrow keys
move up / down by one row of image gallery
left / right arrow keys
move to previous / next page of image gallery
+ or =  /  -  keys
bigger / smaller thumbnail size


Dialogs for User Input
Fixed shortcut 
F1 function key
display user guide for current function


Default Shortcuts
These can be changed using Tools > Keyboard Shortcuts
Ctrl+S
Save to Same File
Ctrl+Shift+S
Save to New File
Ctrl+V
Save to New File Version
N
Rename Image File
K
Keyboard Shortcuts
Alt+G
Grid Lines on/off
T
Trim Image
V
Voodoo Enhance
B
Brightness/Color
U
Undo
R
Redo
Shift+<
Rotate Left
Shift+>
Rotate Right


Mouse Functions
left click
Zoom-in: magnify image, center at click position
right click
Zoom-out: restore image to window size. If no zoom, popup menu with common menu functions.
mouse wheel
Zoom in and out depending on wheel direction
left drag on image
Pan/scroll zoomed image, same direction or magnified opposite direction (like scroll bars)




File Menu


Favorites (toolbar button)

This is a graphic menu in a popup window which you can populate with your frequently used functions and arrange them on the window using the mouse. 
The initial popup window (left image) is blank. Right click an empty space on the window to define a new menu entry. Right click an existing entry to modify it. Use the resulting dialog (right image) to define or change the menu entry.
   menu text
text for the popup menu - optional if a menu icon is used
   menu func the Fotoxx function to use - the exact menu name
   menu icon menu icon - /directory.../filename.png - optional if a menu text is used
   icon size
if icon is used, its size from 24x24 to 64x64 pixels
   close window
checkbox: close the popup window when this menu is selected
Left drag a menu entry to move it somewhere else on the popup window. The popup window can be resized to fit the contained menu entries. Left click a menu entry to select the menu. If "close" was checked, the popup window will close. All menu settings and icon files are saved in a configuration file whenever the popup window is closed. The configuration file and saved icons are located in the directory /home/<user>/.fotoxx/favorites. The configuration file can be edited directly - at your own risk. You can use either the English menu names or their translations for your locale. The menu names must exactly match the Fotoxx menus, but case is not significant. The menu text may include "\n" to represent a newline character. This will cause the following text to start on a new line. In the example above,"brightness\ncontrast/color" becomes two lines in the popup window.
Icon library: Icons for all image edit functions can be found here:

    /usr/share/fotoxx/icons/edit-funcs



New Window

Start a new instance of Fotoxx in a new window, slightly offset for visibility. This is useful to compare images or to work with more than one image at a time. Both windows can be used to edit images. The new window will initially have an unmodified version of the current image file. The original window keeps whatever edits have been done. If the same image file is edited in both windows, the final result is the file saved last. Use the toolbar button [Save+V] or [Save+F] if you want to keep both image files.


Open Image File  or toolbar button [Open]
This function starts a standard file open dialog, allowing you to select an image file or navigate to another directory and select an image file. The selected file is opened in the Fotoxx main window where you can view or edit the image file using the menus and toolbar buttons. The main window title bar always shows the file name and directory of the current image file. Drag and drop can also be used to open a file: drag an image file from Nautilus (or other source) to the Fotoxx window or desktop launcher, and Fotoxx will open the file. If text is dragged from gedit (or other program with drag sourcing), Fotoxx will assume the text is a filespec and try to open it. Thus you can make a list of filespecs in a text file and use this list with Fotoxx. Effectively, you can use Nautilus or text files to navigate a collection of images as an alternative to the Fotoxx navigation system. Add Fotoxx to the "open with" list for jpeg, tiff, etc. in Nautilus or other file browser. If the current image gallery list is from an image search function or a named collection, and you open a new file with Open Image File, the gallery will be replaced with the directory of the opened file.

Camera RAW files can also be opened. This may need a few seconds depending on file size and processor speed. The RAW file is converted to tiff-16 and this file is opened. It remains on the disk unless you delete or trash it. RAW files are also included in thumbnail galleries, as long as a .jpeg thumbnail image can be extracted from the RAW file (normally true).


Open Previous File
Go back to the previously opened image file, also if this is in a different directory. This differs from the toolbar button [Prev] which goes to the previous image file in the current gallery (directory, search results, collection).


Open Recent File
The 99 previously opened image files are shown in a gallery, from which you can select a file to open.


Open RAW File (ufraw)
Select and open a RAW camera file. The Ufraw program is started. You can make adjustments to the RAW file such as color temperature, white balance, brightness, color, noise, etc. from the ufraw GUI. When the file is saved, a TIFF file is created with 16-bit color depth. This file is now opened in Fotoxx and can be further edited, saved as JPEG, etc. The RAW file type (file extension) must be included in the list of known RAW file types. You can change this list with the function Tools > User Settings. Ultimately the RAW file type must be one that is supported by ufraw/dcraw.


Save Image File

Menu File >
Save to Same File  or toolbar button [Save]
Save the current image file back to itself. If the file is a JPEG file, the default quality (90) is used. If this is an original file (not a versioned file), you will be warned that you are overwriting the original file. You can override the warning and continue. You can also elect to permanently suppress this warning if wanted. If you have disabled the warning and wish to reinstate it, you must edit the file /home/<user>/.fotoxx/parameters  and change the value of "warn overwrite" from "0" to "1".

Menu File > Save to New Version  or toolbar button [Save+V]
Save the current image file with a new version number. File names with version numbers are formatted "filename.vNN.ext" where NN is a version number 01 to 99.  The 4 characters .vNN are inserted between the file name and extension. If the file name has no versions, version .v01 will be created. If file versions are already present on disk, then the next higher version number is used. There is no dialog or confirmation. If the file is a JPEG file, the default quality (90) is used.

Menu File >
Save to New File  or toolbar button [Save+F]

A dialog opens to save the current image file to a selected file, which can be the original file, another existing file, or a new file. An edited image file can be saved in formats JPEG, PNG, BMP, ICO, and TIFF. BMP and ICO are normally not recommended for photos. Neither supports metadata, and ICO is only for very small images (icons). JPEG is normally the best option, since these are compressed to reduce space. You can choose a JPEG quality value in the range 1-100. Lower values give smaller files and less image quality. Values above 70 are generally hard to distinguish from 100 (highest quality, largest file size). PNG files are compressed without any loss of quality and are larger than JPEG files of the highest quality. TIFF files are uncompressed and larger than JPEG or PNG. TIFF and PNG files may be saved with 8 or 16 bits per color. The 16-bit formats only makes sense for files converted from a RAW format supporting more than 8 bits per color (camera RAW files are typically 10-12 bits with noise beyond that). It is rare that the difference between 8 and 16 bits per color can be seen with the eye. However, an image with higher bits has more latitude when the brightness distribution is altered with a program like Fotoxx. PNG-16 files are much smaller than TIFF-16 but slower to save due to the compression process.

If "make current" is checked, the newly saved file will become the current file. In either case, the edit history is retained (i.e. undo and redo will still work).


File sizes for a 10 megapixel image are roughly as follows (depending on amount of detail):
tiff-16 tiff-8
png-16
png-8
jpeg-100
jpeg-90
jpeg-80
jpeg-70
70 MB
35 MB
23 MB
17 MB
8 MB
3 MB
2 MB
1 MB

The technical notes section describes potential loss of image quality from repeated edit and save of JPEG images.


Rename Image File

This function can help automate the process of renaming a series of image files using a root name (e.g. an event or place name) and a sequence number. Open the first image file in the series, input a new name, and press the [apply] button. Use the toolbar [next] button to move to the next file if wanted. You can use the same name again by pressing the [previous name] button and then add a suffix or sequence number. If you are using sequence numbers, press the [add 1] button to increment the sequence number.



Create Blank Image

Create a blank image with specified pixel dimensions and color. This can be used as a background for a mashup using cutouts taken from other images (via Select Area) and annotation text (via Annotate Image). Input a file name, choose a background color, and set the desired pixel dimensions.


Trash Image File
Fotoxx uses the Linux desktop standard for trash. If this works, trashed image files go into the standard trash location and can be recovered later if wanted. Otherwise, Fotoxx puts trashed images into a desktop directory named "fotoxx-trash". You can delete it or move it to your Linux-specific trash. If standard trash does not work, you may be able to fix this yourself. See the technical note about this. If both standard and desktop trash do not work (some distros are like this), you are given the option to delete the image file.


Print Image File

The print menu brings up a standard Page Setup dialog where you can select a printer, a paper size (letter, A4, etc.), and orientation (portrait or landscape). Select your printer (do not use a default setting). The paper size shown will be the one last set in the Printer Properties dialog (a separate admin function in the System menu). If the paper size is wrong, fix it using the Printer Properties dialog. Changing the paper in the Page Setup dialog may be ignored or lead to a "paper mismatch" failure. After using the [apply] button, another dialog starts for entering paper margins and an image scale. The margins can be used to shrink the image or shift it on the page. Image scale can be set in the range 5-100%, where 100% means print the maximum size image that fits within the margins. Smaller values will shrink the image proportionally. The actual print size (image width and height in centimeters) is updated in the dialog as margins and scale are changed, and this can be used to reach a desired printed image size. After the margins dialog, a Print dialog starts for the actual printing. This includes paper type and qality inputs, and a preview of the printed layout which can be accepted or rejected.



Tools Menu


Color
(toolbar only)
This button toggles the foreground color among white, black, red, and green. The foreground color is used for the selection circle around the mouse pointer and for outlining currently selected image areas. Use the button to optimize visibility against the background image.


Synchronize Files
This is needed when Fotoxx is started for the first time, when you add new image files to your collection, or if you move or rename image files or their directories. Nothing is lost when image files are moved, but the gallery windows will be slow if a large number of image files were added or moved, and the Search Images function will not find the new or moved files. The Synchronize function will create missing thumbnails, replace outdated ones, and refresh the search index file using current data from your image files. This may need significant time if you have many thousands of images and/or a weak computer. A strong computer can process 1500+ images per minute ("strong computer" means a 2+ GHz multi-core processor with a 7200 rpm disk).

Image files created (i.e. edited and saved) or moved within Fotoxx are taken care of automatically. Synchronize Files is only needed when new image files are created from outside Fotoxx (e.g. a new batch of photos from a camera), or if files are moved or renamed from outside Fotoxx.


Synchronize Files starts automatically at Fotoxx startup if image files are detected with a date/time more recent than the last Fotoxx synchronization. It can also be started manually from the Tools menu.
The Fotoxx menus are blocked until Synchronize is finished. Unless there are hundreds of new images to process, this will be done in a few seconds.

Enter your top image directories (up to 10) (e.g. /home/<user>/Photos). Enter the directory paths directly in the window, or use the [browse] button to locate and add one directory at a time. These directories and any subdirectories containing images will be processed. It does not matter if other files are mixed with the images.

The file sync function should normally be enabled. If not, the metadata functions will not work and will be disabled. These include adding tags, geotags, comments, etc. and the image search functions which use this data.

Thumbnail Options: (1) None: do not create thumbnail files (the gallery windows will be slow). (2) Thumbnail files are placed in a hidden directory (.thumbnails) in the same directory as the corresponding image files. (3) Use Directory: thumbnail files are placed in the given directory, which must be outside the top directories containing the image files. Thumbnails are 256x256 jpeg files averaging about 11 KB each, or less than 1% of the typical image file size.

If the Initialize Everything option is checked, Fotoxx will delete the current thumbnail files and search index and re-create them, as if this were a new installation of Fotoxx. This may be useful if the image files have been massively reorganized or moved to a new location, if you change the thumbnail option, or move the designated thumbnails directory. Any .thumbnails directories inside the image directories will be automatically removed if the option is not (2), but a designated outside directory will not be automatically deleted.

If you have used directory and/or file names to classify your images, you can make immediate use of these in the Search Images function. If you have saved captions, tags, geotags, titles, or ratings in your images (using Photoshop, Fotoxx, or other tools), these will also be searchable.
After the images have been indexed with Synchronize Files, searching them (by caption, comments, file name, tags, geotags, date, rating) is almost instantaneous. See the topic Search Images.

Synchronize Files logs progress messages to a popup dialog window. Each directory containing images is logged, but not each image file. There is a [cancel] button on the dialog which will cancel the synchronize function. Fotoxx can then be used normally, but don't expect metadata functions to work correctly until the synchronize function is allowed to complete normally.


User Settings

Various user preferences and settings are collected in this dialog.
 Startup Display 
The initial window content when Fotoxx is started. Directory Gallery can be the top image directory or any sub-subdirectory underneath. Image File can be any valid image file.
 Menu Style
Classic: at the top of the window. Vertical: vertical on the left side of the window. The toolbar is under the menu. Vertical is more space efficient for the newer wide-screen monitors.
 Toolbar Style
The toolbar style for both windows, image (tab F) and gallery (tab G).
 Image Pan
 (zoomed image)
Drag Mouse: image moves with the dragged mouse, with no magnification.
Magnified Scroll: image moves in opposite direction of mouse, magnified to sweep the whole image within one mouse sweep. This is like scroll bars, except that there are no scroll bars and movement can be diagonal.
 Warn Overwrite 
Whether attempts to replace the original image is warned or not. Saving to a new version is never warned. Saving to a new file name is always warned if the file already exists.
 Zoom Ratio
The image size increase with each zoom. Choose 1, 2, or 3 zooms for each 2x increase in size.
 RAW command
The command used to convert camera RAW files to tiff-16. This can be changed if you need.
 RAW file types
The RAW file types recognized. If your camera uses something else, add it to the list and this may work. You can also shorten the list to those file types you actually use.

See the user documentation for dcraw if you want to adjust how RAW conversion works. The parameters chosen are used for both File > Open Image File and Tools > Batch Convert RAW files. The menu File > Open RAW File (ufraw) has no parameters since all settings can be made from the ufraw GUI.

Changing the menu style or toolbar style will be effective the nex time Fotoxx is started, or use File > New Window.


Bookmarks
Assign names ("bookmarks") to chosen gallery locations (directory and image file), keep the names in a list, and use the list to select a name and go instantly to the associated gallery and image position in the gallery. There are two parts: an edit dialog to build the list of bookmarks, and a toolbar button [GoTo] on tab G to show the bookmarks and select a location to go to.
To assign new bookmarks, press the [GoTo] button on tab G and then select [Edit Bookmarks] in the dialog that follows. The Edit Bookmarks dialog is started. Click on a gallery thumbnail to add this location to the bookmark list. The assigned bookmark name will default to the file name. This shows up in an input field which you can edit to assign a better name. If you select an existing bookmark with a mouse click, its name is shown in the input field. You can change the name or press [delete] to remove the bookmark. New bookmarks are inserted at the last bookmark location selected. To go to a bookmark, press the [GoTo] button on the tab G toolbar. The list of bookmarks is shown. Click on an entry to go there.


Keyboard Shortcuts
This function is used to view or change custom keyboard shortcuts. The currently assigned shortcuts are shown in the window. To change one of these, click on it to make the key assignment and menu name appear below (the example shows shortcut keys Alt+G for the function Grid Lines). Enter a new shortcut using the keyboard. You can use the keys A-Z, 0-9, F2-F9, and most of the symbols (# $ & ^ < etc.). You can combine a key with Ctrl, Alt or Shift: Press and hold Ctrl, Alt or Shift, then press the key, then release both. When done, press [apply] to update the list. To add a new shortcut, select a menu function from the drop-down list (lower right), enter a shortcut using the keyboard, and then press [apply] to update the list. When you are finished making shortcuts, press [save] to make the changes permanent (a file is updated). If you press [cancel] or [x] all changes will be discarded. The shortcuts shown in the previous tables are reserved and changing them is blocked.



Manage Collections - Concepts
An image collection is an arbitrary collection of images that is manually assembled from other images. This is one method to make groups of associated images (other methods are tags, geotags, captions and comments, directory and file names). An image collection is simply a list of the member image files. The image files themselves are not copied or changed. A given image can be a member of multiple collections, or may be present more than once in a collection. Collections can be used to group images with some shared characteristics, such as photos from a vacation trip, photos of a given person taken at different times or events, a "best photos" collection, etc. Once a collection is made, you can call it up by name and it becomes a gallery. You can add and remove images in a collection and rearrange the order of the images.

Manage Collections Dialog


The dialog on the left appears first with the following buttons:
When you press the [Select] button, the standard dialog for selecting images from a gallery window will appear (link). Select image files in any order from the gallery that is shown (the collection) or from any other gallery you navigate to. When done selecting images, the dialog on the right will appear. To add the selected image files to the collection, press [Insert] and then click on a gallery thumbnail to choose where to insert the new images. To remove the selected images from the collection, press [Delete]. To move images within a collection, use [Select] to select the images, then [Delete] to remove them, then [Insert] to insert them at another location. When a large number of images is selected, you may find it easier to arrange their sequence within the gallery selection dialog, before inserting them into a collection.


Move Collections
An image database can be moved by renaming or moving its top directory. The image files will follow automatically.  The function Synchronize Files can fix the Fotoxx search index. The named collections, however, will become useless because the stored file paths are invalid. The function Move Collections can be used to replace the top directory in all the existing named collections. Enter the old and new top directory names in the dialog and press [apply].


Batch Rename Files
This function is helpful if you want many image files (perhaps with the same date or from the same event) to have the same names with an added sequence number. In the dialog, specify a base name, a starting sequence number, and an increment. In the base name, specify where you want the sequence number with '#' characters. For example, a base name of "arctic cruise ###-2012", a starting sequence number of 100, and an increment of 10 will produce a series of file names like this:
arctic cruise 100-2012, arctic cruise 110-2012, arctic cruise 120-2012, etc.
File extensions are not changed. The number of '#' characters is the length of the sequence number. Leading zeros are supplied if the sequence number is smaller, and the length will be increased if the sequence number is larger. Use the button [select files] to select image from a gallery window (link). When done, press [proceed] to rename all the image files at once. Don't use this function to rename non-image files, since Fotoxx will also try to update the search index file.



Batch Convert, Resize and Move Files
This function is used to convert, resize and move many image files at once (for planned uploads to a web site, to save disk space, etc.). The menu opens a dialog to select image files and specify options. Use the button [select files] to select image files from a gallery window (link). Select a maximum width and height for the output files, or check "no change" if no size reduction is wanted. The aspect ratio will not change: the image is reduced to fit within both limits. Select the output file type. "same" means the file type will not be changed, otherwise all files will be converted to the specified type. Select the option: "replace originals" or "move to location". For the latter, input a directory where the resized and converted image files will be written, or use the [browse] button to locate the directory. Use the checkbox to remove EXIF/IPTC data from the output files, if desired. Check "delete originals" if you are moving files or changing the file type and you want the original files to be deleted. Finally, use the [proceed] button to start the resize process. You will see a summary of the action requested and be able to confirm or cancel. A popup window shows the progress as the files are moved or converted.

Upload Photos to a Website
Most photo websites have the ability to upload multiple image files from a single directory, using only a web browser. Use the above Fotoxx function to select, resize, and export image files to the desktop or any other directory. From there, use the photo website's native browser interface to upload the image files.


Batch Convert RAW Files
This function converts selected RAW image files to JPEG, PNG-8, PNG-16, TIFF-8 or TIFF-16 format, using the program dcraw. The PNG and TIFF formats have either 8 or 16 bits per color. RAW files generally have 10-12 bits per color, and noise beyond that, therefore use a 16 bit format to keep all of the data available in a RAW file. The difference between 8 and 16 bit color is rarely visible, but a higher color depth provides a greater margin for retouch functions that can radically shift the brightness distribution, causing a problem known as "color banding". Use the [Select Files] button to choose one or more RAW image files from a gallery window (link). Choose one of the output formats. Choose the parameters for the program dcraw - the dialog buttons are used to configure the dcraw command shown below. The defaults should work fine. The image files are converted one at a time and displayed in the main window. Depending on the number of files, this can take a long time (a strong PC does about 60 files per minute using a mix of raw file types and TIFF-16 output). PNG-16 produces much smaller files than TIFF-16 because the files are compressed (with no data loss). This also needs more time to do the compression work. The parameters for dcraw are documented in the dcraw man page (command: $ man dcraw).


Brightness Distribution

This function opens a small window that shows a brightness distribution graph of the current image in the main window. This graph updates immediately for new images or as edit functions change the image. There are four graphs in four colors: red, green, blue graphs are for the respective colors. The black graph is for overall brightness which is labeled "white". Use the buttons [Red] [Green] [Blue] and [White] to select the colors to show. White means all colors added.


Grid Lines
This function adds or removes horizontal and vertical lines across the image. The lines are useful when an image must be rotated for horizon alignment, or when an image is unbent or warped to straighten walls or other objects in the image. The settings for x- and y-spacing control the spacing (pixels) between the lines. If the controls for x- and y-count are NOT zero, then the x- and y-spacing values are ignored and the number of lines will be set to these counts. Example: set x- and y-count to 2 lines each in order to divide the image into thirds horizontally and vertically. The x- and y-grid checkboxes can be used to enable and disable the vertical and horizontal lines separately. The keyboard shortcut Alt+G can be used to toggle the grid lines on and off (this shortcut can be changed). If an image is printed with grid lines enabled, the grid lines are also printed.

Several edit functions have a button [grid] which starts this same dialog. The resulting grid line settings are specific to that function only, and will be restored whenever that function is in use.


Slide Show
A dialog pops up to ask for some initial inputs. Use the [Select Files] button to select image files from the gallery window (link), which may be the current directory, a collection, or the result of an image search function. You can select random files or groups from this gallery, and/or navigate elsewhere to select other files. Enter a time duration to show each image. Select "show only latest versions" to show only the last version of each image file. Select "continuous loop" if the slide show should go back to the beginning after reaching the end. Select the transition modes to use when the image changes. Transition modes include arrow-keys (manual transition), instant replacement, fade-out / fade-in, and several animated methods of image replacement (e.g. the new image expands from the center to replace the old image). If "arrow-keys" is selected, then the time duration is irrelevant and the keyboard left and right arrow keys are used to move to the next or previous image. The arrow keys can still be used even if one of the other modes is selected. Use the escape key to get out of slide show mode. The spacebar can be used to pause and resume the timer between slides. Before starting the slide show, you can start the function Metadata > Edit Caption/Comments to show relevant text for each image in a small window which you can push to the side. The text is updated for each image viewed in the slide show. Other Metadata menu displays will also update with each image. The slide show dialog also has an input for a music file or playlist. If not blank, the music will be started with the slide show. You can interrupt the slide show by pressing the G (gallery) tab. Navigate elsewhere if needed, click on an image, and the slide show will resume from that image. This allows you to skip around more easily than stopping and starting the slide show each time.

You can start with a named collection by using the [Open] button and choosing a collection. Use [Select Files] to select from the collection (or the [add all] button to all all of them and then optionally delete some). Use the [Save] button to save the selected files to a named collection.

It is also possible to start a slide show with or without music from the command line:
   $ fotoxx -slideshow /.../imagefile1.jpg  -music /.../musicfile.ogg
The slide show begins with the given image file and proceeds to following files in the same directory. The -music parameter is optional. If present, the following file is a music file (.mp3 .ogg ...) or a playlist. xdg-open is used to open the file with the preferred music player.


Show RGB

When a point on the image is clicked, the RGB values are shown in a dialog window. The values have the format xxx.dd, where xxx is the upper 8 bits of the color value and .dd is the lower 8 bits. The range is 0.00 to 255.99. The lower 8 bits are zero unless the image is being edited or the image is a 16-bit tiff file. EV (exposure value) and OD (optical density) units are alternative units, useful for precise color adjustment. EV is zero for mid-brightness (128). OD (optical density or reflectivity) is 2.0 - Log(100 * RGB / 256). The outputs are updated immediately if the image is being edited. The last five points clicked are shown. The points are labeled on the image corresponding to the letters A-E in the dialog window. If "delta" is checked and the image is being edited, then the RGB changes are shown instead of the absolute values. If no edit is active, "delta" does nothing.

  RGB
0
1
2
4
8
16
32
64
128
256
  EV
nan
-7
-6
-5
-4
-3
-2
-1
0
1
  OD
nan
2.41
2.11
1.81
1.51
1.20
0.90
0.60
0.30
0.0


Monitor Color

Eight color bands are written across the screen with brightness from zero (black) to 100%. You can use this to adjust the brightness of your monitor. The left end of each stripe should be as black as possible, but you should start to see some color within a few mm from the left edge. If the completely black portion is wider than this, adjust the monitor. There are 255 brightness steps from black to 100% (8 bits per color). The steps are too small to distinguish with the eye. This evaluation should be done in a darkened room (with little external light falling on the monitor).


Monitor Gamma

Gamma determines how RGB brightness values (0-255) are converted into brightness as perceived by the eye. The standard value is 2.2 and this should normally be used for image editing. An adjustment chart is provided, courtesy of Norman Koren. Adjust the dialog slider until the middle band has the same brightness as the upper and lower bands at scale location 2.2. The chart only works at 100% size, so do not zoom the chart. The command line utility "xgamma" is required (normally it is present).


Change Language

This function allows you to change the GUI to one of the available languages. If your language is not available or has missing translations, consider making a translation, which is not difficult (more).


Edit Translations
This function is used to revise the GUI translations interactively, as Fotoxx is being used. Traditionally, translation files (.po files) are edited separately. These are then installed and the application is exercised to see how the translations look. See the menu Help > Translations for an explanation of how .po files work and the procedures for editing them. The advantage of this interactive method is that you can better understand the context, making translation easier and more accurate. Updated translations are also immediately seen in the application dialogs. This method is well suited for updating a translation, or to refine one.

A standard .po file must be installed to start with. This is /usr/share/fotoxx/locales/fotoxx-xx.po for locale code xx. You can use the file fotoxx-en.po, which translates English to English, with the locale code changed to the target language, e.g. fotoxx-fr.po for French. Translations may be partly or entirely missing at this point - it is only important that all the English strings are present in the .po file. Use the menu Edit Translations to start the process. A popup text window is created and displays all English strings and their present translations as they are being used. The format is like the .po files. Missing translations will repeat the English phrase in place of the translation. The translations may be edited in the window as soon as they appear. When the [apply] button is pressed, the original .po file is copied and updated from the edit window. This edited .po file is placed in /home/<user>/.fotoxx/locales/fotoxx-xx.po. Each time the Edit Translations menu is started, a new popup text window is created for new translations, and these are accumulated in the .po file.

When the translation function starts, you can choose to show only missing translations or all translations. Normally only missing translations are needed, but revisions in existing translations can also be made. Once a translation is edited and the [apply] button is used, the translation is no longer missing and will not appear again in the edit window if 'only missing' was chosen at startup. If the function is started again later, the option to show all translations or only the missing translations can be set again.

You can start Fotoxx with the command line parameter "-translate" to make it start up in interactive translation mode. This will capture the main window menu and toolbar translations which would be missed if the menu function were started later.

When a new release of Fotoxx is installed, if an installed .po file (/usr/share/fotoxx/locales/fotoxx-xx.po) is newer than the corresponding file in /home/<user/.fotoxx/locales, the latter will be replaced with the installed file.


Menu and Launcher

This function puts a Fotoxx icon / launcher on the desktop and adds Fotoxx to the desktop menu system under the category "Graphics". Your system must be LSB compliant (Linux Standards Base). The effectiveness of this has been sporadic. You may need to log off and back on to see the new menu entry. A dialog allows you to customize the startup options.


Burn Images to CD/DVD

This function enables you to choose image files and burn them into a CD or DVD. When the function starts, an image gallery window is displayed from which you can select the image files to burn (link). When done, the list of image files is sent to Brasero to burn a CD or DVD.


Resources
This is a diagnostic tool to measure CPU time and detect memory leaks. The data is dumped to the log file (stdout), which is visible when you start Fotoxx from a terminal window. The CPU time is the total process time (all threads and child processes) since the previous resources dump.


 

Metadata Menu

Note: the program exiftool must be installed for the metadata functions to work. Fotoxx uses this program to read and write text information stored within an image file (metadata: EXIF, IPTC, etc.). If exiftool is not installed, then modifying an image with Fotoxx will lose all metadata. For recent Ubuntu, the package name is: libimage-exiftool-perl. Other distros may be different.

There are several alternatives for organizing a large image collection so that it can be easily searched.


Edit Caption/Comments
This is a special function for editing image text saved in IPTC "Captions" and EXIF "User Comments". Enter any text you want to associate with the current image. Multiple text lines of any length can be entered, up to an overall limit of 2000 characters. Press the [Apply] button to save the text in the IPTC and EXIF data for the current image. The dialog can be left open while navigating to different images, and the current text for each image is shown, if any. Enter or modify the text and press [Apply] to make the change permanent. If you need to enter (nearly) the same text for multiple images, you can use cut and paste. You can leave this window open in a corner of the monitor to show the comments as new images are viewed (also in Slide Show mode). You can search for images based on captions and comments (see topic Search Images).


Tags Overview

Image files can have classification tags (categories, keywords) assigned to them. These can be used to search a large image collection for those images having desired tags. Typical tags: the main subject of a photo, the associated event, the location, the person(s), etc. Tags reside inside the image metadata (IPTC:keywords). Tags are normally one word, but a short phrase with imbedded blanks or other delimiters can be used. Commas and semicolons are recognized internally as delimiters (separators) between tags, and therefore cannot be used within a tag. A compound tag like "Arizona scenery" is allowed, but you should use two tags instead for more flexibility: you can search for images having either tag or both tags.

You can use a directory hierarchy to make a physical organization of your images, e.g. directory names corresponding to year or location or other scheme. You can use file names for the main subject of the image. Such physical organizations are useful but optional: you can also put all your images in one giant directory and keep the numeric file names that come out of the camera. Regardless of the physical organization, tags can be used to create other organizations, e.g. to label all the images of one person over all years, events, locations, etc. All images having a desired tag or tags can be found quickly and displayed in an image gallery window, where you can further review the images and choose those for viewing, editing, or changing their tags.

If you have used directory and file names in a meaningful way, you can keep using these, and you can also search for images using these names as well as tags. There is no need to duplicate information already available. See "Search Images" below.

Images may have a date (date of photo) which is pulled from the image EXIF data, if present, or manually set. Images may have a "star rating" for the importance or quality of an image. Dates and star ratings can also be used as search criteria.

Limitations and Practical Tips
The following are the default limits for tags. These are compile time constants which can be easily increased if needed, although I believe they are large enough to exceed practical limits:
     o   max. tag length: 50 characters per tag
     o   max. tags for one image file: 1000 characters
     o   max. tags in a tag category: 50000 characters
     o   max. tags overall: 50000 characters
     o   max. tags in a search: 200 characters
     o   max. tags for Batch Add Tags: 200 characters

The practical limit for the overall number of tags is in the range 200-500. Exceeding this range is possible but will lead to some practical problems: The window showing available tags will be large and tags will become harder to find (although sorted by category and within category), and the point and click method of adding tags will become more cumbersome. If tags are broadly defined and fewer in number, the search results will be larger, but using the search results (image gallery window) to find a smaller set of images is also quite fast. Physical file organization is also preserved in the gallery window (image files located together in their directories will also appear together in the gallery window). All in all, my recommendation for the casual photographer is to use fewer and broader tags.


Edit Metadata


To assign tags, a rating, or a date to the current image, select the menu Metadata > Edit Metadata. Existing tags are shown in "current tags". Available tags are shown in the "defined tags" window below. One of these tags can be added to the image by pointing and clicking with the mouse. A tag can be deleted by pointing and clicking within "current tags". Tags recently added are shown in "recently added". This is a convenience to make adding tags to a new batch of images easier, assuming that many of the same tags will be used repeatedly. Point and click the same way. The date of the image, if available, is shown as "image date". This may be entered if missing, or changed. You can enter a full date in the format yyyymmdd or a shorter format yyyy or yyyymm. A missing month/day is logically equivalent to 01/01 when used as a low limit for searching, or 12/31 when used as a high limit. The [use-last] button fills-in the date from the last date entered or shown. This is to allow easy dating of a series of images. If time is important, you can include a time using the format yyyymmddhhmmss. You may enter an optional "stars" rating for the image. The dialog remains open if you navigate to a new image, and the current tags are filled-in from that image. The [Apply] button writes the tag information to the image file and to the search index file used for searching images.

Manage Tags
This dialog starts from the button [manage tags] in the Edit Metadata dialog above. You can also assign categories to tags to help organize them and locate them more quickly when adding tags to images. They are optional and they play no role in tag assignment or searching: only the tag is stored in an image, not its category. Typical categories are people, places, things, events, scenery, buildings, art, etc. To add a new tag with a new category, enter the category and tag and click [create]. The category can be left blank and the tag will be assigned to "nocatg". To assign a tag to a different category, click a category (bold text) or enter a new one, click the tag, and press [create]. The tag will move from the old to the new category. To delete a tag, click the tag and press [delete]. Tags used in images but not assigned to a category will appear under "nocatg".

Note:
 a newly created tag is appended to the end of the tag list for its category. The next time fotoxx is started, all categories and their tag lists are sorted alphabetically, except that "nocatg" is always last. A tag will also disappear from the list if it is no longer assigned to any image.


Batch Add Tags
When adding tags to a large number of images having many of the same tags (i.e. the same event or subject), use this function to speed up the process. In the dialog, use the [select files] button to open a gallery window with thumbnail images from which you can select the image files (link). After selecting files, specify tags to add to the images by clicking tags in the "defined tags" list. If you need a new tag, input the tag and press [create tag] to add it to the list. When done specifying image files and tags, press [proceed] to add the tags to the image files.


Batch Delete/Replace Tag
This function is used to delete a single tag from many images at once, or replace a tag with another one. In the dialog, input a tag to delete and an optional replacement tag. Use the [select files] button to open a gallery window with thumbnail images from which you can select the image files (link). Alternatively, use the "search all files" checkbox to specify that the tag will be removed/replaced for all image files in the image database (all image files having the tag, as found with the Search Images function).


View Meatdata (short)
View Metadata (long)

The View Metadata functions will display metadata for the current image file, if available. EXIF metadata contains the date and time of a photo, shutter speed, focal length, pixel dimensions, etc. Digital cameras store this data inside the image. IPTC metadata contains tags (from Fotoxx, Photoshop ...) and captions (often for published images). If an image is edited and then saved, the metadata is updated and stored with the new image.

The View Metadata short report outputs the most commonly needed data, including the photo date and time, exposure data, focal length (real and 35mm equivalent), user-assigned tags and star rating, comments, caption, and a history of Fotoxx edit functions that have been applied to the image. The long report reports all metadata available.

Fotoxx uses the following EXIF / IPTC data items:
    Key Name
Fotoxx Usage
    Date/Time Original
Edit Metadata function - image date
    Keywords
Edit Metadata function - image tags
    Rating
Edit Metadata function - image stars
    User Comments
Edit Comments function
    Caption-Abstract Edit Caption function
    Geotags
Edit Geotags function, 3 search image functions
    Edit Status
History of Fotoxx edits applied to the image
    any key
Edit Any Metadata, Delete Metadata


Edit Metadata
A specific metadata ID (key) can be added (if legitimate) or revised. Enter the key name and press [fetch] to retrieve existing data, if any. Enter the new data and press [save] to save the new or revised data. You may enter the key name in lower case and without blanks, e.g. the EXIF key "User Comment" may be more easily entered as "usercomment". The dialog is live: the current key name will be fetched automatically for each new image file opened, and it can then be revised and saved if wanted.


Delete Metadata
This function allows deletion of a specified metadata key, or all metadata at once. Input a key name in lower case and without blanks, e.g. the EXIF key "User Comment" is entered as "usercomment".


Geotags - General
Modern cameras can record the location of each photo, using an internal GPS receiver. Latitude, longitude, city and country are recorded in the EXIF metadata of the image JPEG or RAW file. The Fotoxx Edit Geotags function allows location data to be entered or revised for any image. The Fotoxx Search Images function can find images by location, including an optional range: e.g. find all photos taken within 30 km of London. Locations may also be specified by clicking on a world map. There are two functions that can find all images from a specified location or region: Images by Location/Date: find all images for a country, a country and city, or a country, city and date range. Images by Map Location: click on a world map to show all images within a range of the clicked location.


Download Geolocations
This function downloads two files, cities-geotags and world-map.jpg (about 8 MB total). These are saved in /home/<user>/.fotoxx/geotags/. The cities file has location data for over 3000 world cities (city, country, latitude, longitude). The city names are English common names. The data comes from http://www.travelgis.com. Do this download function before trying to add geotags to images, since most locations you will likely need will be more easily available. Locations that you add to your images are automatically available for subsequent use, and are checked first (also for partial matches) before the downloaded locations are checked. If existing location data is revised (spelling or latitude/longitude) before adding to an image, the revision is saved. Future versions of cities-geotags can be downloaded without loss of user changes and additions. All locations in your image EXIF data are automatically available and will be searched first for partial matches.


 Edit Geotags
The dialog displays the location data for the current image, if any. The live display is updated when a new image is opened. For an image with missing or incorrect location data, enter a city name and use the [Find] button to either complete the data in the dialog, or get a list of matching cities to choose from (e.g. Bermingham, United Kingdom and Bermingham, United States). Partial matches are found, so you can usually enter a leading substring, e.g. "hono" for Honolulu. Use the [Apply] button to enter the data into the EXIF metadata for the current image, and also into the search index for later searching by location. If the data is revised in the dialog (spelling of city/country, or revision of latitude/longitude), this will take precedence for future city searches. Use the [Prev] button to fill the dialog data with the last location used. If the [Find] button does not find a city (it is missing from the cities-geotags file), you can use the [Web] button to find the city and location data from an internet web service (Yahoo for now, but this can change). The location data is completed and returned into the dialog. The web service is very liberal about matching partial or misspelled names, so be careful to check what is returned. If it is not what you want, either expand or correct city and country names and try again. The [Apply] button will add the location data to the image, and it will be available from now on for other images by using the [Find] button.

Blank the latitude and longitude if you want to save only the city and/or country name in the image file. If the latititude/longitude data is changed from the values returned by [Find], these values are saved and will be used from now on for new entries for this city. Previous images with the same city are not revised. You can use Images by Location/Date (see below) to find all images for a city, and Batch Add Geotags (see below) to change the latitude/longitude for all of them.

Note: Non-English locales: If a comma is used for a decimal point in latitude/longitude, this is accepted but converted to a period internally. The web service returns periods.

Note: If a city is saved without latitude/longitude, there will be no "red dot" to mark the city on the world map, and finding photos for this city by clicking the world map will not work (see below, Images by Map Location). The other method to find photos by city (Images by Location/Date, see below) will still work.

The [Map] button opens a world map in tab W. Zoom-in to the area you need and click on a map position. The closest known city (within the specified range) will be selected. Use [Apply] to save the location into the image file.

For a series of photos made in the same location, you can quickly add location data. After getting the location data for the first image, use the toolbar [Next] button to open the next image, then the Edit Geotags [Prev] button to fetch the previous location data, then the [Apply] button to save into the current image file. If there are many photos, you can use Batch Add Geotags (see below) to quickly update all of them.

If a city is unknown (and the [web] button fails), you can manually find the city in the internet and enter the location data into the Edit Geotags dialog. Pressing [apply] will add the data to the current image and make the location available for future use. Here are two web sites to look-up a city/country (there are many others):
   http://www.worldatlas.com/aatlas/findlatlong.htm
   http://brainoff.com/geocoder/


Summary:
  +  Open an image file and select the Edit Geotags menu.
  +  Enter (or change) a city name (possibly abbreviated) in the dialog.
  +  Use [find] to find the city and auto-fill country, latitude, longitude.
  +  If there are multiple matches, choose from the list.
  +  If there are too many matches, add more letters to the city or supply the country and try again.
  +  If there are zero matches (not found), try the [web] button.
  +  If still not found, add more letters to the city or supply a country name.
  +  If still not found, use one of the above web services and input the data manually.
  +  Use the [apply] button to update the image file and make the location available for future use.
  +  Open the next image (use the toolbar [next] button if appropriate).
  +  Use the [prev] and [apply] buttons to add the same location data again, if wanted.


Batch Add Geotags
With this function, you can select many images and add the same location data to all of them. Use the [select files] button to select the image files from a gallery window (link). Then get the location data as described above in Edit Geotags. Press [proceed] to start the update process. Use this function also to correct city/country spellings or latitude/longitude data, or to fix inconsistencies.


Images by Location / Date

This is a fast way to find all photos made in a given country or city and country. In the dialog, select the desired level of grouping: by country, by country and city, by country and city and date. In the last case, you can select a date range for grouping of images having nearby dates. A number N will group images with dates that are N days or less apart from other images in the group (i.e. date gaps are <= N days).

A popup window shows all cities found in the image geotags, and the dates of photos taken in those cities. The count of photos taken is also shown. In the above example, 9 photos are from Grossglockner starting Oct. 19, 2006. Click on a line in the window to get a thumbnail gallery of those images, and from there you can click on any image to view or edit. The gallery becomes the current set of images for the [Prev] and [Next] and buttons, until [Open] is used to open some other file.



Images by Map Location
This function opens a world map image in tab W, and a dialog to input a search range. The search range sets the maximum distance from a nominal location to search for photos, and is 10 kilometers by default. Map locations having corresponding geotagged images are marked with red dots. Click on a map location to get a gallery of images for the location: all images geotagged within the search range. The window changes to the G tab and the gallery appears. You can select tab W and click a new location for a new gallery report. The search range can be changed only if you go back to the menu: Images by Map Location.
Navigation: zoom and pan/scroll for the world map is slightly different from image files:
  + mouse wheel forward: zoom world map to full size, centered on the mouse position
  + mouse wheel backward: shrink world map to fit within the window
  + left click on a red dot: show gallery of images geotagged for that marked location
  + left click NOT on a red dot: zoom world map to full size, centered on the clicked position
  + right click: shrink world map to fit within the window
  + toolbar zoom+ and zoom- buttons: zoom to full size or shrink to fit the window
  + keyboard Z key: alternate between full size and shrink to fit
  + mouse drag: the world map pans and scrolls like other images


Search Images

Use the Search Images function to find images having any desired metadata. A search index file is used for searching, which makes it possible to search thousands of images per second. The index contains a subset of the EXIF and IPTC metadata in the image files. Some of this data is automatic, created by the camera. Other data, such as tags and star ratings, can be added by the user (using Fotoxx, Photoshop, others.). You can rearrange your image directories and image files without losing anything - you must only regenerate the search index file, which is simple and fast (see Synchronize Files).

Example:
Search for images dated 2006 or later, rated with 4 stars or more, having tag "buildings", taken in city Dresden, and by a Panasonic or Sony camera.

The main dialog is on the left. The Geotags dialog appears if the [geotags] button is used to select location data, and the smaller Metadata dialog appears if the [other] button is used to select metadata that is not available in the main dialog. The output report for the above search is shown below. If the secondary metadata dialog is not used, then the report format is the normal thumbnail gallery (thumbnails and file names only, without the metadata details as shown in this example).


In the main dialog, select desired tags, dates, star ratings, comments, captions and file names. Available tags are shown and can be chosen with point and click. Use the radio buttons "all" or "any" to indicate if all tags or any tag must be present for an image to be selected. Press the [proceed] button to perform the search. Matching images are displayed in the gallery window, tab G. Choose images to view or edit by clicking the thumbnails. Navigate this set of searched images using the navigation buttons in the gallery window, or the [prev] and [next] buttons on the image window, tab F. As soon as you open a file directly (toolbar [open] button), the gallery of searched images is discarded and the directory of the newly opened file is used for the new thumbnail gallery. You can save the searched images as a permanent collection, which can be further edited to add or remove images (see Manage Collections).

A date range may be optionally entered, to restrict the search to images within the date range. The format is yyyymmdd. Images are selected which have a date on or after the first date, if present, and on or before the second date, if present. Missing month/day default to 01/01 for the low date limit and to 12/31 for the high date limit.

A pair of star ratings may be optionally entered to restrict the results to images having a star rating within the given range. A missing low value implies no stars, and a missing high value means the hightest rating, 5 stars.

Image directory and file names may also be searched. In the field "file names", enter any number of names used for your image directories and file names, separated by blanks. An input of [ egypt cairo ] would match all image directory/file names containing either of these strings. Name matching is not sensitive to case.

Image comments and captions may also be searched (see Edit Captions/Comments). Enter the words to search for in the dialog "search text" field, separated by blanks. These will be matched to every word in the comments and captions of all images, and matching images are selected.

The radio buttons "all" and "any" apply to tags, text, and file names. You can select images having ALL the entered strings, or ANY of the entered strings. Example: if the search file field contains [egypt cairo] and "any" is selected, then image files with either of these names within the directory or file name would be selected.

Geotags Dialog
The [geotags] dialog selects images by location. Enter a city name and press [find] (as described in Edit Geotags) to get country and latitude/longitude added automatically. Enter a kilometer range to determine the max. distance of images from this location to be included. If latitude/longitude and kilometer range are present in the dialog, these are used to locate images by latitude/longitude. If you want to search only by city and/or country name, erase latitude/longitude and leave the city and/or country. Use the [map] button to get a world map. Click on the map to set a latitude/longitude to search. You may enter null for city, country, or latititude to find images lacking these geotags.

Search Metadata Dialog
You may use this dialog to search for metadata items not present in the main dialog.
The items available for any given image file can be shown using View Metadata (long). These include camera make and model, exposure time, F-number, ISO, metering mode, focal length, shooting mode, etc. etc. You can enter shortcut names like "exposuretime" instead of "Exposure Time". You may also enter match criteria, if wanted, so that only the images with matching metadata are reported. For example, if you enter "camera model name" with the match value "DMC-FZ28" (my Panasonic) then only the images taken with this camera will be reported. You can also enter multiple match values for one key, separated by blanks.

Performance: If no extra metadata to report is entered, then 1000+ images/second are searched and reported (using a strong PC). If extra metadata is entered, the search performance slows to something like 90 images/second. This is because the image files are being read to extract the metadata not included in the search index. For good performance, always use dates, file names, etc. to maximize the use of the search index and minimize the number of image files that must be read.

There is a separate topic on image organization options.



Area Menu


Overview
Edit functions normally apply to the entire image, but it is possible to edit part of an image (an "area") and leave the rest unchanged. If an image area has been selected, then the Retouch and Art edit functions will work only within this area. All other functions ignore a selected area. An area may be selected before starting an edit function, or while an edit function is active. The selected area is immediately active, prior edits are retained, and future edits will apply only within the area. If another edit function is started, the selected area remains active, so it is possible to carry out a series of edits on one area.

"Layers" in Photoshop and Gimp are "areas" in Fotoxx. Instead of selecting something from the image, making a separate layer from the selection, performing edit functions on the layer and finally merging the layers, you select something in the image and perform edit functions on the selection, with WYSIWYG feedback during the edit. Areas can also be saved, pasted into other images, and edited there.


Select Area

The Select Area dialog is started with the menu Areas > Select. Select one of the 8 methods (explained below). Each method selects image areas in a different way. You can change methods at any time, and the selected areas are accumulated. An outline of the selected image area(s) is shown as you add or remove areas from the selection. The [Finish] button is used to make the area ready for subsequent edits. The [Hide] button removes the area outline, giving you better visibility of image edits and edge blending. Use the [Show] button to show the area outline. The select area dialog can be exited and re-started later to modify an existing area or start a new one.

Drawing Color: The color used for the mouse selection circle and the area outline can be changed with the toolbar button [Color]. Choose a color for good visibility against the given background.

The following methods are used to enclose one or more image spaces that will belong to the final area. These methods may be used in any sequence to define spaces that are either joined or detached.
  Rectangle  Drag the mouse to enclose a rectangular area.
  Ellipse
 Drag the mouse to enclose an elliptical area.
  Freehand Draw  
 Drag and click the mouse to draw lines that outline an enclosed space.
  Follow Edge 
 Click along the edge of an object in the image to draw lines that follow
 the edge, or drag the mouse to draw freehand.
  Replace
 Drag the mouse near an area edge-line to move the edge to the mouse.
  (controls for the
  methods below)
 "mouse radius" sets the size of a selection circle around the mouse pointer.
 "match level" sets the color match (0-100%) required for pixel selection.
  Select area
  within mouse   
 Left/right drag to select/unselect all pixels within the mouse circle.
 Independent of color.
  Select one matching
  color within mouse
 Click on the image to select a color. Left/right drag to select/unselect
 pixels inside the mouse circle that match the color within "match level".
  Select all matching
  colors within mouse
 Left/right drag to select/unselect pixels surrounding the mouse that match
 the color of any pixels inside the mouse circle within "match level".

The following paragraphs explain the details of each method.


Rectangle
Drag the mouse from one corner to the opposite corner of the desired rectangular area to select. A rectangle is drawn to enclose the area. Right-click to delete and start over. Repeat the process to select more rectangular areas.

Ellipse
This works the same as rectangle selection, except that the area enclosed is an ellipse.

Freehand draw
Drag the mouse (left button down) to draw a freehand (curvy) line, or left-click to connect a straight line from the last point drawn to the point clicked. Continue around the target area until it is surrounded with connected curves and lines. Right click to remove previous lines (mistakes). A right click will remove the previous clicked or dragged line, up to 50 pixels. Right click repeatedly to remove more. A new clicked line will always connect to the end of the previous line. A new dragged line will connect to the previous line if it is started close to the end of that line. If it is started elsewhere, a disconnected line will be drawn. You can start a new drag from far away and draw back to meet the previous line. If a clicked line connects to an undesired point (i.e. you don't want to connect to the last line drawn), right click to erase it and then use drag to start a new sequence of lines. A right-button drag can be used to erase small segments: right-drag closely along a line to erase it, then left-drag to re-draw the line. At the end, an area must be fully enclosed, with no gaps. Lines that overlap a little at the ends are OK. Gaps can be difficult to find and correct, so work at 100% image size or greater and be careful. A series of lines automatically connected with left clicks will not leave gaps, but deviation from this sequence is likely to create gaps. To reduce the possibility of gaps, use deliberate overlaps when manually connecting lines.

Follow edge
High-contrast pixels (likely object edges) between the last point drawn and a newly clicked position are found and connected. This is effective for clear edges that are not too irregular. Fuzzy and ragged edges may not work well and freehand draw will be needed if high precision is necessary. The rules for connecting lines are the same as explained above. Dragging the mouse instead of clicking works like freehand draw, so you can switch back and forth.

Replace
Drag the mouse near and along an existing area edge-line. The line will be erased and redrawn at the mouse pointer. This is a faster way to make a small adjustment in an existing line.

Mouse Radius and Match Level
These two controls apply only to the selection methods below them in the dialog box. Mouse Radius defines the size of a circle around the mouse pointer. Pixels within the circle are selected, or they provide a set of colors for matching and selecting pixels outside the circle. Match Level
defines a degree of match (0-100%) to select pixels based on their color and brightness. 0 means anything matches, and 100 means a perfect match is required.

Select area within mouse
Left click or drag will select the pixels enclosed by the mouse circle. A right click will unselect the last selection (repeat to unselect more). A right drag will unselect the enclosed pixels.

Select one matching color within mouse
Click on the image to select a color. The color is shown on the color button. You can also use the button to set a color directly. Left/right drag to select/unselect
pixels within the mouse circle that match the current color within the current match level. Adjust the match level down/up to match more/fewer pixels.

Select all matching colors within mouse
Left/right drag to select/unselect pixels inside the mouse circle. Pixels beyond the mouse circle are also included if they meet these conditions: 1) their color matches any color inside the mouse circle within the current match level. 2) they are within "search range" of the mouse pointer. This is a factor of mouse radius, e.g. if mouse radius is 20 and search range is 3, then the search range is 60 pixels from the mouse pointer. Drag the mouse over new areas you want to include. Watch the selected area expand into areas with colors matching those inside the mouse circle. If you go too far, right click to remove the last selection. Repeat if needed to remove more previous selections. Reduce the radius or increase the match level to gain finer control - the selection will expand more slowly and stay closer to the mouse circle. A small radius and high match level can be used to follow along an edge and select pixels up to the edge with good precision. Change to a larger radius and/or lower match level to select larger areas after the fine work is complete. Right drag acts as an unselect: pixels inside the mouse circle and matching pixels within the search range are unselected. If a selection goes too far, it is often easy to correct this by unselecting from outside the selected area. You may need some practice to get a feeling for this and be able to work efficiently. The firewall checkbox can be used to stop the search wherever allready-selected pixels are met. Use this if the border of an area has already been defined and you want to stay within this border.

Summary:
  left drag
select pixels inside mouse circle and those with matching colors within search range
  right click
undo previous selection, repeat to unselect more
  right drag
unselect pixels inside mouse circle and those with matching colors within search range

Blend Width: Edits made within an area can be blended with the surrounding image over a distance called "blend width". At the edge of the selected area, the image is the original (unedited) image. At a distance of "blend width" from any edge inside the area, the image is the edited image. For distances in-between, the pixels are a mix of original and edited pixels with a gradual transition. Use the Blend Width control to set the blend width for the current or subsequent edit functions. Zero blend width gives a hard edge to the area edit. Increasing blend width makes the edges of the edit more gradual and harder to distinguish from the original image. Changing the value for the first time after editing an area will cause the edge distance to be calculated for each pixel in the area. This is normally fast (a few seconds), but it may take minutes if the area is large and has a complex geometry (a very long edge). Whenever an area is re-edited or inverted, the edge calculation is discarded and must be repeated if blending is wanted. If the edge of a selected area is within 4 pixels of the image edge, it is no longer considered an edge for blending. If a selected area includes a portion of the image edge, and you do not want blending along this edge (the normal case), be sure the edge of the area is within 4 pixels of the image edge.

Show / Hide: Use [Hide] to hide the area outlines. This is useful when editing the image/area, to better see the effects of the edit without interference from the area outlines. Use [Show] to show the outlines and resume editing the area.

Finish: When you are finished selecting the enclosed spaces, use the [Finish] button to complete the process. A popup dialog will ask you to click the mouse inside each enclosed space in sequence. This action launches a search for all pixels within the enclosed space, and these are mapped and saved. The enclosed space is temporarily colored so you can see exactly what part of the image is being selected. The dialog will show the status of the search, "success" or "outline has a gap". If there is a gap in the outline, an attempt is made to show where the gap is: you will see a line coming out of the colored space to meet the edge of an imaginary rectangle enclosing the space. You may be able to follow this line back to the gap, but if the area is convoluted finding the gap can be difficult. Each use of [finish] will produce a different picture that may lead you to the gap. Carefully inspect the outline of the area, close the hole, and use [Finish] again. An area is not effective for edits until it is successfully finished. Any enclosed area can be selected, even those not explicitly outlined (e.g. if you use select within mouse to select a donut with a hole, you can still click the hole to include it in the area).

Disable / Enable: Disable the current area and keep the data so that it can be re-activated later. This allows you to alternate edits within a selected area and edits for the entire image.

Invert: This function inverts an existing area: the entire image is selected except for the existing area. Using the function two times returns the original selected area. Inverting a selected area invalidates the edge calculation which will be repeated if edge blending is selected.

Unselect: Discard the current area permanently.


Area Show / Hide
Show or hide the outline of the current area. Hiding the area is useful when the area is being modified with one of the edit functions. This makes it easier to judge the effects of the edit. These are also available as buttons in the Select Area dialog.


Area Enable / Disable
Disable the current area and keep the data so that it can be re-activated later (Enable menu). This allows you to alternate edits within a selected area and edits for the entire image. These are also available as buttons in the Select Area dialog.


Area Invert
Invert an existing area: the entire image is selected except for the existing area. Using the function two times returns the original selected area. Inverting a selected area invalidates the edge calculation which must be repeated if edge blending is desired. This is also available as a button in the Select Area dialog.


Area Unselect
Permanently discard the current area. This is also available as a button in the Select Area dialog.


Area Copy / Paste

Copy:
The current selected area is copied and saved in memory.

Paste:
Left click on the current image and the saved area is pasted into the image. It can be moved around by dragging with the mouse. Use the resize and angle buttons to resize or rotate the pasted object. Use the edge blend slider to make a blended edge if desired. Press the [done] button in the popup dialog. The pasted area now behaves like a Select Area. You can edit within the area and use the [blend width] control in the Select Area dialog.


Area Open and Save

If a selected area is active or has been saved with the menu Select > Copy, it can be saved to an image file using the menu Select > Save. You are asked to supply a name. Two files are saved: the image is saved to filename.tiff and the transparency data is saved to filename.info. These files reside at /home/<user>/.fotoxx/saved_areas/. Use Select > Open to choose a saved area (choose the tiff file), which will be dumped into the image where it can be moved around, resized, etc. as with the copy and paste functions.



Transform Menu

Rotate Image
   
The rotate menu function starts a dialog to rotate the image clockwise (+) or counterclockwise (-). For a tilted image, use the mouse to drag the right edge up or down until the image looks level. Use the 90 degree steps to convert an image taken in vertical format to horizontal. The spin control can be used to set any angle, -180 to +180 degrees. No resolution is lost with 90 degree rotation. For other angles, the loss of resolution is about 1/2 pixel. The output image is increased to accommodate the rotated input image without size reduction - e.g. a 1000 x 750 image rotated 10 degrees will be inside a new image box of 1115 x 912 pixels, and the unused areas will be black. Use the [trim] button to resize the image without the black areas.


Trim Image
(aka crop)
Use the trim function to remove any unwanted margins around an image. An initial selection rectangle is drawn enclosing most of the image. Click or drag near any corner of the rectangle to move that corner. When done, press the [Done] button in the dialog box to cut-off parts of the image outside the selection rectangle. The dialog box shows the current width/height ratio of the selection rectangle. If the box "lock ratio" is checked, then moving one corner of the rectangle will also move the opposite corner to keep the same ratio. You can also drag from the middle of the rectangle to shift the whole rectangle without changing its dimensions. You can use the width and height spin buttons to adjust the pixel dimensions (or type-in new values), and the selection rectangle will adjust to these. The six ratio buttons allow you to choose a preset width/height ratio. The button [invert] exchanges the width/height ratio (2:1 becomes 1:2 etc).

You can change the ratio button names and the corresponding ratios with the button [customize] which starts the Trim Buttons dialog. Enter desired button labels in the first row, and corresponding width/height ratios in the second row (the default names are the same as the ratios, except for "gold"). Use the ratio 16:9 for the HDTV format. The [gold] button uses the golden ratio, about 1.62:1. You do not have to keep it.

The [Rotate] button will start the rotate function, and this function will return to Trim when closed. This is for convenience and speed: almost every photo will need trimming, and if uprighting or leveling is needed before trimming, this is faster than working through the menus.



Auto-Trim Image

The functions panorama, HDR, HDF, stack, unbend, and warp can leave black margins where images did not overlay or were bent away from the edge. Auto-Trim automatically sets trim margins to omit these areas and then starts the Trim function (previous topic) with the margins pre-set. If these are correct, press the [done] button to finish. If not, change the margins as described above. Auto-Trim tries to find a maximum rectangle that does not overlap any of the black margin areas. This may or may not be the desired margins, so you can keep them or move them with the mouse before committing with the [done] button.


Resize Image
(aka rescale)
This function sets a new image width and height. You can input the new pixel width and height directly or choose a percent change for width and height. Buttons are present for setting the new size to 3/4, 2/3, 1/2, 1/3, or 1/4 of the original size. Using one of these ratios will minimize loss of resolution. If the lock ratio box is checked, the original width / height ratio will be preserved, meaning that if one dimension is changed, the other dimension will be changed to match. The change is made immediately, but the image will look the same unless it becomes smaller than the window, causing a visible shrinkage. Leave the dialog with [done] to save the changes or [cancel] to keep the original size. The image file size (status bar) is not updated until the modified image is saved.



 Write Text on Image

With this function you can write text directly on the image. Enter the text into the dialog. Multiple lines can be used. After editing the text in the window, left-click the mouse where you want the text on the image. Click or drag to move the text elsewhere. Right click to remove the text. Use the [Font] button to select a different font and size. Use the [Size] control to increase or decrease the text size. Use the [Angle] control to change the angle of the text. The foreground (text) and background colors and transparency can be adjusted. The example shows blue text on a white background, with the background being 77% transparent, meaning that the image shows through the background. The 3rd color option is to supply an optional outline around the text, in this case red. [Width] controls the thickness of the outline. The [apply] button makes the current text permanent, so you can start a new one without leaving the dialog. The [Open] and [Save] buttons start a file chooser dialog with which you can load or save all text data from or to a file. All the items in the dialog are loaded or saved (text, font, etc.), so you can keep a collection of often-used text strings.

Making a Watermark: use a foreground transparency of 70% or more and a background transparency of 100%. The text should be faint but readable. To add a "relief" effect, use Select Area to put a box around the text and use the function Art > Simulate Embossing to raise the text (if brighter than the image) or recess the text (if darker).


Flip Image
Choose either horizontal or vertical flip from the dialog. The image is reversed (mirrored) vertically or horizontally. Repeating the flip restores the original image. Doing both a horizontal and vertical flip is the same as a 180 degree rotation.


Color Mode
Use this function to make a black and white or color negative, or convert a negative image into a positive image, or convert to sepia coloring (a modified black/white conversion for an aged photo effect).
Select one of the four buttons:
    black/white positive - convert a color image to black and white

    black/white negative - convert to black and white and reverse brightness
    color positive - do nothing at all, or undo one of the others
    color negative - replace each RGB color with its compliment
    sepia - convert to a modified black and white for an aged photo effect


Color negative: Each RGB color is replaced with the maximum value - the color value. For example, if the RGB colors (% of maximum) are 20/40/60, then the negative color is 80/60/40. Doing this twice brings back the original colors. This produces complimentary colors as follows: red becomes cyan, green becomes magenta, and blue becomes yellow.

Sepia: This is like a conversion to black and white, but a shade of brown called sepia is added to the shades of gray. This makes a photo look like a very old photo from the early days of photography. Many cameras and photo edit programs have this feature.


Color Profile
Use this function to change from the normal sRGB color profile to some other RGB color profile. If you have images with Adobe RGB color, you can change them to sRGB for display on a monitor using sRGB (normally the case). You may need to install ICC color profiles. In Ubuntu, the package names are
"icc-profiles" and "icc-profiles-free".


Unbend Image

Panoramas of nearby subjects (typically buildings or interior rooms) may show straight lines that are curved, or buildings that are slanted. Bending of the images is necessary in the panorama process in order for the images to fit together. For remote subjects (esp. landscapes) this is not noticeable. The unbend function can be used to straighten curved lines and remove the slant from vertical lines. Vertical and horizontal dotted lines are drawn over the image, showing the unbend axes. Click or drag the mouse near the end of a line to move it. Input values for horizontal and vertical unbend and watch the effect on the image. Increase or decrease the values and repeat until satisfied. Move the axes to change the centers of unbending. The linear values will slant the image left/right or top/bottom edges to remove slant. The curved values will straighten the image curving that comes from making a panorama. See also "Warp Image" for another method of correcting image curving and perspective problems.


Keystone Correction
This function can be used to straighten a photo made from an offset angle. The painting on the left is the original photo, taken from below and left of center, to reduce reflections. The painting on the right is the straightened version. This function can also be used to straighten a building photographed from an angle, or a book page or document, etc.

Click on the four corners of the tetragon shape that you want to make into a rectangle (in the above case, the four corners of the painting or frame), then select [apply]. Use [reset] to go back and try again if needed. The clicked corners are labeled with small letters A, B, C, D. The upper left corner of the square enclosing the letter precisely marks the corner position. Clicking near a corner will move it to the new position. After the 4th corner is defined, a new click replaces the closest corner.



Flatten Book Page
This function can flatten a photographed page from a book. If the book is thick, the pages bend downward at the binding, and the photographed text is squeezed together. This function straightens the top and bottom edges of the page and unsqueezes the text.

Photo Procedure
First, make the photo as good as possible to minimize the needed corrections. The page curvature can be reduced by holding the book half-opened. Place the camera over the center of the page, so that the top and bottom edge curves look roughly equal. Use lots of illumination to increase the depth of field, to insure the curved-down part of the page remains in sharp focus.Two persons working together can photograph 1-2 pages per minute.

Fotoxx Procedure
First, trim the image, keeping all of the page but little more. Rotate the page if needed. Start the flatten function. Click the mouse along the top edge, creating visible dots at the clicked points. After 4+ points are available, a curved line is drawn through the points. Add more points and drag the points as needed to make the line conform closely to the page edge. Repeat for the bottom edge. Press [flatten] to flatten the page. The edges should now be straight (or straight enough). The text near the binding is still squeezed together. Unsqueeze the text by pulling the top and bottom sliders. The text is spread out in a way that is proportional the the slope of the top and bottom page edges, so the area near the binding is stretched the most. The [undo] button restores the unmodified image and the edited dots, which can now be adjusted.



Warp an Image (distort)



Warp Image (area)

This function can be used to make distortions within an image. You can select an image area and drag the mouse to stretch this area with respect to the rest of the image. The image reacts as if made of rubber. The movement is maximum at the mouse pointer and declines to zero at the edges of the selected area. Many mouse drags of different lengths and directions can be combined to achieve the desired results. When finished, you can select another area and do some more warping, or select [done] to exit the function. The method used limits loss of resolution from repeated warps: for each warp step, the total movement of each pixel is accumulated and the original image is warped to the latest pixel positions. The pixels are interpolated to reduce jaggies and improve sharpness.


Warp Image (curved)

This function is useful to correct perspective problems (see also Unbend). Drag the image from any position, using the mouse. The entire image will be pulled or pushed in the direction of the mouse, but areas near the mouse are moved more than more distant areas. You can straighten curved lines or deliberately curve the image. The control [warp span] determines the radius of warping around the mouse. 1.0 means the full image is warped, and smaller values confine the warp to smaller areas around the mouse.


Warp Image (linear)

This function is useful to correct perspective problems (see also Unbend). Drag the image from any position, using the mouse. The entire image will be pulled or pushed in the direction of the mouse, but areas near the mouse are moved more than more distant areas. You can straighten curved lines or deliberately curve the image. This function works over a broader area than the curved warp and causes less image curvature. To minimize the addition of curvature, pull only on the image corners.


Warp Image (affine)
This function can be used to warp an image in interesting ways. Drag the image from a corner or edge using the mouse. The changes are purely linear so straight lines remain straight. This transform is called "affine". Technical details can be found with Google.



Enhance Menu


Voodoo Enhance
This is a fast automatic image enhancement with limited capability. This is sometimes effective and "good enough" for rapidly processing many photos. There is no dialog - the modification is simply done when the menu is selected. Reject the change with the [undo] button if desired. The modification consists of a slight flattening of the brightness distribution, an expansion of the brightness range if less than the full range is used, and a slight increase in the color saturation, more for darker areas of the image than brighter areas. The effect is sometimes minimal or even negative. I am not personally comfortable with this idea - I believe human guidance can do a better job. Many users, however, have asked for this, and other photo editors also have something similar. This is far from optimal, and I would appreciate feedback and new ideas about how to this more effectively.


Brightness/Color
This function is used to change brightness, contrast, color saturation, and color balance (relative RGB levels). You can adjust all of these items as a function of the original image pixel brightness. To illustrate, you could increase color saturation in darker image areas and leave it unchanged in brighter image areas.

There are 5 response curves for the 5 image attributes of brightness, color saturation, and color balance (levels of red, green, and blue). The radio buttons select which curve is active and displayed. The curve represents a value (Y-axis) for each level of image brightness (X-axis). The middle Y-value is neutral (no change from the initial value). Higher and lower Y-values represent corresponding higher and lower settings for the 5 attributes. The initial curves are flat at the middle value.

The curves can be dragged up or down with the mouse. An anchor point (black dot) is added to the curve wherever it is pulled, and this becomes a constraint for subsequent pulls: the curve will continue to go through this point as other parts of the curve are pulled. Anchor points can also be dragged, or deleted by right-clicking them.

The image changes in real-time as the curves are moved. Simply move the curves and observe the image until you are satisfied. For example, to increase overall contrast, make the Brightness curve lower on the left and/or higher on the right. To brighten areas that are too dark, raise the left side of the Brightness curve. The buttons [+++] etc. can be used to shift the whole curve rapidly in various ways.

Brightness changes all RGB values for a pixel by the same factor. Color saturation changes the dominant RGB color(s) within each pixel and moves other colors in the opposite direction, so that overall brightness does not change. The curves for the three colors change one color at a time. For example, if dark image areas have a red hue, lower the left side of the Red curve.

The scale range is +/- 2.0 EV (F-stops) for a total brightness range of 1/4 to 4x. The step size for the buttons [+++] etc. is 0.1 EV or about 7% brightness change. The alternative small step size is 1/3 as big.



Gamma Curve
This is the classic gamma curve edit found in Photoshop and many other image edit programs. The x-axis maps the input pixel brightness and the y-axis the output or adjusted pixel brightness. The straight line at 45 degrees is the neutral curve, mapping input brightness values to the same values for output brightness. The edited curve shown here will cause darker pixels to become darker, mid-range pixels to have an increased brightness range (more contrast), and the brightest pixels to become brighter. In effect, contrast is being removed from the darker and brighter image areas so that the mid-range areas can have more contrast. Moving the low end of the curve to the right will cause dark pixels to be clipped (made black), and moving the top end of the curve to the left will cause bright pixels to be clipped (made white).

Edit the ALL curve while watching the image for instant feedback. You can also select and modify individual RGB colors after finishing the ALL color. Editing the ALL curve forces the RGB curves to match the ALL curve, so do RGB curve adjustments after adjusting the ALL curve.


The buttons [++] etc. can be used to move the curve in small steps. The above curve was made using the [-+] button which moves the lower part down and the upper part up.



Tone Mapping
Tone mapping increases the apparent brightness range of an image by increasing local contrast. It is especially useful to improve HDR images, but can also be applied to any image. HDR images often seem "flat" because the contrast between nearby pixels has been reduced to make the overall contrast fit within the available range. Tone Mapping increases the contrast between nearby pixels without increasing the overall contrast. It relies on the nature of human vision: contrast within a small angle is perceived more strongly than contrast over a large angle. Tone mapping can bring out subtle details (low contrast) that would otherwise be hard to notice.

Other methods can also be used: adjusting the brightness curve can increase contrast for a selected brightness range (possibly at the expense of others). Flattening the brightness distribution can spread the available contrast (brightness range) more evenly. Increasing color saturation can also bring out more detail. These methods operate globally: all pixels of a given color and brightness are processed the same. Tone mapping processes pixels differently depending on the brightness of surrounding pixels and is more effective at enhancing detail and the perceived brightness range.

In the dialog, the graphic curve determines how much local contrast is increased depending on initial local contrast. The left end of the x-axis corresponds to low-contrast pixels and the right end high-contrast pixels. Raise the left side of the curve to increase the contrast of low-contrast pixels (but this will also enhance low-level noise). The Amplify slider below the curve regulates the internal algorithmic calculation, from no contrast amplification on the left to full amplification on the right. If moved too far to the right, the image may show artifacts (bright or dark "rays"), so push it back until these disappear.

The curve can be dragged with the mouse and its effect on the image will show up in a few seconds (depending on image size and CPU speed). The amplify slider also needs a few seconds to show up in the image. If more contrast is wanted, raise the curve. If uniform areas (e.g. sky) become mottled, pull the left end of the curve down to reduce amplification for low-contrast pixels. In some cases it will be best to select different areas of the image and process them separately, e.g. more conservative for sky, more aggressive for textured surfaces like stone walls.


Flatten Brightness

This is a fast and easy way to compensate for a common limitation in photos: the brightness range is inadequate, or areas of the image have nearly the same brightness and details are lost. This function redistributes the pixel brightness so that each brightness level is more equally represented. Technically, the brightness distribution is made more uniform (flatter). Move the slider and watch the image, which may lag a moment. Some images will show good results, others may not be helped or even become worse. Using this function within a selected area is often very effective. Edge blending may be needed to make the boundary invisible. A bright monotone area (typically sky) may show "banding" (stripes or patches with brightness steps large enough to notice). This is caused when a narrow brightness range gets spread apart, with larger gaps between the new brightness levels. Example: a region with pixel brightness levels of 250-255 in steps of 1 is spread out so that the new brightness levels are 235-255 with steps of 4. Use the Deband slider to reduce this effect, especially in the brighter image areas.


Expand Brightness
This function expands the brightness range of an image that does not utilize the full brightness range available, possibly making it look contrast-poor. You can see this in the brightness distribution graph. If the distribution shows little or no area at the extreme low and high ends of the horizontal scale, the image may benefit from expanding the brightness range. This means that the darkest pixels are made darker and/or the brightest pixels are made brighter. Move the sliders to extend the brightness range and observe the image.


White Balance

This function is an easy way to remove a false color-cast, e.g. the whole image has an overall blue or red tinge. After starting the function, click somewhere on the image that should have no color - a white or gray area. If that location has any color other than white or gray, it will be used as a measure of overall false color, and this amount of color will be removed from the whole image. You can click around on various areas and see the impact instantly. The "reduce" slider can be used to reduce the amount of change from 100% to zero.


Brightness Ramp
This function varies the brightness across an image, with the direction and magnitude of the brightness slope determined by editable curves. You can use this to compensate for uneven lighting or vignetting (darker image corners). The function dialog displays two editable curves, horizontal and vertical. The horizontal curve adjusts brightness horizontally, and the vertical curve adjusts brightness vertically. Move the curves in the directions labeled "+" and "‒" to increase or decrease the image brightness in the corresponding image area. To remove vignetting in the image corners, move both ends of both curves in the "+" direction while fixing the middle areas or even moving them in the "‒" direction. To brighten the upper right corner, move the right end of the horizontal curve and the upper end of the vertical curve in the "+" direction, as in the example above. If used with a selected area, the scales refer to the enclosing rectangle of the area instead of the whole image. Thus you can select an area of an image and apply a brightness ramp across the area. If the button "all" is selected (default) then all colors are adjusted equally (i.e. brightness is adjusted). If one of the colors is selected, the image is adjusted for that color only, and the "all" curve is ignored. Any or all three RGB colors may be adjusted in this manner. You can use this to remove a color-caste that varies across an image or image area.


Vignette Tool
There are two functions in this dialog.

Select Brightness to change the brightness of an image in a radial pattern: Adjust the left or right end of the curve to change the brightness of the center and edges of the image respectively. You can give a dark surround to a portrait face, or you can brighten the edges of an image with a "vignette" problem: the center was exposed more than the edges. The curve 50% level corresponds to no change. Use lower values to darken and higher values to brighten. The example above gradually darkens the periphery of the image while leaving a broad central area unchanged.


Select Color to add a chosen color to the image in a radial pattern. Curve values of zero (at the bottom of the box) represent no change, and higher values add the chosen color to the image. The amount is regulated by the curve value. The highest value (top) corresponds to 100% color. Use this function to add a color surround to an image, e.g. surround a face with a gradually increasing color.

Click or drag the mouse on the image to change the vignette center, which is initially at the center of the image.



Match Colors
This function matches the colors in one image to those in another. A small spot, determined from a mouse click, is sampled from each image. The spot on the 2nd image will be made to have the same average color (RGB values) as the spot from the 1st image. The factors used to make the RGB values the same are then applied to all the pixels in the 2nd image. The most common use is to remove a color-cast from an image by marking a spot on the image that should have a given color which is taken from another image.

Procedure: The dialog lists 5 steps to take in sequence. (1) Set a radius for the spot sample. The mouse cursor will have a circle of this radius which is the spot area that will be sampled. (2) Open the 1st image (press the [open] button for a file open dialog). If the current image is already the one you want, this step can be skipped. (3) Click on the image to take a color sample from the spot area enclosed by the mouse circle. You can change the radius and click again if wanted. (4) Open the 2nd image by pressing the [open] button. (5) Click on the image at the spot you want to match the spot color from the 1st image. The image colors will change within a second or two. You can change the radius and click on another spot if wanted, and the colors will change accordingly. Click the dialog [done] or [cancel] button to finish.



Revise RGB
This function can be used to make complex color corrections, whereby different parts of the image need different corrections. Select up to 9 control points on the image by clicking them with the mouse. The points are added to the list in the dialog window, with the most recent point at the top. The points are labeled A-I in the list and on the image window. The current RGB values are shown (or EV or OD units if selected). Change the RGB/EV/OD values in the dialog, and the image will be changed to match. Each pixel in the image is influenced by all the control points in the dialog, with the closer control points having more influence than those farther away. The slider Soften Peaks determines how widely the control points spread their influence. If "delta" is checked, the values shown are the deltas (differences) from the original image.



CMYK
This function is used to change overall brightness or selected colors using OD (optical density) units. The input values range from -99 to +99 which represent -0.99 to +0.99 OD.  OD is a logarithmic scale where -1 is a 10x increase and +1 is a 10x decrease in brightness. The input steps (0.01 OD) make a 2.3% change in brightness, which is barely visible with undo/redo and not visible with a side-by-side comparison. The contrast buttons change contrast by 0.01 OD per step, meaning that the brightest and darkest pixels are changed by 0.01 OD in opposite directions, with intermediate pixels changed proportionally.

CMYK is the tool for converting color space between monitor and printer. Print a standard color chart, use CMYK to adjust the Fotoxx image and print again until the printout is good. Save the settings (color offsets) and use them to print subsequent images with correct color the first time. The settings will be different for different printers and paper types. Use [save] to save the settings to a file, and use [open] to load the settings from a saved file.




Repair Menu



Sharpen Image

This function sharpens a blurry image. Three methods are implemented: edge detection, unsharp mask, and gradient. Edge detection: find adjacent pixels with the largest brightness difference (contrast) and increase the difference. This is repeated for several cycles, with the threshold for brightness difference decreased each cycle. Unsharp mask: a fast and effective method also found in Gimp and other tools. A technical description can be found via Google. Gradient: pixels are processed left to right and top to bottom. The brightness difference (contrast) between each pixel and its prior neighbors (left and above) is increased, and the pixel brightness is modified to match. This brightness change is propagated to the next pixel where the process is repeated.

The edge detection method gives sharper edges where the contrast is high and softer edges elsewhere, making it good for portraits (sharp eyes, smooth skin). For images that are partly sharp and partly blurred (e.g. depth of field or motion problem), the edge detection method primarily affects the blurry areas, whereas unsharp mask may put "halos" around edges that are already sharp. The gradient method works about as well as unsharp mask for slightly blurry images. The radius value limits the distance over which pixels around an edge are changed. It should be small for images that are slightly fuzzy and larger for poorer images. Threshold suppresses changes to low-contrast pixels: a higher values reduces the amplification of low-level irregularities.

For the edge detection method, enter the following parameters:
   cycles         number of iterations
   reduce        brightness reduction threshold per cycle, 80 means 0.80
   threshold    brightness change low cutoff threshold

For the unsharp mask method, enter the following parameters:
   radius          distance pixels around an edge are changed
   amount        amount of correction, 100 = normal
   threshold     brightness change low cutoff threshold

For the gradient method, enter the following parameters:
   amount        amount of correction, 100 = normal
   threshold     brightness change low cutoff threshold

Press the button for the method selected and wait a few seconds to see the result. The default values are suggested starting points. Make changes and repeat the process until satisfied. You can go back and forth among the methods to compare which is best for a given image. Use Select Area to operate on different parts of the image with different methods and parameters.


Blur image

This function can be used to blur or un-sharpen an image. Each pixel is mixed with neighboring pixels to reduce the differences, making edges fuzzy. Enter a value for blur radius and press [apply] to see the results. A small value mixes each pixel with its nearest neighbors and larger values mix more distant pixels. The contribution from each pixel decreases with distance, so the nearest pixels have the greatest contribution. This function is useful to smooth mottled skin tones. You can use "select area" to limit the blur to a face or part of a face. This is also a way to cure "banding" in sky areas (this can happen if the flatten, brightness, or tone mapping functions cause the distribution to spread out, making the brightness steps perceptible).


Reduce Noise
This function reduces the noise present in photos taken under poor lighting conditions, making uniform surfaces appear speckled. You may choose among the methods provided, and mixing them (using one and then another) is often helpful. When an [apply] buttons is pressed, the corresponding noise reduction method is applied to the image, using the corresponding adjustable setting (radius or threshold). Each new [apply] uses the modified image from the previous [apply], so each use will have increasing impact. Witha large image, these algorithms may run a long time. To save time, select a small area and experiment with the different methods and settings until you make a decision, then clear the selected area and apply the chosen method(s) to the whole image.

Here is a short technical description of each method:
 Flatten Outliers 1 The highest and lowest pixel values within a radius are moderated slightly.
 Flatten Outliers 2 Pixels are compared to the mean and sigma of pixels within a radius.
Those outside one sigma are moved slightly back toward the mean.
 Median Brightness
Pixels are set to the median value of their neighbors within a radius.
 Top Hat Detect outliers by comparison with a band of pixels at a distance.
The distance is increased in steps from 1 pixel to the radius limit.
 Wavelets
Image brightness (with noise) over distance is converted into a series of wave functions that nearly sum to brightness and represent an approximation with less noise.

The wavelets algorithm was adapted from code found in a Gimp plug-in. The first version was written by Dave Coffin for the program dcraw.



Smart Erase
This function can be used to erase small objects that can spoil a good photo, such as power lines, trash on the ground, a sign, etc. The unwanted object is replaced with pixels taken from the surrounding area. This is sometimes very effective (side-effects almost invisible), and sometimes not. It works best for small or narrow objects in the photo (e.g. <20 pixels wide). Radius controls the size of a circle around the mouse pointer, defining the area to select and erase. Drag the mouse to enclose all or part of the object to be removed. Left-drag selects and right-drag un-selects. Press [Erase] to erase the selected area, replacing the pixels with the nearest pixels from outside the selection. If the selection was not precise enough, use [Undo], adjust the selected area, and [Erase] again. Repeated selections and erasures will accumulate until you use [New_Area] to start a new selection. The prior erased areas are now fixed and [Undo] will only work for the current selection. As with all edit functions, the toolbar buttons [Undo] and [Redo] can be used to review all changes. It is likely best to work with an image zoomed to 200% or more. The Blur control adds blur to the replacement pixels. This can reduce visible side-effects, since the replacement pixels may be sharper or have more contrast than the surroundings. Change the Blur setting and repeat the [Erase] button. A blur of 0.5 or 1 pixel is usually effective. The [show] and [hide] buttons can be used to show the outline of the current selection or hide it to better judge the results after erasing.


Remove Red Eye

This function reduces the red-eye effect from electronic flash photos. Two methods are provided. The first is faster but will not handle difficult cases (e.g. the eyelids are almost as red as the eye). The second method is more robust but also needs more time and care.

To use the first function, left-click on a red-eye one or more times until satisfied. If the darkened area is too small or off-center, do a right-click to undo the change and then left-click more precisely on the center of the red-eye. If a red-eye cannot be fixed correctly, right-click to undo the change and then use the second method.

The second method can better handle difficult cases where the red-eye is only slightly red and the color difference with the eyelids is too little for the automatic algorithm to distinguish. Place the cursor over the center of the red eye. Hold the left mouse button and drag the cursor down and to the right. A dotted ellipse will appear enclosing the red eye. Repeat if needed to get the red eye centered in the ellipse (roughly). Note that the shape of the ellipse depends on the direction of the drag, which can allow more precise enclosure of only the red-eye. Left-click inside the ellipse repeatedly while watching the red eye darken, and stop when it is dark enough. If you go too far, the eyelids may start to darken. Right-click to undo and repeat if necessary.


Paint Pixels
This function changes individual pixels by painting them with the mouse. If a select area is enabled, the painting is confined within the area.

Paint Color:
The color button allows you to pick a color, and it always shows the current color. You can also
shift + left-click on the image to choose a color from the image. The "paintbrush radius" control sets a circle around the mouse pointer which shows the area being painted or erased. Left drag on the image to paint with the current color. Right drag over a previously painted area to erase (gradually undo the painting). The "transparency" controls determine how intensely the color is applied (or erased) at the center and edges of the circle. Zero transparency applies the full color immediately whereas a high transparency (90+) allows you to gradually change the color using multiple drags (analogous to spray painting from a distance). Erase also works this way: use zero transparency to immediately erase, and high transparency to erase gradually. NOTE: zoom the image to 100% or more when using a small brush. If the mouse steps are larger than the image pixels and a small brush is being used, some pixels may be skipped by the mouse and cannot be painted.

Paint From Image: Instead of one fixed color for all pixels within the paintbrush radius, pixels are taken from somewhere else in the image. Shift + left click on the image to select the source area, then drag on the area to paint. The source area is painted over the dragged area. The transparency controls work as described above. This method can be used to erase an unwanted object, replacing it with background taken from elsewhere.

The [undo-last] button removes the last paint or erase operation, and this can be repeated to remove many recent edits. Each new drag operation is a unit of work that can be separately erased. The memory for undo operations is limited to one gigabyte, which can be reached if you make many edits using a large brush (every change to every pixel is saved). It is useful to save the image after each satisfactory change to free this memory. The amount of memory available is displayed in the dialog, so you can see when the limit is approaching.



Remove Dust
Images made from dusty scanned slides can have many small dark spots - shadows of the dust on the slides. This function can be used to remove the majority of such spots. Move the three sliders until the maximum number of dust spots are painted red, then press the [erase] button to erase them. Press [red] to bring back the red view, then you can adjust the sliders again and press [erase]. The "spot size limit" slider limits the size of the spots that will be erased. The "max. brightness" slider sets a threshold for ignoring spots that are not dark enough. The "min. contrast" slider screens out spots having low contrast with their surroundings. This process is usually a compromise. If the settings are not optimal, small features like tree leaves can be erased, or large spots may be left in place. Different parts of the image may need different settings, e.g. sky can be treated more aggressively than a building wall. You can simply use Erase Dust multiple times with different settings as needed to get all the dust spots. Or you can use select area to process the image in sections. If some spots are persistent, you can treat them manually with Smart Erase: set a small mouse radius and click on each spot to remove it. Spots from fibers (long and thin) are usually not removed automatically, but Smart Erase can be effective here.


Fix Color Fringes

This function is used to reduce chromatic abberation. Look carefully at the left photo, taken from inside a church. It has color fringes that were mostly eliminated in the processed image to the right (these images are 400% size and not very sharp). Color fringes can appear along high-contrast edges, especially in the outer image areas where lens distortions are usually greatest. To get rid of them, zoom the image to a maximum size and center on an area with color fringes. Move the slider controls slowly while watching the image, and leave them where the color fringes are minimized. To speed up the response time, select a small area first (Area > Select) , optimize the color fringes in this area, then remove the area before pressing [done] so that the entire image will get the final corrections. The corrections are scaled so that the maximum correction is at the image edges and the correction at the center is zero.


Fix Stuck Pixels (always bright or dark)
Camera sensors may have defects causing isolated pixels to be always bright or always dark. This may be one RGB color or all of them. I have seen a case where a group of 3x3 pixels was always too red. This function can find such pixels in an image and repair them by substituting neighboring pixels.

Select the defect sizes to search for: 1 pixel, 4 pixels in a 2x2 block, or 9 pixels in a 3x3 block. The defects found are surrounded by small circles which you can toggle between write, black and red. Zoom-in to inspect these and determine if they are real defects. Use the contrast control to precisely select the defects. If set too low, small high-contrast spots in the image may be erroneously selected. If set too high, real defects may be missed. Use the [apply] button to erase the defects in the current image. You can apply the function many times using different settings if needed. The currently shown (encircled) defective pixels can be saved to a file by using the [save] button. This file can be used later to fix the defects in any image made by the same camera: use the [open] button, select the saved defects file, then use the [apply] button to fix the current image. Using a saved defects file from one image to fix the defects in another image will only work if the two images have never been trimmed, or if exactly the same trim was applied to both images. This is necessary because the defective pixels in the two images must have the same locations. If more than one contrast setting or pixel group selection is needed to accurately find all the defects in one image, you can save the respective defect files and combine them manually into one file. Use any text editor for this. I suggest you make a test images to find defects: Make a photo of a paper sheet or blank wall that is underexposed to come out gray. This image can be used to find both bright and dark stuck pixels.


Paint Edits
Use this function in combination with some other retouch edit function. Specify a mouse radius and "power" factors for the mouse center and radius edge. Then start a retouch edit function if not already active. The mouse pointer will be surrounded by a circle with the specified radius. When the mouse is dragged over an area of the image, the current retouch function is applied within the circle. The strength of the function is regulated by the power factors. Typically you will use a high value at the center and zero at the edge, meaning that the strength of the edit will be maximum at the center, changing gradually to zero at the edge of the circle. As you drag the mouse over the same area repeatedly, the edits are slowly accumulated. For example, if the edit function is Brightness/Color, and the brightness curve is set to a high level, then the image will be slowly brightened in the area where the mouse is dragged. This is called dodge and burn in other image editors, but other retouch functions can also be used, e.g. tone mapping or blur. Use the [undo] and [redo] toolbar buttons to monitor the change, which may be hard to notice at first. Set the center power to 100 to make faster changes (with less fine control). Use a left-button drag to weaken the edit or ultimately erase it. When done using one edit function in one or more image areas, use the [done] button on the edit dialog to complete the edit. Use the [reset area] button on the Paint Edits dialog to erase the active area that is now left over from the mouse dragging. If you leave the area active and start a new edit function, the results are unpredictable. A suggested approach is: (1) start the Paint Edits dialog, (2) start sn edit function with its initial settings (the effect on the image will be zero since no mouse dragging has been done), (3) drag the mouse over the desired areas and watch the effect, (4) adjust the edit function settings, (5) alternate between the previous two steps. This method to "paint" a retouch function incrementally can improve selected areas of an image quickly and easily. It works with any edit function that can use selected areas. The most useful are Brightness/Color, Gamma, Flatten, Tone Mapping.


Leverage Edits
It is sometimes effective to apply a retouching function "leveraged" by image brightness, e.g. apply noise reduction to darker areas of the image while leaving brighter areas alone. To do this, use the menu Select > Leverage Edits. Choose brightness or one of the RGB colors as the controller (lever). The editable graph controls how subsequent edit functions are applied to the image. The x-axis is pixel brightness from dark to bright, or the selected RGB color from 0 to full brightness. The y-axis value governs how strongly an edit function affects a corresponding pixel. A low value minimizes the effect, and a high value maximizes it. Example: apply tone mapping primarily to dark pixels: Use Select > Leverage Edits and drag the curve so that high values are on the left (dark pixels) and low values are in the middle and on the right (bright pixels). Now use Retouch > Tone Mapping to apply tone mapping to the darker areas of the image. You can edit either curve (leverage curve, tone mapping curve) while watching the resulting image.



Effects Menu


Color Depth

This function changes the normal 16 bits per RGB color (red, green, blue) to any value between 1 and 16 bits per color. At 8 bits per color, there are 16.8 million total color combinations. At 4 bits per color there are only 4096 total colors. Use 1-4 bits for an interesting "poster" effect.


Drawing

This function transforms a photo into a black and white high-contrast image or into a line drawing where only the edges of objects are shown as black lines on white background or white lines on black background. The sliding control "contrast" will deepen dark areas to black. The sliding control "threshold" will convert the image from gray-scale to black and white. The sliding control "outlines" will highlight high-contrast pixels (edges of objects) and suppress low-contrast pixels. This can be black on white or white on black, depending on the selection of the radio buttons "pencil" and "chalk". Manipulate both "threshold" and "outlines" to find the best balance.


Outlines
This function transforms a photo into a colorized line drawing showing outlines of objects within the image. Edges (sharp transitions in brightness or color) in the image are brightened, and the rest of the image is darkened. There are three sliding controls. Outline threshold: regulates how bright an edge must be in order to get enhanced, from "show no edges" at the low end to "show all edges" (even faint ones) at the high end. Outline width: the width of the enhanced edges, from 1-pixel to about 5 pixels. Image brightness: the brightness of the image itself, from dark (show only the outlines) to full brightness.


Embossing

This function transforms a photo into a simulated relief or embossed image. The "radius" setting determines the feature size or level of detail. The "depth" setting determines how deep the features go into the surface.


Tiles

This function transforms a photo into an array of large monocolor tiles. You can control the tile size and the thickness of the gap between tiles. This is also called "pixelate" or "pixelize". Use Select Area to confine the transform to a limited area, such as a face.


Dots
This function transforms a photo into a array of dots, like old-fashioned comic book pictures or Roy Lichtenstein paintings. The only control is the dot size. Also experiment with using color saturation, color depth, or other functions before using Dots.


Painting
This function transform a photo into something looking more like a painting. It reduces the number of colors, maps each contiguous pixel area having the same color, and then consolidates smaller areas into adjacent larger areas having the best color match. Four user settings control this process: "color depth" sets the number of colors to be used (bits per RGB color). 1 = 8 colors, 2 = 64 colors ... 5 = 32768 colors;  "target group area" sets a lower limit for areas that will have their own color: areas smaller than this number of pixels will be absorbed into an adjacent area with the nearest color match; "req. color match" sets the minimum color match required for a smaller area to be consolidated into an adjacent larger area: 0 = don't care (maximum consolidation), 100 = perfect match required (no consolidation); "borders" determines whether the colored areas will be delineated with a thin black border, like irregular tiles in a mosaic. After using this function, using the Embossing function can add interesting texture to the image.


Shift Colors
This function converts an image into false colors. Choose any of the three RGB colors and move the slider left or right from the center. One of the two other colors will be substituted in a graduated manner, reaching 100% replacement at the slider end positions. For example, you can gradually substitute green or blue for the color red.



Cartoon

This function converts an image into a cartoon-like drawing. It is technically a selective blur: High-contrast pixels are kept unchanged, and low-contrast pixels are blurred. The effect is that details (edges) remain sharp and other pixels are blended to make low-contrast details fade away. There are four controls to customize the algorithm: Contrast Limit defines the contast above which pixels are not blended. Contrast Spann is the distance in pixels over which contrast is measured. For example, "4" means that each pixel is compared with pixels that are 4 pixels away, and the highest contrast found is the nominal contrast for the pixel being measured. Contrast Spread will cause high-contrast pixels to classify nearby lower contrast with its own contrast, so more of the image around a high-contrast edge is kept unchanged. Blur Radius determines how many pixels are blended when a pixel is blured. "10" meand that all pixels within a radius of 10 will be blended. In any given case, you will likely have to experiment and try several settings before deciding on an optimum. The function may need a minute or more for a large image with a large blur radius. To speed things up, select a small area to experiment with, for rapid response. The cartoon effect can be increased by using Tone Mapping, either before or after this function, or both.




Combine Menu


Make a High Dynamic Range Image
(HDR)
Combine (overlay) multiple images of the same subject with different exposure levels. The combined image can show improved visibility of detail in both the darker and brighter areas, in effect using pixels from the brighter images for the darker areas, and from the darker images for the brighter areas. Many digital cameras do exposure bracketing: take multiple shots in quick succession with different exposure levels. You can combine such images to make a better one. If the camera is adjusted manually between shots, take care to keep it level and aim at the same distant point. Some misalignment of the two images can be tolerated. If things move between shots, fuzziness and ghosting cannot be avoided.

Select the HDR menu function. A file open dialog is started to select up to 9 image files, which must all have nearly the same pixel dimensions. The images are aligned and combined automatically, which may need a minute or more. When done, the combined image is shown, along with a dialog for manual adjustments. The contributions from the input images are shown as a series of editable curves. The horizontal scale represents pixel brightness, from dark to bright white. Each curve represents an image which contributes to the pixels. The image contribution at a given brightness level is proportional to the height of its curve at that level. The initial curve for the brightest image will be high on the left and low on the right, meaning a high contribution to dark pixels and a low contribution to bright pixels. The darkest image will be low on the left and high on the right, and the remaining images will be in-between. The curves can be edited by dragging them with the mouse. The anchor points (small squares on a curve) can be pulled around while others remain fixed. The corresponding image contributions are changed accordingly, and you can see the results in quasi-real-time in the output image. Right-click on an anchor point to remove it. In general, the brightest image should have a higher contribution to the darker pixels, and the darkest image a higher contribution to the brighter pixels. You will likely need practice to become effective at working the curves.

A faster and easier alternative may work as well: after the images are combined, ignore the curves and exit from HDR. Use various edit functions to refine the image: Flatten, Expand Brightness, Brightness/Color, and Tone Mapping. Select Area can be used to enclose any area in the image which needs more brightness, color, or local contrast, so you can apply different methods and parameters to different areas.


Make a High Depth of Field Image (HDF)
Combine (overlay) multiple photos of the same subject with different focus settings from near to far. Different parts of the subject are in sharp focus in each image. Combine the images so that all parts of the subject are sharp. This technique is most useful for extreme close-ups.

Making the photos: choose a point for the center of the image. Aim the camera at a near object and depress the shutter button 1/2 way to set the focus on this object. Hold the button at the 1/2 position, aim the camera at the chosen center, and snap the photo. Now choose a farther object and do the same. Repeat with increasing focus distance. Hopefully each part of the subject is sharp in at least one photo. The camera position should be very nearly the same for all photos, which can be a challenge when the subject is very close. Camera movement can cause scaling and parallax problems (nearer objects shifted against farther objects). Such problems may be fixable later in Fotoxx, but this may require considerable time. It is better to avoid the problems.

Processing the photos: in Fotoxx, choose the HDF menu function and select up to 9 images. The images will now be aligned as well as possible. This may take a minute or more per image, depending on image size and CPU speed. The output image is an even mix of the aligned input images. A small amount of camera movement between the photos is compensated, but this is limited, and parallax shifts are not compensated at all. When the alignment is complete, a dialog opens. You can select any input image and "paint" with the mouse on any area of the output image. This converts the original image mix to the selected image for the area being painted. For each area or object in the image, choose an input image that is sharp in that area. The radius of the paintbrush can set larger or smaller, so you can paint large areas quickly and control fine detail when needed. If you have overlapping near and far objects, time and patience will be needed to make all of them sharp.


Misalignments can be corrected by selecting the "warp" option in the dialog. The underlying images can then be dragged and warped with the mouse, and the composite output image is changed accordingly. The warp is limited to the area around the mouse. When a painted area is dragged, the corresponding image is automatically selected and dragged, while areas painted with other images remain fixed. Areas that have not been painted cannot be dragged. Move around to different areas and make incremental drags until all areas are aligned.
 
Suggested Workflow:
Using paint mode, choose each image in sequence and paint all areas that look sharp with that image. Any boundaries that are not well-aligned will show up clearly as shifts in the edges of objects in the image. Some of these can be made unimportant by changing the image used for painting (if more than one image is sharp enough). Using warp mode, make fine adjustments as needed to eliminate visible shifts.


Stack / Paint
Combine (overlay) multiple photos of the same subject taken at different times. Remove tourists and cars that come and go between shots by painting them away with the mouse.

Making the photos: aim the camera at the same distant point and take multiple photos as tourists or cars move in front of the subject. Try to get at least one photo with each part of the subject not obscured by the moving objects.

Processing the photos: in Fotoxx, choose the Stack / Paint menu function and select up to 9 images. The images will now be aligned as well as possible. This may take a minute or more per image, depending on image size and CPU speed. The output image is an even mix of the aligned input images. When the alignment is complete, a dialog opens. You can select any input image and "paint" with the mouse on any area of the output image. This converts the original image mix to the selected image for the area being painted. For each area in the image, choose an input image that is free from the moving objects. The radius of the paintbrush can set larger or smaller, so you can paint large areas quickly and control fine detail when needed.


Stack / Noise
This function combines 2-9 images (photos) of the same subject. The photos should be nearly the same, except for small offsets caused by a hand-held camera. If the photos were made with a very high ISO setting (low light conditions), the pixels will have considerable noise. By making many photos and averaging them, the noise can be mostly eliminated.

Making the photos: choose a point for the center of the image. Take several photos using the same center and being careful not to shift or rotate the camera too much. The more photos the better. Up to nine can be used with Fotoxx, but you can take more in order to have some to discard if they are not sharp, a common problem with low light conditions and long exposure times. In Fotoxx, chose the Stack / Noise function and select up to nine image files. They will be combined automatically and shown, and then a dialog will open. The initial output image is a combination of all the selected input images, averaged together. This means that the RGB values for each output pixel are the average of the RGB values for the corresponding input pixels. A few alternative tools can be used to possibly reduce the remaining noise a little more. The "use median" button will change the output pixels from an average of the input pixels to the median of the input pixels (1-3 "middle" RGB values are averaged, depending on the number of images). This may or may not be better, so switch back and forth to compare (the screen update may need several seconds). The checkboxes for "omit low pixel" and "omit high pixel" will cause the lowest and highest RGB input values to be discarded before the average is calculated. This may help to get noise spikes removed from the mix. This has no effect if the median method is selected.


Make a Panorama Image

This function stitches 2-4 images together to make a wide image or panorama. The images must overlap by 15% or more, so that the program can find where they coincide and put them together.

Using the panorama menu function, select 2-4 image files. The images are initially joined and shown with a small transparent overlap. A pre-align dialog asks you to drag the images into rough alignment. Drag the images into the correct left to right order. The image to drag may overlap other images. To be clear about which image is being dragged, drag from near the center of the image. After the images are in the correct order, align each image to its left neighbor. It works best to proceed from left to right. Move an image horizontally and vertically into rough alignment with its neighbor to the left, then rotate the image if needed by dragging its bottom edge left or right. The image pivots around the mid-point of its overlap with the image to the left. The fastest method is to align the overlap middle region first, then rotate the right image if needed to bring the upper and lower overlap regions into alignment. Extreme accuracy is not needed. Use the [resize] button to get a bigger combined image after moving them closer together.

The images should be correctly curved and fit together well. If they do not, then the lens mm parameter (focal length, 35mm equivalent) needs adjustment. The curvature of the images changes as lens mm is adjusted. The initial value is obtained from the EXIF data if available, and this is normally good enough. The lens bow parameter (barrel or pincushion distortion) is not available in EXIF and must be adjusted manually, but this is often insignificant and can be left at zero. You can measure and set the lens parameters manually as described below.

If an image was trimmed so that the greater dimension (width or height) was reduced, then the EXIF focal length is no longer valid, and the EXIF initial value may not work well. A section of an image taken from the middle has an effective focal length greater than the original. Use the pre-align dialog to increase the lens mm parameter until the images fit together reasonably well.

If the images have no curvature (e.g. scanned or downloaded images), use the "no curve" checkbox to set the lens mm effectively to infinity.

Press [proceed] when pre-alignment is finished, and the program will do fine alignment and join the images. Internally, the images are shifted and rotated and the degree of match is evaluated. This is done with increasing image sizes until the best match is found within a fraction of a pixel. This may take from 10 seconds to a minute or more per image, depending on CPU speed and image size.


When fine alignment is complete, the combined image is displayed. A dialog pops up for fine adjustment of brightness and color match. You may see a sharp border between images if the images do not have the same brightness and color balance. The [auto color] button can be used to perform an automatic color match, which is often satisfactory by itself. The other controls allow you to make additional changes to better match the images. Select one of the images with the radio buttons at the top, change the values for brightness and color, and press the [apply] button to see the results. Use [auto color] to match the other images to the one changed. Use [file color] to restore the original values from the input images. The "blend width" input governs how the images are blended together: at the image joints, the color balance is gradually shifted over this many pixels, to mask imbalances that cannot be fully corrected. The default is 1 pixel, which makes any brightness or color differences look obvious.

When done, you can use unbend, warp, rotate, trim, and other functions for final adjustments. Use the auto-trim function at the end to automatically get rid of any leftover black margins.


Vertical Panorama
This function works the same as horizontal panorama, except that the images are arranged vertically. To change the order of the images, drag them from near their centers. To rotate an image, drag the right edge up or down. It is best to align from the top down.

Scanned Images
Scanned images can be combined if there is enough overlap. Set the lens mm parameter to the maximum value (999 mm), since there is no curvature in scanned images.

Panorama Limitations
Panoramas including nearby objects can be tricky: when the photos are made, be careful to turn the camera on an axis through the lens, with minimum lateral movement, otherwise the images may align poorly due to shifting foreground objects (parallax). This is not an issue when the subject is 50+ meters away, since a small lateral movement has little impact on the image.

Setting Lens Parameters Automatically

The [search] button in the panorama pre-alignment dialog initiates an automated search for optimum lens parameters. Use a suitable image pair: the subject is 50+ meters away, the images have a low horizon difference and little relative rotation, and there is plenty of high-contrast detail in the overlap area. Input your nominal lens focal length for lens_mm. Use zero for lens_bow. After doing a decent pre-align, press the [search] button and wait a while for the results. Do this a second time and observe the changes. If the values remain consistent, you can use them for your panoramas. The search function steps through a range of values for lens_mm, lens_bow, and the image alignment offsets for x, y, and theta. It searches for the lens values that give the best alignment results for the given images. The process needs a minute or more, but you only need to do this once to characterize a given camera lens.

Setting Lens Parameters Manually
Make a panorama image of a brick wall (or any wall with lots of detail). The wall should be 5+ meters away. Take two photos with about 40% overlap. Within the panorama pre-align process, adjust lens_mm and lens_bow until the overlapping bricks coincide. When making the two images, be sure to turn the camera on a vertical axis through the lens, minimizing lateral movement and rotation in other axes - otherwise the images may fit poorly and your lens parameters may not be optimal. The result should roughly correspond to the nominal focal length of your lens (35mm equivalent). It may be off somewhat (my 27mm lens works best with a lens_mm setting of 29-30mm). I speculate that this is because wide-angle camera lenses are not ideal lenses (pinhole equivalent). Most panoramas will still work OK even if the lens_mm setting is off by 10%.




Plugins Menu

Other image edit programs (e.g. Gimp) can be added to this menu. They will then work like any other edit function in Fotoxx. After using one of these external programs to modify an image, you can use the Fotoxx [Undo] and [Redo] buttons to check the results, perform additional edits with Fotoxx, or use [Save] or [Save+F] to save the edited image. The image passed by Fotoxx to the external program is a TIFF file with 16 bits per color. Most programs can read this but may use only 8 bits. When finished using the external editor, save the image back to itself ("save" menu) and exit the program. Fotoxx will then pick up the revised file and use it as though the edit had been done in Fotoxx. Note that in Gimp you must use the File > Export menu to save the image back to the original input file ("save" produces an .xcf file).

To add a new plugin, use the function Plugins > Edit Plugins. Input a menu name (e.g. "Gimp"), a command to start the program (e.g. "gimp") and press the [Add] button. You can also remove a plugin by selecting it from the list and pressing the [Remove] button. The Plugins menu will not be updated until the next time Fotoxx is started.

The plugins are saved in a file: /home/<user>/.fotoxx/plugins which you can manipulate with a text editor if desired. This is the only way to change the sequence of the menu entries. Be careful not to screw up the format: menu = command (with exactly one space before and after the '=' character).




Help Menu


User Guide
The user guide (this document) is displayed (created using the WYSIWYG HTML editor SeaMonkey).

User Guide Changes
This is a summary of changes in the User Guide for the most recent versions. The intent is to enable you to survey the changes without reading the whole document.

Edit Functions Summary
A one-page "quick reference" summary of the image edit functions is displayed.

README
Displays the README file distributed with Fotoxx, which may contain new information about installation or dependencies. When you install a new release of Fotoxx, you should look at README and the Change Log to check if there is anything special you need to be aware of.

Change Log
Displays the change log file distributed with Fotoxx, containing details about functional changes, additions, or bug fixes for the current and previous releases.

Translations
Displays a short text file which explains how to make a new translation or change an existing one. This involves editing a text file that contains English text messages with their corresponding translations (see also the technical notes, below).

Home Page
Shows the Fotoxx home page from the Internet. Look here for program updates (the page named "recent changes"). This page is published via RSS and you can subscribe to get timely notification of changes.

About
This displays a short message about the Fotoxx version number, license, credits, and contact address.




Organizing a Large Image Collection for Easy Searching

Fotoxx can edit and search for the following image attributes: photo date, "star" rating, tags, geotags, file names, and words appearing in captions or comments. These are explained in the Edit Metadata, Edit Geotags, and Search Images topics. The following is an attempt to give an overview of the options and tradeoffs.

Physical organization - directory and file names: these names can be used as a basic organization that will enable you to find images even if more elaborate organizations (tags, collections, captions) are not used. The best physical organization is by time (not event or place or person ...). I suggest using one subdirectory per year named 2001, 2002, etc. This will also help to keep any one subdirectory from becoming too large. The image files may further be organized in time sequence by using MM.DD as the start of the file name. The rest of the file name can be an event or place name, and a sequence number.
    Example:
/images/2011/08.20 Spitzbergen 23
This very basic organization allows Fotoxx to find files by searching file names. In the above example, a search for "spitzbergen" or even "spitz" will produce all the images of Spitzbergen. The batch rename function (File > Batch rename Files) lets you rename a whole batch of photos taken on one day at one location or event by selecting the files and inputting a template name like "08.20 Spitzbergen ##". The sequence numbers are automatic.

Captions: A simple method of organization is to use captions and comments (Metadata > Edit Captions/Comments). These are arbitrary text strings that can be added to a series of images in rapid sequence:
   input some text, press [next], input some text, press [next] ... 
Captions and comments are two separate inputs but treated logically the same. They are searchable: words appearing in captions and comments can be searched for. You can add the names of persons or other information to each image, and then find them again quickly. With this method, you can search images using a combination of dates, file names, and any words appearing in captions or comments. Dates are taken from the EXIF data in the camera file. This presumes the camera clock was set correctly when the photos were made. For photos made with film cameras, dates can be edited using the Edit Metadata function.

Collections: Another simple method of organization is to use named collections. Choose a name for each collection and assign any desired images to the collection, using basically two clicks per image (plus the time to find the images to add). The images are not duplicated. This method is independent of tags, captions, file names, etc. See Manage Collections. Collections can be selected by name and viewed directly as a gallery of thumbnails or sequentially in the main window.

Tags: The most powerful tool is tags, but this is also the most demanding of organizational care. You can go through your images sequentially and add tags by clicking on a list of defined tags. New tags can be defined as needed. Images can have many tags, and can be searched for AND/OR combinations of tags (along with date, star rating, file name, caption, comments). Tagging is the fastest way to classify a large collection, needing a few seconds per image. The hitch is the tagging system. You need to lay this out in advance and stick to it, otherwise things can get chaotic. If you end up with 1000 tags they will not be very useful. If the images are physically organized by time, then groups of images will tend to have the same tags, which makes the process of adding tags faster. There is also a batch function for adding the same tags to many images you select by clicking thumbnails.

Geotags: Use geotags to assign a city and/or country, and optionally latitude/longitude to your images. This enables all images for a location to be quickly found (or near a location if latitude/longitude is used). If you use a camera with automatic geotagging, then location data is in the image EXIF data and location searching is available automatically. Since image dates are also automatic (in EXIF), images can be searched by date range and location without you having to enter any data at all for each image. You can leave it at this, or add some of the above extras if you accept the extra effort required. My experience so far with automatic city/country via GPS is that the names are chaotic and you may want to sanitize them (upper/lower case, with/without states or other political subdivisions, mixed languages, etc.).




User Guide Changes

This section is provided to help you quickly review the changes without reading the whole manual. This also helps translators to find the topics needing revision.

v.13.04
v.13.03
v.13.02
v.13.01
v.12.12
v.12.11
v.12.10



Technical Notes

Translations

See the menu  Help > Translations  for guidance on how to modify an existing translation or make a new one. This is a fairly simple process: edit a text file with English text strings followed by their corresponding translations. See one of the existing translations as an example, e.g.
   
/usr/share/fotoxx/locales/fotoxx-de.po (the German translation).
A new translation for language code xx would be saved at /usr/share/fotoxx/locales/fotoxx-xx.po. After making such a file, you can test it by starting Fotoxx in a terminal:
   $ fotoxx -lang xx.
Missing translations are also listed on the terminal window.

Hardware and Software Requirements
Fotoxx works best on a strong computer (2+ GHz clock, 2+ processor cores, 2+ gigabytes of memory). Multiple CPU cores are utilized for compute intensive functions (e.g. sharpen, rotate, warp, tone mapping, HDR, panorama). Slower computers will work, but may be quite slow for some functions. Monitors smaller than 1200x800 will feel very confining. The typical notebook screen with limited brightness and poor color accuracy should NOT be used for image retouching. If memory is tight, Fotoxx may refuse to edit a large image file (e.g. 20K pixels) or may become very slow due to memory paging activity.

Limitations
The image limits are based on having a strong computer as described above. 
  total images
 Fotoxx has been tested with 50K images with no noticable slowdown.
 500K images or more should be practical on a strong computer.
 Image search functions may get slower beyond 100K images.
  image size
 There are limits that depend on the amount of available memory (free + cache).
 The startup log file shows these limits for your computer.
  image edits
 99 edits for undo/redo and file version numbering (filename.v01 to filename.v99).
  geotag cities  
 10,000 different cities/locations for geotagged images.
  tags
 There are limits listed in the topic Tags Overview.

Programs Required by Fotoxx

Fotoxx requires the following libraries and programs to function at run time:
   xdg-utils open text or html files with user's preferred application
   exiftool
read and write image metadata (tags, comments, etc.)
   dcraw
batch convert RAW image files to tiff, jpeg, or png
   ufraw
open a RAW image for editing using the ufraw GUI
   brasero burn a CD or DVD with selected images
   xgamma
used for the Monitor Gamma function (adjust monitor gamma)
The program exiftool must be version 8.60 or later, otherwise the metadata functions will not work.

Packages Required for Fotoxx Source Build

See the README file for instructions on compiling Fotoxx from source.
In addition to the programs listed above, the following are also needed:
   g++
GNU C++ compiler
   libgtk3.0-dev 
Gnome GTK3/GDK3/Pixbuf/etc. function libraries
   libtiff4-dev tiff library development files
   libpng12-dev
png library development files
   liblcms2-dev
Little CMS development files
Note: package names and exactly which files are included in each package are decisions made by each Linux distro (i.e. the usual chaos). The above names are valid for Debian-based distros (including Ubuntu). For other distros you may have to dig to find the right packages to install.

Command Line Options

   -v
output release version and and exit
    /.../imagefile.jpg
initial image directory or image file to open
   -recent  (or -r)
show a gallery of recent files, most recent at the top
   -prev  (or -p)
show the last file viewed in the previous session
   -blank (or -b)
show a blank window
   -lang lc_RC language code (+ opt. region code) to use for GUI (de, de_AT, fr ...)
   -slideshow /.../image1.jpg
    [ -music /.../playlist.pls ]
start a slide show using image1 and following images
optional music playlist for slide show

   -translate (or -t)
start in online translation mode (to capture the initial menus)
   -nosync (or -nos)
omit auto file sync at startup (dangerous - see note below)
   -menu "menu name"
startup menu function - Fotoxx will start with this menu active.
The -nosync option is intended for special cases where Fotoxx is used in read-only mode. This can make Fotoxx start faster if the image library is huge, the computer is slow, or there are many modified (and not synchronized) image files. Do not use this option when Fotoxx is used to edit images.

Status Bar Information

Example:  CPU 123%  1234x987x8  0.45MB  56%  edits: 3   menu locked   area active   dialog open
   CPU 123%
current Fotoxx process CPU loading for all threads
   1234x987x8 
image width x height x depth (bits per color)
   0.45MB image file size (updated when a modified image is saved)
   56% zoom status, image % size
   edits: 3
3 edits have been made and can be reversed with the [undo] button
   menu locked  
an edit function is active; other edit functions are blocked
   file sync busy
synchronize files operation is running; image edit functions are blocked
   area active  
a select area is present and enabled - edits are confined within the area
   dialog open
a dialog for user input is open and waiting

Ubuntu Unity Launcher
The following launcher will have a right-click dropdown menu with three different startup options: blank window, last image viewed, and a gallery of up to 100 recent images that can be selected. Save the following text as a file named fotoxx.desktop, make it executable, and drag the file to the Unity left side launcher list.
[Desktop Entry]
Name=fotoxx
GenericName=Photo Editor
Comment=Edit photos and manage collections
Categories=Photography;
Type=Application
Terminal=false
MimeType=image/bmp;image/gif;image/tiff;image/jpeg;image/png;
Exec=/usr/bin/fotoxx
Icon=/usr/share/fotoxx/icons/fotoxx.png
X-Ayatana-Desktop-Shortcuts=blank window;last image;recent images

[blank window Shortcut Group]
Name=blank window
Exec=fotoxx -blank
TargetEnvironment=Unity

[last image Shortcut Group]
Name=last image
Exec=fotoxx -prev
TargetEnvironment=Unity

[recent images Shortcut Group]
Name=recent images
Exec=fotoxx -recent
TargetEnvironment=Unity


File Types Supported
Fotoxx uses libraries to support reading and writing of image files: the GDK pixbuf library, libpng and libtiff. The file types that can be read and written include JPEG, PNG, TIFF, BMP, and ICO. Three RGB colors with 8 bits per color are supported for all types, and PNG and TIFF also support 16 bits per color. Fewer than 8 bits per color and grayscale images are partly supported, and are converted to RGB internally (gray uses the same values for all 3 colors). Fotoxx converts camera RAW files to TIFF RGB with 16 bits per color, using the program dcraw.

Color Depth
8-bit color (256 brightness levels), as supported by JPEG files, is the norm for image files and is usually adequate. The effective brightness range for photo paper is less than 8 bits. One brightness step (averaging 1/256 or 0.4% of the entire range) is very hard to see. 16-bit color can be useful if a narrow brightness range within an image has been greatly expanded (via various retouch functions). This expansion can lead to visible "banding" or "posterization". If the image was converted from RAW to 16-bit tiff before editing, this problem can be reduced, even if the image is converted back to 8 bits for final storage. See the web page deep color for a more complete explanation.

Alignment Algorithm (HDR, HDF, Stack, Panorama)
Relatively few high-contrast or "edge" pixels are selected to control alignment in HDR, HDF, Stack and Panorama. The actual pixels used are shown in red during the alignment process, which is also entertaining. Each image in succession is systematically warped various small amounts and the fit with the previous or adjoining image is tested. This is done because two photos made with slightly different horizons or rotations will not fit perfectly with simple translation and rotation. Also the cylindrical image projection used for panoramas is only an approximation of what the camera lens actually does.

Tone Mapping Algorithm
The method used by Fotoxx is home-made, but inspired by Fattal and other gradient-based methods. It is not as effective as Fattal in some cases, but close. On the other hand, Fotoxx is both fast and simple.

Alpha Channels
Images having alpha channels (transparency information) can be edited, but the alpha channel is lost when the edited image file is saved.

Image Deterioration From Repeated Editing
If you save an edited image file and then use this file later to perform additional edits, pixel resolution may be lost. It is better if you do all edits when the image files are first processed, to minimize image deterioration (or go back to the originals if you still have them). The following edit functions reduce resolution about 1/2 pixel, and this error can accumulate if multiple functions are applied in series: rotate (other than 90/180 degrees), HDR, HDF, stack, panorama, unbend, keystone, warp. Resize to a smaller size will of course reduce resolution, but using the fraction 1/2, 1/3, or 1/4 gives the best results.

Image Deterioration From Repeated Saving of JPEG files
Reading a compressed JPEG image and saving it again can lead to loss of detail and increased JPEG artifacts. The effect seems to be negligible if the JPEG-quality is set to a high value. I read and saved a JPEG image 30 times using a quality of 90 (the Fotoxx default). A rapid A:B comparison with the original image showed no visually detectable loss of quality. The TIFF and PNG formats are lossless and therefore have no deterioration. They are only disk space hogs.

EXIF Errors
Cameras (esp. older ones) do not always produce structurally correct EXIF data, and the program exiftool (used by Fotoxx to manipulate EXIF data) may produce error messages. I have been able to fix these cases by saving the image file on top of itself, which will replace the EXIF data with whatever exiftool was able to read correctly. If desired tags get lost, you can restore them manually.

Newline characters in User Comments or Captions
When editing User Comments or Captions, if you need to align text in columns, you can use the [enter] key to force new lines. These are converted into the string "\n" before being stored in image EXIF/IPTC data, since newline characters are not allowed (exiftool converts them into periods). If the text is viewed or edited again, the "\n" strings are converted back to new lines, so that the original text alignments are restored. This is not standard, so don't expect the text to remain aligned if viewed in Photoshop, etc. If this is a requirement, then do not use the enter key to make new lines when entering long text - just let the text overflow to the next line by itself.

Standard Trash Directory
If the Fotoxx [trash] menu and toolbar button cannot put trashed image files into the standard wastebasket (where they are also recoverable using the GUI wastebasket browser), you may be able to fix this yourself. If your image files are not on the /home disk, there may be no wastebasket directory by default. You can add one yourself following this example: if the disk containing image files is mounted at /images and your UID is 1000, there should be a directory named /images/.Trash-1000, owned by UID 1000, with full permissions for UID 1000. The standard trash function will put trashed files there. Add this directory manually if it is not present. This may fix the problem.

Installed Files
The following files are installed with Fotoxx (distro package or "make install" from source package). /usr is the normal location for installed packages, but this could also be /home/<user>/ or /opt.
  /usr/bin/fotoxx
the executable program file
  /usr/share/fotoxx/data
user guides and other help files in multiple languages
  /usr/share/fotoxx/locales translation.po files in multiple languages
  /usr/share/fotoxx/icons icons used in menus and toolbars
  /usr/share/doc/fotoxx
change log, man page, README and other doc files in multiple languages

Local Files
The following files reside in /home/<user>/.fotoxx/. The search_index file duplicates data contained in the EXIF and IPTC metadata within the image files. It is there because it can be read 1000 times faster than reading the image files.
   /write_text/
image text overlays saved from Transform > Write Text
   /collections/
image collections from Tools > Manage Collections
   /favorites
saved data for user-configuration of favorites menu
   /locales
saved translation (.po) files, possibly user-modified
   /saved_areas/
"cutout" files saved from the Select > Save dialog
   /saved_curves
curve data saved from Retouch curve edit dialogs
   /geotags
downloaded geotag locations and world map image file
   /search_index4
text files containing searchable data for all image files
   fotoxx.log
Fotoxx outputs that may be relevant for diagnosing problems
   parameters
setup parameters that are saved across Fotoxx sessions
   KB-shortcuts
user-defined or modified keyboard shortcuts
   printfile.tif
the last file printed with Fotoxx
   recent_files
a list of the last 100 files opened by Fotoxx, saved when Fotoxx exits
   search_results
a list of the last image files found with Metadata > Search Images
   tags_defined
a list of all categories and tags currently used in all images
   top_directory
one or more top image directories used by fotoxx
   zdialog_inputs
saved dialog data for dialogs that recall prior inputs
   zdialog_positions
saved dialog window positions (relative to main window)

Preview Mode
Some edit functions use a reduced image size for a faster interactive response time. This reduced size is shown on the status bar as "preview". When [done] is pressed, the full-size image is then processed. This is why [done] sometimes takes noticeable time. A monitor-size image (2 megapixels) is 5 times faster to process than a 10 megapixel image. This method is used whenever the preview edits can be applied to the full-size image without visible impact (Rotate, Unbend, Warp and all brightness, contrast and color related functions). It cannot be used for things like sharpen and tone mapping because the results for a small image cannot be converted for a larger image. Thus Tone Mapping is not as responsive as Gamma Curve, for example.

File Size in Status Bar
The file size shown on the status bar while an image is being edited is the original (unedited) file size. The file size for an edited image is not known until the image is compressed and saved on disk. In memory the size is length x width x 3 colors x 4 bytes. A 10 megapixel image uses 120 megabytes in memory and typically < 2 megabytes on disk (if JPEG). When the edited image is saved, the correct file size is updated on the status bar.

Metadata used by Fotoxx
The following metadata items (stored inside the image files) are used by Fotoxx. These items and any other metadata can be viewed or edited using Fotoxx or other programs such as Photoshop. Images can be searched using these items or any other metadata as selection criteria. Those marked "index" can be searched very fast, others more slowly. Items not listed here are searchable but not indexed.
 Metadata section and name
 Usage
 Index
  IPTC:Keywords
 tags entered by user
  yes
  IPTC:Rating
 "star" rating entered by user
  yes
  EXIF:DateTimeOriginal
 date/time photo was made, or entered by user
  yes
  EXIF:ImageHistory
 history of image edits (used by Fotoxx and others)
  no
  EXIF:UserComment
 comment text entered by user
  yes
  IPTC:Caption-Abstract
 caption or abstract text entered by user
  yes
  EXIF:FocalLengthIn35mmFormat
 camera focal length used for photo, in 35mm equivalent
  no
  EXIF:City, Country
 city and country from camera GPS, or entered by user
  yes
  EXIF:GPSLatitude, GPSLongitude
 earth coordinates from camera GPS, or entered by user
  yes

Dialog Window Positioning
For commonly used dialogs, Fotoxx saves the dialog window's final position (relative to the main window) and tries to restore the same position the next time the dialog is started. This works, mostly. Sometimes the window manager (Gnome, Unity ...) ignores this request and places the dialog in the middle of the main window.

Benchmarks (based on Fotoxx v.12.12)
Here are a few benchmark numbers for an image collection of 21K JPEG files totaling 18 GB. The processor used was an Intel Core i5 3.3 GHz and the disk speed was 7200 rpm (can random read 1 MB files at about 40 per second). The first benchmark is for a new install of Fotoxx. The next two represent subsequent startups with 0 and 101 new image files respectively. The Search Image benchmarks show the fast search speed when all search criteria are in the index file. The Search Metadata benchmark shows the slower search speed when non-indexed metadata is searched: the 805 files dated in 2012 were searched for specific EXIF data (camera model). The world map benchmark shows the response time to find and display images geotagged with a location clicked on the world map.
  Synchronize Files from initial status: 21K image files, no index, no thumbnails
 13.1 minutes
  Synchronize Files at startup: no new files and 21K old files
 < 1 second
  Synchronize Files at startup: 101 new files among 21K old files
 3 seconds
  Search Images by date range: find 805 from 21K with a date in 2012
 < 1 second
  Search Images by file name: find 432 from 21K with "spitzbergen" in file name
 < 1 second
  Search Images by tags: find 172 from 21K having both tags "alaska" and "scenery"
 < 1 second
  Search Metadata: find 292 of 21K with date in 2012 and "DMC-TZ3" in EXIF: model
 5 seconds
  Find files by world map location: find 404 from 21K files by clicking map location "Dallas"
 < 1 second

Source Code

The C++ source code is heavily commented in the hope that others can understand and use the code for their own projects. If you have a technical question about how something works, or a better idea to pass along, you may contact me.

Questions and Problems
If you have a question or run into a problem, you may contact me. If you send me any images that work poorly, I can use these to try to improve Fotoxx. If there is a traceback dump on the screen, or error messages in the log file /home/<user>/.fotoxx/fotoxx.log, please send these also. Please explain exactly how to produce the error, and what version of Fotoxx and what Linux flavor you are using.

Technical Reference Book
I used the book "Introduction to Image Processing and Analysis" by Russ and Russ, CRC Press. It is clear and concise. The following algorithms were adapted from this book: flatten brightness distribution, unsharp mask, noise reduction (median smoothing, top hat), simulated embossing. The affine transform method for image warping and rotation was found via Google (many sources).

Acknowledgements
The programs  libtiff, libpng, liblcms, dcraw, ufraw, exiftool  have helped Fotoxx evolve much faster than otherwise possible. Of course this also applies to GTK, GDK, the pixbuf library, the GNU tools and libraries, and the entire GNU/Linux ecosystem. Thanks to those who have donated their work for translations (see Fotoxx Help > About), and those who have donated their ideas for development and their time for testing.