Fotoxx User Guide  v.11.05

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.squarespace.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, you may contact me.

Some additional technical notes can be found here.


Getting Started

Installation: To install Fotoxx, try the appropriate package file 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 Graphics menu after installation (or maybe after a new login). If not, use the command "fotoxx" in a terminal window or launcher. To test Fotoxx, use the toolbar button [open] to find an image file (.JPG  .TIF  .PNG ...) and check that it is displayed OK. Use the menu Retouch > Brightness/Color and press the button [+++] a few times - the image should brighten. Use the button [cancel] to exit this function without changing the image. Press the toolbar button [gallery] to show all the image files in the same directory as an array of thumbnail images. This may be slow at first, since the thumbnails must be generated, but it will be fast the next time you visit the same directory. Click on any thumbnail to show the image full-size. If all this works OK, then Fotoxx is working normally.

initialization: Fotoxx needs to know where all your images are located (directory and file names) and their imbedded metadata (if any): tags, captions, comments, ratings, dates. Fotoxx also needs to create thumbnail images so that the gallery windows (thumbnail pages) will work fast. You should run the menu function Tools > Synchronize Files before doing any significant work. After you run this function, the gallery windows will work much faster, and the Search Images function will be able to search thousands of images per second. For more details, see  the topic Synchronize Files.

Essential Information for those who hate big user manuals:

  o  Menu functions have live help activated by keyboard F1.
  o  Mouse left click: zoom image bigger, centered at mouse position. 
  o  Mouse drag across image: scroll a zoomed image.
  o  Mouse right click: restore image to fit in window.
  o  Gallery button: thumbnail browser: view all images in current directory.
  o  Click image in thumbnail browser: show image in main window.
  o  Menu: Tools > Change Language: switch between English and your language.

When you see the word directory, substitute folder if this is your way of thinking.

Many dialogs have a my mouse checkbox. If checked, mouse clicks and drags are dialog inputs; if unchecked, these will zoom and scroll the main window. You can toggle back and forth.

Dialog buttons mostly work as follows:
Proceed - close dialog, proceed with lengthy task.
Apply - apply settings from dialog, leave dialog active.
Done - keep dialog changes and close dialog.
Cancel - discard changes and close dialog.


General Editing Procedure

The image in the main window (the current image) can be operated on with the edit functions (in the menus Retouch, Transform, Art, 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 last 99 edits of the current image. These buttons can also be used to review the before/after results of the current edit function while it is being used. When finished with an image, use [save] or [save-as] to replace the original image file or save the modified image to a new file.

Many image edit dialogs have sliders, spin buttons, or editable curves that 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 computer with 2+ GHz and 2+ processor cores.

Curve Editing:

Several 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 the prior example) and the Y-axis the output property (color saturation). The curves can be moved (pulled) with the mouse. "Up" increases the effect of the current edit function 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 by right-clicking them. 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 the curves for a series of images receiving similar treatment.

Suggested Workflow:

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" after editing the image.
Complex workflow:
Convert the camera RAW file to TIFF, which will produce an image with 16 bits/color. The high color depth reduces the risk of visible "color bands" from functions that can radically shift the brightness distribution (especially Flatten and Tone Mapping). When finished, convert the final TIFF to JPEG (quality level 70-90) to reduce the file size (from typically 50 MB to 2 MB). You will not be able to see a difference between the final TIFF and JPEG images. To preserve the possibility of re-editing the image later, keep the RAW file, which is much smaller than the TIFF file.


Selecting Images from an Image Gallery Window


This procedure is used in several functions which use or modify multiple image files (create a named collection, batch add or delete tags, batch resize images, others). It is explained once here, and this paragraph is linked from each of the functions using this procedure.

When image files are selected, a dialog box appears with an empty list for the selected image files. Behind it is a gallery window which permits the selection of multiple images. To select an image, click its thumbnail and the image file will be added to the list. You can navigate the gallery window to other directories and choose images 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. To move an image to a new position in the list: click the image file (its thumbnail will be shown), press [delete], click another image file and press [insert] - the deleted image will be inserted before the selected image. 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) only. 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.


Fotoxx Menus and Toolbar Buttons

File menu File Management
Image Gallery
Show thumbnail images - image files in the current directory (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).
Save to Same File
Save modified image to the same file (overwrite) (more).
Save to New File
Save modified image to a new file (more).
Create Blank Image
Create a new blank image file (more).
Trash Image File
Move an image file into the trash bin (more).
Rename Image File
Rename image files, optionally add sequence numbers (more).
Batch Rename Files
Rename many image files using a base name and sequence number (more).
Create Collection
Create a new image collection from existing images (more).
Open Collection
Open an image collection (more).
Delete Collection
Delete an image collection (more).
Edit Collection
Edit an image collection - add, remove, or rearrange images (more).
Print Image File Select printer / paper format / orientation and print image (more).
Quit Fotoxx
Exit from Fotoxx.

