Fotoxx Quick Guide v.9.4
File menu |
File Management |
Image Gallery |
Show thumbnail images - files in the current directory (more). |
Open Image File |
File open dialog - open an image file to view or edit (more). |
Open Recent File |
Choose from a list of the most recent files opened. |
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). |
Print Image File |
Select printer / paper format / orientation, and print image (more). |
Trash Image File |
Move an image file into the fotoxx trash bin (more). |
Rename Image File |
Rename image files with optional sequence numbers (more). |
Quit fotoxx |
Exit from fotoxx. |
|
|
Area menu |
Areas within images where edits are confined (more). |
Select Area -mouse |
Outline an area for subsequent editing using the mouse (more). |
Select Area -color |
Select an area by color and range (more). |
Show Area |
Show outline of current area (more). |
Hide Area |
Remove outline, for better visibility of edit results (more). |
Area Edge Calculation |
Calculate pixel edge distances for blend width calculations (more). |
Invert Area |
Replace an area with everything outside the area (more). |
Disable Area |
Disable area, leaving it available for re-edit and re-use (more). |
Delete Area |
Remove the selected area (more). |
Copy Area |
Copy a selected area and save it in memory (more). |
Paste Area |
Paste the saved area into the same or a new image (more). |
|
|
Edit menu |
These functions modify image files (more). |
Adjust White Balance |
Remove false color-cast from an image (more). |
Flatten Brightness |
Flatten the brightness distribution to enhance detail (more). |
Retouch Image |
Edit brightness, color, saturation, balance (more). |
Brightness Ramp |
Ramp brightness change across image (more). |
Tone Mapping |
Increase local contrast (more). |
Remove Red Eyes |
Click on a red-eye to remove it (more). |
Blur Image |
Blur an image (smoothen skin) (more). |
Sharpen Image |
Sharpen a blurred image (more). |
Reduce Noise |
Reduce noise (speckles) in low-light images (more). |
Trim Image |
Cut out a rectangular portion of an image (more). |
Resize Image |
Scale an image up or down (more). |
Rotate Image |
Rotate an image (level a tilted image or turn in 90° steps) (more). |
Flip Image |
Reverse an image horizontally or vertically (more). |
Unbend Image |
Fix perspective problems (more). |
Warp Area |
Distort image within an area by pulling with the mouse (more). |
Warp Image (curvey) |
Distort entire image by pulling with the mouse (more). |
Warp Image (affine) |
Distort entire image by pulling with the mouse (more). |
Color Depth |
Reduce color depth (posterize) (more). |
Simulate Drawing |
Transform a photo into a simulated pencil or chalk drawing (more). |
Simulate Embossing |
Transform a photo into a simulated metallic embossing (more). |
Simulate Tiles |
Transform a photo into tiles (make large pixels) (more). |
Simulate Painting |
Transform a photo into a simulated painting (more). |
Edit Pixels |
Edit pixels and paint lines or areas using the mouse (more). |
Make HDR Image |
HDR = high dynamic range (more). |
Make HDF Image |
HDF = high depth of field (more). |
Panorama |
Join overlapping images to make an ultra-wide image (more). |
|
|
Tools menu |
Utilities and setup functions. |
Check Monitor |
Display a color palette for tuning your monitor (more). |
Index Tags and Thumbs |
Re-index tags and thumbnails after file rearrangements (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). |
Lens Parameters |
Edit parameters for your cameras and lenses (more). |
Change Language |
Change the GUI language (more). |
Create Launcher |
Create a desktop icon / launcher for fotoxx (more). |
Convert RAW Files |
Convert one or many RAW files to tiff (more). |
Burn Images to CD/DVD |
Select images and write them on a CD or DVD (more). |
|
|
Tags menu |
Manage tags (keywords) / star ratings / dates (more) |
Edit Tags |
Add or change image date / stars rating / tags (keywords) (more). |
Search Tags |
Find images with desired tags / star ratings / dates (more). |
View EXIF Data |
View image EXIF data (date, exposure data, tags) (more). |
|
|
Help menu |
User guide, README, change log (more). |
|
|
Toolbar buttons |
|
Gallery |
Show thumbnail images - files in the current directory (more). |
Open |
File open dialog - open an image file to view or edit. |
Prev |
Go to previous image in the current directory. |
Next |
Go to the next image in the current directory. |
Save |
Save modified image to the same file (overwrite). |
Save As |
Save modified image to a new file (more). |
Undo |
Undo (reverse) the results of the previous edit function. |
Redo |
Redo the previous undo. Undo/redo depth is 50 edits. |
Zoom+ |
Magnify the image. A left mouse click also magnifies. |
Zoom- |
Reduce the image. A right mouse click also reduces. |
Trash |
Move an image file into the fotoxx trash bin (more). |
Quit |
Exit from fotoxx. |
Main Window |
|
left / right arrow keys |
previous / next image |
plus(+) / minus(-) keys |
zoom bigger / smaller |
Z key |
zoom to 100% / fit to window |
R / L keys |
rotate 90° right / left (temporary) |
G key |
open image gallery window (thumbnails) |
Delete key |
move image to fotoxx trash |
Escape key |
Exit slide show mode or show RGB 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 thumbnails |
Page Up / Down keys |
move to previous / next page of thumbnails |
up / down arrow keys |
move up / down by one row of thumbnails |
left / right arrow keys |
move to previous / next page of thumbnails |
plus(+) / minus(-) keys |
bigger / smaller thumbnail image 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 1.41x, 2 clicks for 2x, center at click position. |
right click |
Zoom-out: restore image to window size. |
drag on image |
Scroll image in opposite direction, like a normal scroll bar. |
Some additional technical
notes can be
found here.
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:
http://kornelix.squarespace.com/contact
File
Menu
Navigation
Use
the Image Gallery menu (or Press the [gallery] toolbar button) to get
an image gallery window (thumbnails) showing image files in the
current image directory. Use this window to scroll around the
directory and select files by clicking thumbnails. The buttons at the
top allow scrolling forward or back by rows or pages. Use the file
and folder buttons to navigate elsewhere if wanted. Make the window
bigger to show more thumbnails, or 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 file's
thumbnail in the upper left corner. Clicking on a thumbnail will
bring the fotoxx main window forward with the selected image.
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 file using the menus and toolbar buttons. Drag
and drop can also be used to open a file: drag the file from Nautilus
(or another browser) to the fotoxx window or to the fotoxx desktop
launcher, and fotoxx will open the file. If text is dragged from
gedit (or another editor supporting drag sourcing), fotoxx will
assume the text is a filespec and try to open it. Thus you can make a
list of filespecs within 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.
Save
Image File
Menu:
File > Save to Same File, or toolbar button [Save]: saves the
current 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]: opens a dialog 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 files are compressed to reduce space.
You can choose a JPEG quality value in the range 1-100. Lower values
give greater compression and less image quality. Values above 70 are
generally hard to distinguish from 100 (highest quality, large 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 2 bits). It is rare that the difference between 8 and >8
bits per color can be seen with the eye.
File
sizes for a 10 megapixel image are roughly as follows (depends 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 |
Print 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 and printer, you may be able to see a "print preview"
before printing, and you may be able to select the type of paper
(plain or photo) and the print quality. Some of the predefined
formats may not work for some printers. Margins seem to be a bit
random. You can compensate by changing the paper dimentions: 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.
Trash
Image File
The
location and structure of "trash" varies with the different
flavors of the Linux desktop, so fotoxx does not try to use the
un-standard trash. Fotoxx puts discarded images into a desktop folder
named "fotoxx-trash". You can delete it or move it to your
distro-specific trash folder.
Rename
Image File(s)
This
function can help automate the process of renaming a series of files
using a root name (e.g. an event or place name) and a sequence
number. It is good for renaming a series of files from a digital
camera. Open the first file in the series, input a new name, and
press the [rename] button. The next 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.
Area
Menu
It
is possible to modify part of an image while leaving the rest
unchanged. Edit functions normally apply to the entire image. If a
smaller image area has been selected, then the following edit
functions will be carried out within the selected area: all
brightness, color, and contrast functions, warp area, sharpen, blur,
reduce noise, and all art functions. The warp area function works
only within a selected area, and the warp image function works only
on the whole image. Other functions (trim, red-eye, rotate, resize,
HDR, HDF, panorama, unbend) 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 (those listed above) will
apply only to 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, or one edit function on a series of areas.You
can leave the select area function with the [OK] button and resume it
later. When the select area function is started and an area already
exists (finished or not), use the [start] button to continue editing
the current area, or the [delete] button to start over. If the
existing area is not the same type (select by mouse or color) as the
area to be edited, you will be asked to delete the old area or
terminate the new edit (i.e. both types cannot be active at the same
time).
Select
Area -mouse
Start
with the [start] button. If an area is already there, it will be
shown. You can edit this area or delete it ([delete] button) to start
a new area. The mouse is used to outline the target area. Use the
radio buttons to select either "freehand draw" or "follow
edge".
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. To draw in the opposite
direction, start a new drag from far away and draw back to meet the
previous line. If a clicked line connects to an undesired point (you
don't want to connect to the last line drawn), right click to erase
it and do a small drag to start a new sequence of lines from that
point. 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, all lines must be connected with no
gaps. Overlaps 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
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: this modifies the behavior of click and drag: high-contrast
pixels (likely edges) in the direction of mouse movement are searched
and connected. This is effective for hard edges that are straight or
gently curved. Fuzzy and ragged edges may not work well and hand
dragging will be needed if high precision is necessary. The rules for
connecting lines are the same as explaned above.
The
[suspend] button temporarily stops editing and releases the mouse to
zoom or scroll the image to a new position. The button changes to
[resume] and can then be used to resume editing. The [Hide] button
removes the area outline (for better visibility of image edits). The
button changes to [Show] and can then be used to show the
outline. The [delete] button removes the area, allowing another
area to be started. The select area dialog can be exited and
re-started later. If the [start] button is pressed, the area can be
revised.
The [finish] button completes the selected area - the
inside pixels are marked and any gaps in the outline are detected. An
attempt is made to show where the gap is: you will see a line coming
out of the area to meet the edge of an imaginary rectangle enclosing
the area. 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] may produce a different picture that may lead you to the
gap.
Select
Area -color
Start
with the [start] button. Click the left mouse button somewhere on the
image to define a target color to select. An area of the image around
the mouse position will be selected. The color range slider defines
the range of colors to select. Low values (left) define a narrow
range and high values (right) a broad range. Clicking the right mouse
button removes the last selection, and may be repeated to undo more
previous selections. Adjust the color range slider to increase or
decrease the area selected with each left click. It is important to
understand the selection algorithm: all pixels contiguous with the
mouse position and matching the color at the mouse position (within
the specified color range) are selected. The search for matching
pixels stops at pixels not within the color range or at pixels
already selected by the current or a previous selection. You can
think of non-matching pixels and already selected pixels as
"barriers" that cannot be penetrated by the search for new
pixels. The search spreads out from every matching pixel to adjacent
pixels, until a barrier is met. The mouse may also be dragged with
the left button pressed. The selection algorithm is repeated for very
pixel touched during the drag: this pixel and matching contiguous
pixels are added to the selection. You can drag along an edge with a
narrow color range to define a barrier, and then increase the range
to select a large area at once that will not cross the barrier. You
will need some practice to get a feeling for this and be able to work
efficiently. If an "island" is left out after a selection,
you can likely eliminate it by clicking on it, or dragging through
it. Zoom the image to 100% or more to better see edge details. Click
the [finish] button to mark the area as complete. The selected area
is now active and subsequent image edit functions will operate within
the area. The buttons [Show/Hide], [Suspend/Resume] and [Delete] work
as described above.
Sometimes getting the perfect color range
is impossible: either too much will be selected, or many "islands"
of excluded pixels will be created. The islands can be eliminated by
clicking and draging over them using a large color range, but if
there are hundreds of them this can get tiresome. There is another
way to get rid of them faster: If "radius" is set to 1 or
more, the selection operation works differently: All pixels within
this radius of the mouse position are selected and accumulated into
the area. This mode can be used to quickly eliminate excluded
islands: set a generous radius and drag over the bubbly area. This
method is also useful to nudge the edges of an area outward, to
enclose pixels that were not quite within range of the target color.
Dragging along such an edge with a narror range can also be
effective.
Show
Area and Hide Area
The
show function refreshes the current area outline. The hide function
suppresses the outline, which can improve the visibility of image
edits within the area.
Area
Edge Blending
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. Blend Area Edges is a menu
function within the Area menu. The resulting dialog has a slider to
set the blend width for the current or subsequent edit functions. The
leftmost position of the slider is zero blend width, which gives a
hard edge to the area edit. Moving the slider to the right increases
blend width and makes the edges of the edit more gradual and harder
to distinguish from the original image. Moving the slider for the
first time after creating a new 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.
Invert
Area
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
Area
This
function disables the current area and keeps the data so that it can
be re-activated or re-edited. This allows you to alternate edits
within a selected area and edits for the entire image.
Delete
Area
This
function permanently deletes both mouse- and color-selected
areas.
Copy
and Paste Area
Copy:
The selected area is copied and saved in memory.
Paste: The saved
area is pasted into the middle of the current image. It can be moved
around by dragging with the mouse. Use the buttons [+10%] etc. to
resize 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 is now the equivalend of an area selected by color. You
can edit within the area and use the [blend width] control in the
Select Area -color dialog.
Image
Edit Menus
General
Editing Procedure
The
image in the main window can be operated on with the edit menu
functions. You can use these functions in any order, and the changes
are accumulated for the current image and shown in the main window.
The [undo] and [redo] buttons can be used to review the before/after
results for the last 50 edits of the current image. These buttons do
not work during an image edit function, but some of these functions
have their own method to undo and redo changes during the edit. When
finished with an image, use [save] to replace the original file or
save to a new file.
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.
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.
Brightness/Color
This function
is used to change brightness, color intensity, 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 6
response curves for the 6 image attributes of brightness, color
intensity, 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 6 attributes. The
initial curves are flat at the middle value.
The buttons [+++]
etc. can be used to shift the whole curve in various ways. The curve
can also 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 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.
Changing
brightness moves all RGB values by the same factor. Changing color
intensity moves all RGB levels by the same factor within a pixel (no
color shift), and the factor is greater for darker pixels. Changing
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.
Brightness
Ramp
This
function can be used to compensate for uneven lighting such as
vignetting (darker image periphery), left/right or top/bottom
brightness differences, etc. The function dialog displays two
editable curves labelled 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 lower left corner, move the left end of
the horizontal curve and the lower end of the vertical curve in the
"+" direction.
Tone
Mapping
Tone
mapping can be used to improve the visible detail in images or image
areas that have too little contrast. It brings out more detail by
increasing the spread between darker and lighter pixels within the
same image region. 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 more evenly.
Increasing color intensity and saturation can also bring out more
detail. These methods operate globally: all pixels of a color and
brightness are processed the same. Tone mapping can process pixels
differently depending on the brightness of surrounding pixels.
Two
tone mapping methods are available. The first one is fast and
interactive, and uses a somewhat different method from what is
normally called tone mapping. When the function is started, the mean
brightness for the image (or currently selected area) is computed,
which becomes the initial basis for contrast adjustment. Pixels
darker or brighter than this value can be adjusted to be more dark or
more bright, respectively - i.e. the existing contast is amplified.
An editable curve spans the brightness range from black to white. It
is initially zero over the whole range, meaning no effect. If a
portion of the curve is raised, pixels in the affected area are
darkened if below the mean, or brightened if above. The left end of
the curve affects darker pixels, the right end brighter pixels.
Raising the middle will mostly increase the contrast for
mid-brightness areas while affecting darker and brighter areas less.
The slider below the curve can be used to move the base brightness
value, where the transition between darkening and brightening occurs.
Simply adjust the curve and slider while watching the image, until
you are satisfied. If this is being done within a selected area, hide
the area outline and use the "blend width" control to get
rid of any edge effects.
The second method is slower and
works in a more conventional manner: an "unsharp mask" with
a large radius. Here the base brightness for each pixel is computed
from pixels within its neighborhood (radius). This can do a better
job of enhancing local contrast, but there are two problems: there
may be "halos" around the edges of large uniform areas
(e.g. where sky meets tree), and the computation time is long (a
smaller image is used internally to compute the neighborhood
brightness around each pixel, which speeds up the process). If you
see halos, there are several possibilities to reduce them: (a)
increase the radius, making the halos broader and less noticeable
(but with less enhancement of local contrast), (b) reduce the amount
of contrast adjustment, (c) use Select Area to operate on different
image areas with different parameters.
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 Laplacian. Edge detection is a simple
algorithm: find adjacent pixels with the largest brightness
difference and increase the difference. This is repeated for several
cycles, with the threshold for brightness difference decreased each
cycle. Unsharp mask is a traditional method also found in Gimp and
other tools. It is fast and effective (a technical description can be
found via Google). 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 will affect only the blurry areas, whereas
unsharp mask may put "halos" around edges that are already
sharp. The Laplacian method is very similar to unsharp mask,
producing slightly better results in some cases and slightly worse in
others. The radius value limits the distance over which pixels around
an edge are changed. It should be small (1-2) 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 or Laplacian 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 (unsharp mask only)
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.
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 by color: the highest and lowest pixel values within a radius are moderated slightly.
Flatten outliers by color: pixels are compared to the mean and sigma of pixels within a radius. Those outside one sigma are moved back toward the mean by half the excess over one sigma.
Set median brightness by color: pixels are set to the median value of their neighbors within a radius.
Top hat: detect outliers by comparison with a band of pixels some distance away. The comparison distance is increased in steps from 1 pixel to the radius limit.
Trim Image
The
HDR 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, encompassing about 60% of the image.
Areas outside the rectangle will be cut off. Click or drag near any
corner of the rectangle to move that corner. When done, press the
[trim] button in the dialog box. 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.
Resize
Image
Sometimes
called "rescale", this function allows setting a new image
width and height in pixels, or as a percent of the original size. You
can input the new width and height directly. 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. After setting the new dimensions,
use the [apply] button to perform the rescale. The window may look
the same, but the image behind it is rescaled. The status bar shows
the new dimensions. The file size is not updated until the modified
image is saved.
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
varies up to 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 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. See also
"Warp Image" for another method of correcting perspective
problems.
Warp
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] 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.
Warp
Image (curvey)
This
function is useful to correct perspective problems (see also
"Unbend"). Drag the image from any edge, 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 (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.
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.
Simulate
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.
Simulate
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.
Simulate
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).
Simulate
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 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 "emboss" 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. The [suspend] button releases the mouse so you can use the
mouse to scroll or zoom the image. The button changes to [resume].
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 100
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. 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.
Make
HDR Image (high dynamic range)
HDR
combines (overlays) 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 point. Some misalignment of
the two images can be tolerated. If things move between the two shots
(people, windblown trees), fuzziness and ghosting cannot be avoided.
Two HDR functions are
available. The first works with only two images but is faster and
easier to use. Open the 1st image file with the [open] button, then
select the HDR (2 Images) menu function. A file open dialog is
started to select the 2nd image file. The two images are aligned and
combined automatically. When done, the combined image is shown, along
with a dialog for manual fine adjustment. The contribution from each
image can be adjusted independently for different brightness levels
in the combined image. The initial ramp causes the darkest areas to
be taken mostly from the brighter image, and the brightest areas
mostly from the darker image. Use the mouse to pull the curve and
change the contributions from the two input images. This will also
add an anchor point that will not move when other parts of the curve
are moved. An anchor point can also be dragged. An anchor point can
be deleted with a right-click.
The 2nd HDR function can
combine up to 10 files. Open one of the image files with the [open]
button, then select the HDR (2-10 Images) menu function. A file open
dialog is started to select up to nine more image files, which must
all have 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 within the range of the curve. A
brightness value falling within multiple curves is made from multiple
images, with the ratios being the heights of the curves. The curves
can be edited as described above. Select a curve using the radio
buttons below the curves. The anchor points of the selected curve
turn red. You can raise or lower the curve or shift it left or right
by dragging the anchor points. The corresponding image contributions
are changed accordingly, and you can see the results in
quasi-real-time in the output image. The button [flash] can be used
to briefly highlight the image areas that are influenced by the image
and curve currently selected for editing. You will likely need
practice before the concepts sink in and you become more 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. Then use the edit functions Flatten and Brightness/Color to
tune the image, or use the tone mapping functions. Select Area
(mouse) can be used to enclose any area in the image which needs more
local contrast, so you can apply different methods to different
areas.
Make
HDF Image (high depth of field)
HDF
combines (overlays) two photos of the same subject with different
focus settings, near and far. The near-focus image has close objects
sharply in focus and far objects blurred. The far-focus image has the
opposite condition. The idea is to combine the images so that both
near and far objects are sharp.
Making the two 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 far object and do the
same. The camera position should be nearly the same for both 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), which may or may not be fixable
within fotoxx.
Processing the photos: in fotoxx, open the
first image file, choose the HDF menu function, and you will be asked
to select the second image. The two images will now be aligned as
well as possible. The output image is a 50/50 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 either input image and "paint" with the
mouse on any area of the output image. This converts the 50/50 mix to
the selected input image for the area being painted. The radius of
the paintbrush can be 1-200 pixels, 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. The examples in the fotoxx
gallery took about 5-10 minutes each, but the object overlaps are
also minor.
Panorama
This
function stitches two images together to make a wide image or
panorama. The images must overlap by 10% or more, so that the program
can find where they coincide and put them together.
Open the
left image file first. Select the panorama menu function. A file open
dialog is started to select the right image file. The two images are
initially joined with a small transparent overlap. A dialog pops up
asking you to move the right image into rough alignment with the left
image. Do this with the mouse, dragging the right image leftwards
until it is within a few pixels of the best match with the left
image. Rotate the right image if needed, by dragging the right edge
up or down.
The images should be correctly curved and fit
together well. If they do not fit, you need to set the lens
parameters as described under "Lens Parameters". You can
adjust these parameters within the dialog until the images fit
reasonably well, and this may be good enough for most panorama
jobs.
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. The process needs 10
seconds to 3 minutes, depending on CPU speed and image size. A 2.4
GHz Intel Core 2 processor with 10 megapixel images needs about 30
seconds.
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 two images do not
have the same brightness and color balance. The [auto] button can be
used to perform an automatic color match, which is usually the best
starting point. This button toggles the auto color match on and off.
The other controls allow you to make additional changes to better
match the two images. Changes are made to both images, in opposite
directions. Change the values for brightness and color and press the
[apply] button to see the results. The "blend width" input
governs how the two images are blended together: 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.
Panoramas
of three or more images
After
joining the first two images, Start the panorama function again to
open and join a 3rd image. In this manner you can string together
several images. New images are always joined on the right.
Vertical
Panoramas
Rotate
the images 90° to make them match as a left-right pair. After doing
the panorama, rotate them back.
Panorama
Limitations
Panoramas
including nearby objects can be tricky: when the two photos are made,
be careful to turn the camera on a vertical axis through the lens,
with minimum lateral movement, otherwise the images may align poorly
due to movement of foreground objects against the background
(parallax). This is not an issue when the subject is 50+ meters away,
since a small lateral movement has little impact on the
image.
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 and gamma
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 (no external
light falling on the monitor screen).
Index
Tags and Thumbs
You
need to do this after first installing fotoxx, or if you move or
reorganize image files and directories. Nothing is lost when image
files are moved around, but tag searching will not work (see the tags
section below), and the image gallery (thumbnail) windows will be
slow. The index function regenerates the tags index file and the
thumbnail images that make the gallery windows fast. A dialog will
ask for the topmost directory of your image files. That directory and
any subdirectories containing images will be processed (if you have
multiple directories not in the same hierarchy, make one directory
with links to all the others). The
time required depends on computer speed and average image size. My
(fast) development computer does about 800 images / minute. Once the
images have been indexed, searching them using tags is almost
instantaneous. Starting with v.8.4, this function works incrementally
(after it has run one more time). If only a few images have been
added or moved (unknown to fotoxx), then only these images are
processed. The indexing should complete in seconds instead of
minutes. The index is built in memory and then written to disk (at
~/.fotoxx/assigned_tags). There is a limit of 100K images. If you
want to force a complete re-indexing of all files, delete this index
file first.
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 as edit functions change the image.
Clone
fotoxx
Start a
new instance of fotoxx in a new window, starting with the current
image file. This is useful to compare images or to work with more
than one image at a time.
Slide
Show
The image
window is enlarged to the whole desktop, and the menu and toolbar are
removed. A dialog pops up to ask for the time duration to show each
slide. You can also use the keyboard for navigation (more).
Use the escape key to get out of slide show mode. If a tag search is
done before a slide show, these images are shown.
Show
RGB
This
function changes the mouse mode. When a point on the image is
left-mouse clicked, the RGB values are shown in the status bar at the
bottom. 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. 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. A right-mouse click
restores the normal mouse mode (click to zoom), or the escape key can
also be used.
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
two 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 film equivalent), and lens_bow is a factor for
edge-curving 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 or tile wall with about 40% image
overlap. Within the panorama pre-align process, adjust lens_mm and
lens_bow until the overlapping bricks or tiles 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 factors may not be
optimum.
Change
Language
This
function allows you to change the GUI to one of the available
languages. If your language is not available and you know enough
English, consider making a translation, which is not difficult
(more).
Create
Launcher
This
function puts a fotoxx icon / launcher on the desktop and enters
fotoxx in the menu system in the category "Graphics". Your
system must be LSB compliant (Linux Standards Base).
Convert
RAW Files
This
function converts one or more RAW files to tiff-16 format, using the
program "ufraw". A file chooser dialog is opened. Choose
one or more RAW files (hold down the CTRL key to select multiple
files). The 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 9 files per minute using a mix
of raw file types).
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, a dialog is started and an image
gallery window (thumbnails) is displayed. The dialog shows a list of
images for burning which is initially empty. To select an image,
click its thumbnail and it will be added to the list. You can
navigate the image gallery window to other directories and choose
images randomly. Click on a file in the list to show its thumbnail in
the dialog and also set the current position for subsequent adds and
deletes. The next image added will be inserted at this position. If
the [delete] button is pressed, the current image will be deleted,
and if the [insert] button is pressed, the last deleted image 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 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 only. The
[add_all] button will add all the files in the current image gallery.
Thus you can use the Search Tags function to create an image gallery,
add them all, and than make adjustments if wanted. The [burn] button
will send the list of files to Brasero to burn a CD or DVD.
Tags
Menu
Tags
- General
Principles
Image
files can have classification tags (categories, keywords) assigned to
them. These can be used to search a large image library 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 (in the EXIF data) and are independent of its
file name or directory location. 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. 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 a
pageable 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.
Images
may have a date which is pulled from the image EXIF data, if present,
or manually set. Images may have a "star rating" for the
importance of an image. Dates and star ratings can also be used as
search criteria.
The package "exiftool" must be
installed for tag editing. This program is used by fotoxx to read and
write the EXIF data within image files.
There is a tag
database used for searching, which makes it very fast (thousands of
images per second are searched). The database is generated from the
tags data inside the image EXIF data. Thus you can rearrange your
image directories and files without losing anything - you must only
regenerate the database, which is simple and fast. See the section
Index Tags and Thumbs.
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: 30 characters per tag
o max. tags for one image file: 300 characters
o max. tags for all images: 1000 unique tags up to 20000
total characters
o max. tags in a
search: 200 characters
The practical limit for the overall number
of tags is in the range 100-200. Exceeding this range is possible but
will lead to some practical problems: The window showing available
tags will be large and tags will become hard to find (although
ordered alphabetically), and the point and click method of adding
tags will become more cumbersome. Typing the tags manually will work,
but this may lead to typos and other tag redundancies. This is a
bigger problem when tags are initially being defined for a library
with thousands of images, and less of a problem afterwards when new
images are added in small batches. Searching tags is also more
cumbersome if the window of available tags is huge. If the 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 (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 tag categories.
Edit
Tags
Open
an image file and then select the edit tags menu. Existing tags are
shown in "current tags". Available tags are shown in the
"assigned tags" window below. One of these tags can be
added by pointing and clicking with the mouse. A tag can be deleted
by pointing and clicking within the 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. New tags that have never been used before (and do not appear in
the list) can be added by typing them in and pressing [create tag].
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 or day is logically equivalent to "01" for search
purposes. 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 in the stars
field. Use numeric values, e.g. 5 for a 5-star rating. The dialog
remains open if you navigate to a new image, and the current tags are
filled-in from that image.
Search
Tags
Use
the search tags menu to find images having desired tags. Available
tags are shown and can be chosen with point and click. Use the radio
buttons to select "match all tags" or "match any tag".
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 will remain in effect for image navigation (the
buttons [prev], [next], [next page], etc.) until you use the [file]
or [folder] buttons to establish a new image gallery set, which will
be all images in the same directory as the chosen 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 mm or dd
default to 01.
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.
Directory and file names may also be
searched, with simple wildcard matching. Example: in the input field
labeled /path*/file*, enter *egypt*cairo* to select all files with
"egypt" and "cairo" in the directory or file
names. The matching rule is simple: * matches any sequence of
characters anywhere in the full /pathname/filename. Example: the
file /home/jack/aaa/bbb/xxx.jpg would match *aaa* and
*xxx* and *aaa*xxx* but would not match aaa* or *xxx or *aaa/xxx*.
You can enter multiple file search strings separated by blanks, and
files matching any of the strings will be selected. Name matching is
not sensitive to case: both *aaa* and *AAA* would match the previous
example. Note: only the files that have been indexed (menu: tools >
index tags and thumbs) are searched. This is NOT a general file
search function that covers the entire file system.
To find
all images with no tags, search with all-blank tags, stars, dates,
and file names.
View
EXIF Data
If
the package exiftool is installed, the View EXIF menu will display
EXIF data in the current image file, if available. EXIF data contains
the date and time of a photo, shutter speed, focal length, pixel
dimensions, etc. Most cameras store this data inside the image. If
the image is edited and then saved, the EXIF data is updated and
stored with the new image. NOTE THAT THE EXIFTOOL PACKAGE IS REQUIRED
IF YOU WANT TO RETAIN EXIF DATA WHEN AN IMAGE IS MODIFIED AND
SAVED.
Help
Menu
About
This
displays a short message about the fotoxx version number, license,
home page, and credits.
User
Guide
The
user guide (this document) is displayed (created using the WYSIWYG
HTML editor SeaMonkey).
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 corresponding translations
(more).
Home
Page
Shows
the fotoxx home page from the Internet. Look here for program
updates.
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:
/usr/local/share/fotoxx/locales/fr (the French translation file). A
new translation for language code xx would be saved at
/usr/local/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 (2+ GHz) with at least one gigabyte of
memory. Multiple CPU cores are utilized for compute intensive
functions (e.g. sharpen, rotate, warp). Smaller computers (notebooks,
netbooks) will work, but will be quite slow for some functions.
Screens smaller than 1200x800 will feel confining for some functions.
The typical notebook screen with poor brightness and color should not
be used for image retouching.
Other
Programs Used by Fotoxx
Fotoxx
requires the following libraries and programs to function at run
time:
libfreeimage
read and write jpeg, png, tiff, and other image file formats
xdg-utils
open text or html files with user's assigned application
exiftool
read and write EXIF data, including user-defined image
tags
ufraw
import raw image files
from a digital camera
brasero
burn a CD or DVD with
selected images
Programs
Required for 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/Cairo... development files
libfreeimage-dev Libfreeimage development files
(FreeImage.h)
Command
Line Options
fotoxx /.../imagefile.jpg # initial image
directory or file to open
fotoxx -l lc
# language code to use for GUI (de, fr ...)
fotoxx -v
# output version and build
date and exit
Status
Bar Information
navigation: 1234x987x24 0.45MB 56%
edits: 3
HDR/pano:
align: 2345 offsets: +12.3 -23.4 +0.0023 ... match:
0.91234
Interpretation:
1234x987x24
image width x height x depth (bits per pixel)
0.45MB image file size
(updated when a modified image is saved)
56%
zoom status, image % size
edits: 3 3 prior
versions are saved in the undo stack
2345
HDR or panorama alignment cycles done
(progress indicator)
+12.3 etc.
alignment offsets: x, y, theta, 4 corner warp values
0.91234 image match (creeps up
as alignment improves, reset each stage)
Alignment
Algorithm
5000
high-contrast or "edge" pixels are selected to control
alignment in HDR, HDF, and Panorama. The actual pixels used are shown
in red during the alignment process, which is also entertaining. For
Panorama and HDF, one image is systematically warped various small
amounts and the fit with the other image is tested. This is done
becuase two photos made with slightly different horizons or rotations
will not fit perfectly with simple translation and rotation.
Alpha
Channels
Images
having alpha channels (transparency information) can be processed,
but the alpha channel is lost when the processed 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 from repeated edits: rotate
(other than 90 degrees), HDR, 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: flatten, brightness/color, red eye, sharpen,
reduce noise, trim, all art functions.
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 at:
http://kornelix.squarespace.com/contact
Questions
and Problems
If
you have a question or run into a problem, contact me at:
http://kornelix.squarespace.com/contact
If
you send 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.
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, sharpen (unsharp mask, Laplacian), noise
reduction (median smoothing, top hat), simulated embossing. The
affine transform method for image distortion or rotation was found on
the internet.
Acknowledgements
I
am grateful for the programs libfreeimage,
ufraw,
exiftool,
and brasero,
which 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 Linux ecosystem. Many generous
persons have donated their time for translations and testing (see
Help / About). Many of the ideas in fotoxx have come from users.