Tools menu
Utilities and setup functions.
Check Monitor
Display a color palette for tuning your monitor (more).
Monitor Gamma
Adjust monitor gamma to optimum for image editing (more).
Brightness Graph
Show brightness distribution graph of current image (more).
Clone Fotoxx
Open a new window (e.g. to compare two images) (more).
Slide Show
Show images full screen (no menu or toolbar) (more).
Show RGB
Show RGB values at position of mouse click (more).
Grid Lines
Add or remove grid lines for image alignment (unbend, rotate) (more).
Lens Parameters
Edit parameters for your cameras and lenses (more).
Change Language
Change the GUI language (more).
Add Menu and Launcher
Add a desktop menu entry and a desktop launcher (more).
Convert RAW Files
Convert one or many RAW image files to tiff (more).
Burn Images to CD/DVD
Select images and write them on a CD or DVD (more).
E-mail Images
Select images, downsize, send to your E-mail program (more).
Synchronize Files
Rebuild the image search index and refresh all thumbnails (more).

Info Menu
View and edit image data and attributes
Edit Comments
Add or change descriptive text for an image (more).
Edit Caption
Add or change an image caption (more).
Tags Overview
Explanation of tags and how they are used (more).
Edit Tags
Add or change image tags (keywords), stars rating, or date (more).
Manage Tags
Create tags and tag categories (more).
Batch Add Tags
Add many tags to many images at once (more).
Batch Delete Tag
Delete or replace one tag for many images at once (more).
Search Images
Find images with desired tags / stars / dates / comments / captions (more).
View Info (short)
View most important image data (more).
View Info (long)
View all available image data (more).
Edit Info
Add or change the data for a specific key (more).
Delete Info
Delete a specific key or all image data (more).

Select 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).
Delete
Delete 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).
Whole Image
Select the whole image as a mask for retouch edit functions (more).
Select and Edit
Mouse over an image area to apply an edit function incrementally (more).

Retouch menu
Functions that change image qualities
Adjust White Balance
Remove false color from an image (more).
Make Negative
Make a black-white or color negative, or a positive from a negative (more).
Flatten Brightness
Flatten the brightness distribution to enhance detail (more).
Brightness / Color
Edit brightness, contrast, color saturation, color balance (more).
Brightness Ramp
Horizontal / Vertical variation of brightness (more).
Expand Brightness
Clip low / high brightness levels and expand the rest (more).
Tone Mapping
Increase local contrast to to enhance details (more).
Red Eyes Remove red eyes from flash photos (more).
Blur Image
Blur an image (e.g. smoothen skin) (more).
Sharpen Image
Sharpen a blurred image (more).
Reduce Noise
Reduce noise (speckles) in low-light images (more).
Smart Erase
Remove power lines and other spoilers by substituting neighboring pixels (more).
Remove Dust
Remove dust spots on images made from scanned slides (more).

Transform menu Functions that change image size, shape, content
Trim Image Cut out a rectangular portion of an image (more).
Resize Image
Scale an image up or down (more).
Batch Resize / Export
Resize multiple images (for upload to the web, e-mail, etc.) (more).
Annotate Image
Write text annotations on an image (more).
Rotate Image
Rotate an image (level an image or turn in 90° steps) (more).
Flip Image
Mirror an image horizontally or vertically (more).
Unbend Image Fix perspective problems (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).

Art 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).
Edit Pixels
Edit pixels and paint lines or areas using the mouse (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 to make an ultra-wide image (more).
 
Plugins menu
Other image edit programs can be used as edit functions in foloxx (more).
 
Help menu User guide, README, change log  (more).
  
Toolbar buttons

Gallery
Show thumbnails of image flles in the current directory (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.
Save / Save As
Save image to the same file (overwrite) or to a new file (more).
Undo
Undo (reverse) the results of the previous edit function.
Redo
Redo the previous undo. Undo/redo depth is 99 edits.
Zoom+
Magnify the image. A left mouse click also magnifies.
Zoom-
Reduce the image to fit window. A right mouse click also reduces.
Trash Move an image file into the trash bin (more).
Quit
Exit from Fotoxx.
Help
Show online user guide (more).
 
Keyboard Shortcuts

Main Window

left / right arrow keys
previous / next image
plus(+) / minus(-)  keys
zoom bigger / smaller
Z  key
toggle: zoom to 100% / fit in window
R / L  keys
rotate 90° right / left
G  key
toggle grid lines on or off
T  key
shortcut for menu Transform > Trim
B  key
shortcut for menu Retouch > Brightness/Color
Delete key
move image to trash bin
Escape key
Exit slide show mode
Control + s
Save to original file (no questions asked)
Control + S
Save-as: dialog to choose a target file
Control + q or Q
Quit Fotoxx
Image Gallery window

Home / End keys
move to first / last page of image gallery (thumbnails)
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
plus(+) / minus(-)  keys
bigger / smaller image gallery thumbnail size
Escape key
close image gallery window
Dialogs for User Input
 
F1 function key
display user guide section for current function

Mouse Functions

left click
Zoom-in: magnify image, center at click position.
right click
Zoom-out: restore image to window size.
drag on image
Scroll a zoomed image in the opposite direction, like a scroll bar.



File Menu

Navigation


Use the Image Gallery menu or the [gallery] toolbar button to open 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 the directory and select image files by clicking thumbnails. The buttons at the top allow scrolling forward or back by rows or pages.
Use the [parent] and [open] buttons to jump to other locations. Use the [bigger] and [smaller] buttons to change the thumbnail size and the number of visible thumbnails. Pressing the [gallery] button in the Fotoxx main window will bring the gallery window forward with the current image file in the top row. Clicking on a thumbnail will bring the Fotoxx main window forward with the selected image. The windows seem to replace each-other, but one is only on top of the other, and they can be dragged apart if you want to view both.

There are three types of image gallery windows: (1) the image files in a single directory (plus subfolders at the top of the list), (2) the results of using the image search function to find images that may be in many different directories, (3) the images in a named collection. The title bar of the window will show the directory path, "Search Results", or the collection file name.


Open Image File


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. files 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 file that is not a member of this list, the gallery will be replaced with image files from the same directory as the opened file. A message informs you and gives the option to proceed or cancel.


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 same directory as the current image file, or the previous image in the last search results.


Open Recent File

The 99 previously opened image files are presented in a list, from which you can select a file to open.


Save Image File


Menu: File > Save to Same File, or toolbar button [Save]: Save the current image image file back to itself without confirmation. If the file is a JPEG file, the default quality (90) is used.

Menu: File > Save to New File, or toolbar button [Save As]:

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 three formats, JPEG, PNG, and TIFF. 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 usually larger than JPEG files of the highest quality. TIFF files are uncompressed and larger than JPEG or PNG. TIFF files may be saved with 8 or 16 bits per color. The 16-bit TIFF format only makes sense for files converted from a RAW format supporting more than 8 bits per color (camera RAW files are typically 12 bits per color with noise in the lowest 1-2 bits). It is rare that the difference between 8 and >8 bits per color can be seen with the eye. However, an image with higher bits has more latitude when the brightness is altered with an image edit program like Fotoxx. If "make new version" is checked, then the file name will have a version number appended, either .v01 if no versions exist for this file name, or the next higher version number if one or more versions exist. This makes it easy to save a modified image file without losing the original, or retain a series of changes. The current image file is set to the newly saved file if [Save As] was used and the directory was NOT changed. If the directory for the saved file was changed, the original file remains as the current image file. Use the menu File > Open Previous File to go back to the original image file if wanted. The current file and directory is always shown in the window title bar, so check this if you are in doubt.

File sizes for a 10 megapixel image are roughly as follows (depending on amount of detail):
 tiff-16
 tiff-8
 png
 jpeg-100
 jpeg-90
 jpeg-80
 jpeg-70
 58 MB
 19 MB
 14 MB
 7 MB
 2 MB
 1 MB
 0.6 MB


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.


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. It is good for renaming a series of image files from a digital camera. Open the first image file in the series, input a new name, and press the [rename to] button. The next image file is then opened. You can use the same name again by pressing the [previous] button and then add a suffix or sequence number. If you are using sequence numbers, press the [ +1 ] button after the [previous] button to get the next sequence number added to the name.



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. For example, a base name of "arctic cruise-", a starting sequence number of 100, and an increment of 1 will produce a series of file names like this:
arctic cruise-100, arctic cruise-101, arctic cruise-102, etc. (file extensions will not be changed). Use the button [select files] to open a file chooser dialog to select as many image files as you want. 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 file name and tag associations in the search index file.


Image Collections - Concepts

An image collection is an arbitrary collection of images that is manually assembled from other images in the Fotoxx database. This is one method to make groups of associated images (two other methods are tags, titles and comments, and 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. 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 use it for other purposes, e.g. view as a slide show or burn to a CD. You can add and remove images in a collection and rearrange the order of the images. An image may also be present multiple times in a collection.


Create an Image Collection

A dialog and gallery window is opened for selecting image files (link). Select any number of files. When done, a file save dialog is presented. Enter a name for the image collection. All of the selected image files are saved as a list of file names under the chosen name for the collection.
 

Open an Image Collection

A previously saved collection of images can be recalled and becomes the current image set. A file open dialog is presented. Select one of the previously saved image collections. A gallery window is opened, showing the collection of images. You can page back and forth among the images, start a slide show, select some or all for export, etc.


Delete an Image Collection

Select one of the listed image collections for deletion.


Edit an Image Collection

Select one of the listed collections to edit. A gallery window is presented containing all the images in the collection along with the dialog shown above. First, press one of the four buttons to set the operation that follows. Subsequent actions are determined by this mode. [Add]: A file selection dialog is started. Select one or more image files to add to the collection. They will be added by a subsequent Insert operation. The selected files must be in the same directory, so if you want to add files from multiple directories, one Add and Insert operation per directory will be needed. When done selecting images, close the dialog. The image files are now saved internally. Use the Insert button to add these images to the collection. [Delete]: After pressing the Delete button, click on any images to delete. They disappear immediately and there is no going back (except to add them again). [Remove]: After pressing the Remove button, click on any images to remove them from the gallery window and save them internally. Use the Insert button to add these images to the collection. [Insert]:  After using Add or Remove, there are image files saved internally. After pressing the Insert button, these saved images will be inserted in the gallery window after the next image that is clicked.
Summary
To add new images: press [Add], select files using the dialog, press [Insert], click on image to insert after.
To delete images: press [Delete], click on images to delete.
To move images: press [Remove], click on images to move, press [Insert], click on image to insert after.


Print an Image File

The print menu brings up a dialog where you can select a printer, a paper format (e.g. letter, A4), and an orientation (portrait or landscape). Use the [print] button to print the current image using the selected printer and paper format. You may also choose a format "custom" where the paper width and height can be edited to any reasonable values, in centimeters. The format is "custom N.N x N.N cm" and you must not change this - just replace N.N with your centimeter values (as in the predefined formats). Depending on your print software, you may see a "print preview" dialog before printing, and you may be able to select plain or photo paper and the print quality. Some of the predefined formats may not work for some printers. Margins also seem to be a bit random. You can compensate by changing the paper dimensions: use the custom format with increased dimensions to get reduced margins on the paper. I have only been able to test with CUPS and an HP Officejet printer. I suggest you experiment with plain paper before comitting expensive photo paper.



Tools Menu

Check Monitor


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 shaded bands disappear at scale location 2.2. The chart only works at 100% size, so do not zoom the chart.


Brightness Graph


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.



Clone Fotoxx


Start a new instance of Fotoxx in a new window, starting with the current image file. The screen will be split 50/50 between the two instances. This is useful to compare images or to work with more than one image at a time. Both instances can be used to edit images. The clone copy (left side) will initially have an unmodified version of the current image file. The original instance (right side) keeps whatever edits have been done. If the same file is edited in both instances, the result will be from whichever instance saved it last. Use [Save As] with "make new version" if you want to keep both.


Slide Show


The images in the current directory, or the images from a previous search function, are shown one by one. The image window is enlarged to the whole screen, and the menu and toolbar are removed. A dialog pops up to ask for the time duration to show each image and the transition mode when the image changes. Transition modes include arrow-keys (manual transition), instant replacement, fade-out / fade-in, and several kinetic 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. If an image search is done before a slide show, these images are shown. Before starting the slide show, you can use the function Info > Edit Comments or Edit Caption 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. The other Info 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.

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 left-clicked, the RGB values are shown in a dialog window. The values have the format xxx.ddd, where xxx is the upper 8 bits of the color value, with range 0-255, and .ddd is the lower 8 bits, with range .000 to .999. The lower 8 bits are zero unless the image has been edited or the image is a 16-bit tiff file. Only the edit functions for color and brightness affect the lower 8 bits, and this data is preserved only if the image is saved in 16-bit tiff format.



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 veritcal and horizontal lines separately. The keyboard key G can be used to toggle the grid lines on and off: the x- and y-grid checkboxes are reversed. If an image is printed with grid lines enabled, the grid lines are also printed.


Lens Parameters


This is a dialog for setting and saving the two lens parameters, lens_mm and lens_bow, which must be set for each camera/lens used for panoramas. These parameters govern how Fotoxx "bends" the panorama input images so that they can fit together accurately. Enter a name for the lens/camera and the two parameters. Up to four lens/cameras may be entered. Lens_mm is roughly the focal length of the lens (35mm equivalent), and lens_bow is a factor to compensate for edge-curving distortion (barrel and pincushion distortion). How to set these parameters is described here, but you should read the section on making panoramas first, in order to better understand the following instructions.


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. Be sure to save the results using the lens parameters menu.

Setting Lens Parameters Manually
Make a panorama image of a brick wall (or any wall with lots of detail) with about 40% image overlap. The wall should be 5+ meters away. 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-field camera lenses are not ideal lenses (pinhole equivalent). Most panoramas will still work fine even if the lens_mm setting is off by 10%.


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).


Add 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.


Convert RAW Files


This function converts one or more RAW image files to 16-bit tiff format, using the program ufraw-batch. A file chooser dialog is opened. Choose one or more RAW image files (hold down the CTRL key to select multiple files). 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 (my 2.67 GHz processor does about 18 image files per minute using a mix of raw file types). The ufraw program does use multiple cores, so the Fotoxx function does not in this case.


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.


E-mail Images

This function enables you to choose up to about 40 image files and send them to your preferred e-mail program. In the dialog,
press the [select files] button to display an image gallery window from which you can select the image files (link). After selecting the images, set the desired maximum width and height in the dialog. The [proceed] button will do the image reductions and send them to the e-mail program. The reduced images are put into a temporary directory (/tmp/<user>/fotoxx/) and do not affect the original images. This function uses xdg-email (Linux Standards Base) which must be installed and must work correctly for your Linux flavor (as of Jan. 2011 it works for Ubuntu 10.04 and fails for 10.10). The e-mail program is started with the selected image files as attachments. You must then add the subject, text and recipients, and finally send the e-mail. 


Synchronize Files


You need to do this after first installing Fotoxx, if 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 image gallery (thumbnail) windows will be slow if a large number of files were moved, and the Search Images function will not find new or moved files. The Synchronize Files function will create missing thumbnails, replace outdated ones, and refresh the search index file using current data from your image files.
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, titles, or ratings in your images (using Photoshop, Fotoxx, or other tools), these will also be searchable.

A dialog will ask for the topmost directory of your image files (e.g. /home/<user>/Pictures). That directory and any subdirectories containing images will be processed
. It does not matter if other files are mixed. There are two modes to select from: full and incremental. Full mode erases and re-creates all data and can take considerable time (my relatively fast PC does my 4500 images in 10 minutes). Incremental mode will skip over files that already have current thumbnails and search data. This is much faster if relatively few of the image files need updating (seconds instead of minutes). The disadvantage (minor) is that leftover thumbnails are not detected and deleted. After the images have been indexed, searching them is almost instantaneous.

Images created 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 files fom a camera), or if files are moved or renamed from outside Fotoxx.


 

Info Menu

Note: the program exiftool must be installed for the following 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 containing exiftool is: libimage-exiftool-perl.


Edit Comments

This is a special function for editing data for the EXIF key "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 1000 characters. Press the [Save] button to save the text in the 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 [Save] 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 user comments (see topic Search Images).


Edit Caption

This works exactly like Edit Comments, but the text is stored in the IPTC key "Caption-Abstract".


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 (thumbnails), 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 Tags

To assign tags to the current image, select the menu Info > Edit Tags. 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. 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

To create new tags, use the menu Info > Manage Tags. 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 caterory 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]. The window of defined tags is updated to reflect changes. If the Edit Tags dialog is open, its window of defined tags will also be updated. You can keep both the Edit Tags and Manage Tags dialogs open if you need to create or change tags for immediate application to images. 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).


Search Images


E
xample: select images in 2005 or later, with 4 stars or more, having tags buildings or monuments, and containing dresden in the directory or file name.

A search index file is used for searching, which makes it very fast (thousands of images per second are searched). The index is generated from the tags, comments, captions, dates and star ratings saved inside the image file itself (EXIF and IPTC metadata). Thus 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 Tools > Rebuild Search Index.

Use the Search Images function to find images having desired tags, dates, stars, comments, captions, or 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 [search] button to perform the search. Matching images are displayed in a pageable image gallery window (thumbnails). Choose images to view or edit by clicking the thumbnails. The set of matching images are used for the buttons [prev] and [next]. If an image file is selected with the File > Open function or toolbar button [Open], then the current image set (gallery window list) is replaced by the directory of the newly opened image file.

A date range may be optionally entered, to further 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 hight 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 zero, and a missing high value means unlimited.

Image directory and file names may also be searched. In the input field "file names", enter any number of names used for your image directories and file names, separated by blanks. Wildcards (
*) are implied before and after every name, and you can also put wildcards inside the names. Thus an input of [ egypt cairo ] would match all image directory/file names against *egypt* and *cairo*, and any directory/file containing either of these strings would match. If you were to enter [ egypt*cairo ] then a matching directory/file would have to contain both strings in the same order. The matching rule is simple: * matches any sequence of characters anywhere in the full /directory/file name. Name matching is not sensitive to case. If match names include blanks, use quote marks around the search string, otherwise the blank will result in two separate search strings, e.g. a search for [ NYC parade ] would be interpreted as a search for both *NYC* and *parade*, so use [ "NYC parade" ] to keep the text together.

Image comments and captions may also be searched (see Edit Comments, Edit Captions). 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. Wildcards can also be used here.

The radio buttons "all" and "any" apply to all matching options: 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.

You can use comments, captions and directory/file names as an alternative to using tags. Effective use of tags can require high organization and attention to detail, and therefore lots of time. Also revising your tag organization can be very hard if hundreds of images are affected. User comments and file names are much easier, if less exacting. Simply name your image files with the key topic or content, and add comments or captions with adequate descriptive words. You do not have to have an elaborate tag system, and revisions are easier. The tags system has the advantage that a complete list of available tags is automatically maintained and presented when you search images, and adding tags to new images is a point and click operation.

If you have added, deleted, or moved image files outside of Fotoxx, be sure to run  Tools > Rebuild Search Index  to get the search index file synchronized with the actual image files. This is quite fast if incremental mode is chosen and < 1000 images are involved.


View Info (short)
View Info (long)

The View Info 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 Info 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 the data available.

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


Edit Info

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 Info

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".




Select Menu

Overview
Edit functions normally apply to the entire image, but it
is possible to edit part of an image and leave the rest unchanged. If a smaller image area has been selected, then the Retouch and Art edit functions will work only within this area. 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.


Select Area


In the select area dialog, if an area is already there, it's outline will be shown. You can continue to edit this area or use [Delete] to delete it and start a new area. Select one of the six methods (explained below) and proceed to define the area. Uncheck "my mouse" to suspend editing and free the mouse for zooming or scrolling to another position in the window. Re-check to resume editing.
The [Hide] button removes the area outline (for better visibility of image edits and edge blending). Use the [Show] button to show the outline. The select area dialog can be exited and re-started later to modify a selected area or start a new one.

There are six methods (described below) to enclose one or more spaces that will belong to the final area. These enclosed spaces will be affected by future image edits (brightness, color, etc.). The six methods may be used in any sequence to define spaces that are joined or detached. Choose from the corresponding radio buttons: Rectangle: drag the mouse to enclose a rectangular area. Ellipse: drag the mouse to enclose an ellliptical 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. Select by mouse: select or de-select a circular area around the dragged mouse pointer. Select by color: select a small area of pixels around the mouse and aggregate adjacent areas with pixels matching in color and brightness. 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 that fits within the rectangle.

Freehand draw: Drag the mouse (left button down) to draw a freehand (curvey) 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) in order to re-draw them. 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.

Select by mouse:
Enter a value in the radius control. A corresponding circle will appear around the mouse pointer. A left mouse click or drag will select all pixels within the circle, and a right mouse click or drag will un-select all pixels within the circle (i.e. those that were previously selected). Use a large radius to rapidly enclose large spaces, and a small one to carefully follow along the edge of a subject in the image. For areas selected with one of the two "draw" methods, un-selecting with this method will not work unless the area has been finished beforehand
([finish] button) - only then does the mouse know what pixels are already selected. Simply finish that area if you want to expand or reduce it using this method.

Select by color:  The "radius" control will define a circle around the mouse pointer. Click the left mouse button somewhere on the image to define a group of pixels to match. The group is defined by "radius" and the degree of match is defined by the "match" control (100 means a perfect match is required). Adjacent areas with pixels matching any of the selected pixels will be selected and shown. A bigger radius or a lesser match value will select more pixels. If the mouse is dragged or clicked within the selected area, the selection will be expanded to match new pixels enclosed by the mouse radius. Drag the mouse over new areas you want to include, or over "islands" of non-matching pixels you want to include. Watch the selected area expand accordingly. 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 position. The radius of selection is limited to 3 times the mouse radius. This means that a small radius can be used to follow along an edge and select pixels up to the edge with good precision. Change to a larger radius to select larger areas after the fine work is complete. If the "firewall" is enabled, then already-selected pixels will act as a barrier to the propagation of newly-selected pixels. This is sometimes useful, e.g. an existing selection boundary should remain fixed and you want to extend the selection in the interior or from another boundary. Left drag acts as an un-select: selected pixels within the mouse radius are un-selected. You may need some practice to get a feeling for this and be able to work efficiently.

my mouse: if checked, the mouse belongs to the dialog and is used to select areas on the image. If not checked, the mouse can be used to zoom or scroll the image to a new position. If you are working with a large area that does not fit in the window, you can alternate between selecting the area and moving the image to a new position.

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 image. At a distance of "blend width" from any edge into 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 tightly bound to 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.

Color: Alternates the color used to show the area outline (red, green, black).

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 explicitely outlined (e.g. if you use select by mouse to select a dohnut with a hole, you can still click the hole to include it in the area, as long as it is enclosed by selected pixels.

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 must be repeated if edge blending is desired.


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.


Delete: Delete 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 Delete

Permenently delete 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: The saved area is pasted into the current 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.


Whole Image

It is sometimes effective to apply a retouching function controlled 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 > Whole Image. Choose brightness or one of the RGB colors as the controller. 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 100% of the pixel brightness. The y-axis value governs how strongly the 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 > Whole Image 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 (whole image curve, tone mapping curve) while watching the resulting image.


Select and Edit

Use this function in combination with a 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 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 Select and Edit dialog, (2) start the 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 and Tone Mapping.



Retouch Menu

Adjust 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 strarting 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. Press the [done] button when you are satisfied, or [cancel] if not.


Make Negative

Use this function to make a black and white or color negative, or convert a negative image into a positive image.
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

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 magneta, and blue becomes yellow.


Flatten Brightness


This is a fast and easy way to compensate for a common limitation in photos: there is not enough range in the brightness to show good detail in all areas. This function finds where there are too many pixels with nearly the same brightness and spreads them apart, compressing other areas to make room. 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.



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.


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.


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.


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 also brings 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.


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.


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).


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.


Reduce Noise


This function reduces the noise present in photos taken under poor lighting conditions, making uniform surfaces appear speckled. Choose one of the methods described below. Press the [reduce] button repeatedly while watching the image. If you go too far, sharpness and detail will be lost. The radius input determines the area around each pixel that is compared. A default radius is set when a method is selected, but other values may work better. For a large image, these algorithms may run a long time. To save time, select a small area and experiment with the different methods and radius settings until you make a decision, then clear the selected area and apply the chosen method to the whole image. There are four different methods, and each method applies to each RGB color independently.

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 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.


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. Uncheck "my mouse" to allow scrolling a zoomed image to a new position. 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.


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 theshhold 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.



Transform Menu


Trim Image
(aka crop)

The HDR, HDF and panorama functions will leave some black margins around the edges where the images did not overlap. Use the trim function to remove these areas, or any other unwanted margins. An initial selection rectangle is drawn (using previous trim dimensions if they fit within the current image size). 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. If "my mouse" is unchecked, the mouse is free to zoom and scroll the image. When checked again, the selection rectangle may be redrawn to fit within the newly visible part of the image. You can use the width and height spin buttons to input desired pixel dimensions directly, 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 second dialog shown above. Enter desired button names in the first row of six text entry areas, and enter the 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 default [gold] button uses the golden ratio, about 1.618:1. You do not have to keep it.


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.


Batch Resize

This function is used to resize 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).
You can select the option: "replace originals" or "export to location". For the latter, input a directory where the resized image files will be written, or use the [browse] button to locate the directory. Finally, use the [proceed] button to start the resize process. A popup window shows the progress. If the replace option is chosen, EXIF data (including tags) will be preserved. If the export option is chosen, use the checkbox to determine if the EXIF data is exported or omitted. Restriction: resized image files are JPEG regardless of the file type of the input files.


Annotate Image

With this function you can edit descriptive text and write 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 green text on a blue 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 how wide the outline is. The [Open] and [Save] buttons start a file chooser dialog with which you can load or save all annotation 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 annotations.

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).


Rotate Image


The rotate menu function starts a dialog to rotate the image clockwise (+) or counterclockwise (-) in steps of 0.1, 1, 10, or 90 degrees.
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. 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 100 x 100 image rotated 45 degrees will be inside a new image box of 141 x 141 pixels, and the unused areas will be black. Use the [trim] button to remove these expanded margins.


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.


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.


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. The [undo last] button will remove the most recent stretch (up to the last 100). 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.


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.



Art 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 space between tiles (caulk, grout). 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.


Edit Pixels


This function changes individual pixels. There are three modes of operation: pick, paint, and erase. Pick mode: click anywhere on the image to set the current color. Paint mode: click or drag anywhere on the image to paint with the current color. Erase mode: click or drag anywhere on the image to restore modified pixels to their original color. The button [color] allows you to pick a color using a color wheel, and it always shows the current color. The "brush radius" control sets how large an area of pixels will be changed with each mouse click or drag. The "transparency" controls determine how intensely the color is applied at the center and edges of the brush. Zero transparency applies the full color immediately whereas a high transparency (90-99) applies a little color and allows you to gradually change the color using many clicks or 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. Uncheck "my mouse" to use the mouse to scroll or zoom the image, then re-check to resume painting. The [undo-last] button removes the last edit (modifications from the last click or drag operation), and this can be repeated to remove many recent edits. The memory for undo operations is limited to 200 megabytes, 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. If a selected area is enabled, the painting is confined within the area. You can select an area by color and then change the color without taking care about the edges.
NOTE: zoom the image to 100% or more when using this function. 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.



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. Uncheck "my mouse" to zoom or scroll the image, and re-check to resume painting.

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. Uncheck "my mouse" to zoom or scroll the image, and re-check to resume painting.


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, if needed. 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. 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 fit, you need to set the lens parameters as described Tools > Lens Parameters (link). You can adjust these parameters within the pre-align dialog until the images fit reasonably well, and this may be good enough. The lens mm parameter (focal length, 35mm equivalent) is obtained from the EXIF data if available. The lens bow parameter (barrel distortion) must be adjusted manually, but this is often insignificant and can be left at zero.

Press [proceed] when rough 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 because 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 usually the best starting point. The other controls allow you to make additional changes to better match the images. 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, image warp, rotate, trim, and other functions for final adjustments.

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.

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.




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 control the results, perform additional edits with Fotoxx, or use [Save] or [Save As] 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 (use "save" instead of "save as") and exit the program. Fotoxx will then pick up the revised file and use it as though the edit had been done in Fotoxx.

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


About

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

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

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.

Translate
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 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.



Technical Notes


Translations

See the menu  Help > Translations  or the text file 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/de/fotoxx.po (the German translation). A new translation for language code xx would be saved at /usr/share/fotoxx/locales/xx. After making such a file, you can test it by starting Fotoxx on the command line: $ fotoxx -l xx.

Hardware and Software Requirements
Fotoxx works best on a fast computer with at least a gigabyte of memory. Multiple CPU cores are utilized for compute intensive functions (e.g. sharpen, blur, rotate, warp, tone mapping, HDR, panorama). Slower computers (notebooks) will work, but will be quite slow for some functions. Monitors smaller than 1200x800 will feel confining for some functions. The typical notebook screen with limited brightness and color should NOT be used for image retouching.

Programs Required by Fotoxx
Fotoxx requires the following libraries and programs to function at run time:
  libtiff4 read and write tiff files, 8 and 16 bits per color
  xdg-utils open text or html files with user's preferred application
  exiftool
read and write image metadata (tags, comments, etc.)
  ufraw-batch 
import raw image files from a digital camera
  brasero burn a CD or DVD with selected images

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
  libgtk2.0-dev 
Gnome GTK/GDK/Pixbuf/etc. development files
  libtiff4-dev tiff library development files
Note: package names and exactly which files are included in each package are decisions made by each Linux distro. 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
 fotoxx /.../imagefile.jpg
initial image directory or image file to open
 fotoxx -l lclanguage code to use for GUI (de, fr, es, ...)
 fotoxx -voutput version and build date and exit
 fotoxx -slideshow /.../image1.jpg  -music /.../playlist.pls

Status Bar Information

Example:  CPU 123%  1234x987x24  0.45MB  56%   edits: 3   menu locked   area active
  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 prior versions are now saved in the undo stack
  menu locked  
an edit function is active; other edit functions are blocked
  area active  
a select area is present and enabled - edits are confined to area

File Types Supported
Fotoxx uses two libraries to support reading and writing of image files: the GDK pixbuf library and libtiff. Pixbuf supports JPEG, PNG, ICO and BMP files, all with 3 RGB colors and 8 bits per color. Libtiff supports TIFF files with 1-bit depth (black/white), 8-bit and 16-bit grayscale, and 3 RGB colors with 8 or 16 bits per color. Other TIFF formats are not supported by Fotoxx, although they could be added if there is a need. Black/white and grayscale images are treated as RGB inside Fotoxx, with all RGB colors having the same value (shades of gray).
Fotoxx converts camera RAW files to TIFF RGB with 16 bits per color, using the program ufraw-batch.

Missing Toolbar Button Text
This is a Gnome configuration issue. The default varies with the phase of the moon. Open a terminal window and give the command "gconf-editor". In the dialog, select desktop > gnome > interface. Set the toolbar style to "both", meaning icons and text.

Color Depth
8-bit color (256 brightness levels), as supported by JPEG files, is the norm for image files and is usually adequate. LCD monitors are limited to 8-bits, and the effective brightness range for photo paper is less than 8 bits. One brightness step (averaging 1/256 or 0.4% over the gamma 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 retouching functions). This expansion can lead to visible "banding" or "picket fence distribution". If the image was converted from RAW to 16-bit tiff before editing, this problem can be reduced, even when the image is converted back to 8 bits for storage (JPEG) or display on a monitor.

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 processed, but the alpha channel is lost when the processed 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 you save and open the image file between edits: rotate (other than 90 degrees), HDR, HDF, stack, panorama, unbend, 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. The following functions do not reduce resolution: white balance, flatten, brightness/color, brightness ramp, expand, tone mapping, red eye, sharpen, reduce noise, trim, flip, and all art functions.

Image Deterioration From Repeated Saving
Reading a compressed JPEG image and saving it again does lead to some deterioration, but the effect is negligible - at least with the JPEG algorithm used by Fotoxx (GTK Pixbuf library) and with JPEG-quality set to a high value. I read and saved a JPEG image 20 times using a quality of 90. A rapid A:B comparison with the original image showed a slight reduction in the brightness of the brightest colors, and no detectable loss of resolution. The TIFF and PNG formats are lossless and therefore have no deterioration. They are only 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 tags get lost, you must 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 does not 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 wastbasket 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 there. This may fix the problem.

Special Fotoxx 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.

   /annotations/
annotations saved from Transform > Annotate Image
   /collections/
image collections from File > Save Image Collection
   /saved_areas/
"cutout" files saved from the Select > Save dialog
   /saved_curves
curve data saved from Retouch curve edit dialogs
   fotoxx.log
Fotoxx outputs that may be relevant for diagnosing problems
   parameters
setup parameters that are saved across Fotoxx sessions
   printfile.jpg
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 Info > Search Images
   tags_defined
a list of all categories and tags currently used in all images
   search_index
a large text file containing searchable data for all image files

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 can  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.

How to get a traceback with source code line numbers
If you have a "crash" problem, it is much easier for me to debug and fix if I can get a traceback with source code line numbers. Here is a method to produce this traceback: In a terminal, run the command: gdb fotoxx. Fotoxx will start under control of the Gnu debugger program: gdb. In Fotoxx, do whatever makes it crash. The gdb program will say it crashed. In gdb, enter the command "backtrace". After this, enter "q" (quit) and "y" (yes, really quit). Copy all the gdb output from the terminal window, paste into an e-mail message and send it to me (e-mail), along with a description of what you did leading to the crash.

Technical Reference Book
I recommend 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.

Acknowledgements
The programs  libtiff, ufraw, exiftool and brasero  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 time for translations and testing (see Help > About), and those who have donated their ideas for development.