FOTOXX USER GUIDE  v.20

|QUICK LINKS|
   |USER GUIDE| ← click - how to use this browser for the user guide
   |RECENT CHANGES| - recent changes to this document
   |FOTOXX OVERVIEW| - description, prerequisites, license, downloads
   |FOTOXX CAPABILITIES| - summary of Fotoxx functions and tools

|FOTOXX USAGE|
   |INSTALLATION| - Fotoxx software installation, dependencies
   |FIRST STARTUP| - information for when Fotoxx is started for the first time
   |INDEX FUNCTION| - locating and indexing image files for fast searching
   |USER GUIDE| - comprehensive Fotoxx usage guide (this document)
   |WINDOW VIEWS AND MENUS| - top-level windows and associated menus
   |FILE VIEW| - File View window (view single image file)
   |GALLERY VIEW| - Gallery View window (view thumbnails)
   |MAP VIEW| - map view window (view map with location markers)
   |MENU SUMMARY| - outline of menu groups and contents
   |DRAG AND DROP| - file drag and drop methods
   |EDIT PROCEDURES| - how to edit image files
   |EDIT WORKFLOW| - alternative edit methods - simple and complex
   |MOUSE OWNERSHIP| - dialog-mouse control and interaction
   |DIALOG BUTTONS| - dialog completion options
   |KEYBOARD ENTER KEY| - functions of Enter key
   |KEYBOARD ESCAPE KEY| - functions of the Escape key
   |CUSTOM DIALOG WIDGETS| - how to use custom dialog widgets
   |CURVE EDITING| - how to manipulate curves used in edit functions
   |BATCH PROCESSING| - overview of batch processing functions
   |SELECT IMAGE FILES| - image file selection procedure used for many functions
   |POPUP REPORTS| - keyboard navigation for text-based popup reports
   |MENU SHORTCUTS| - popup menus, keyboard shortcuts, favorites menu
   |COLLECTION MANAGEMENT| - collection management and image searching
   |RIGHT-CLICK MENUS| - popup menu functions for File View and Gallery View
   |KEYBOARD SHORTCUTS| - keyboard shortcuts for file/gallery/map views
   |MOUSE FUNCTIONS| - mouse functions for file/gallery/map views
   |COMMAND PARAMETERS| - Fotoxx startup options using command line parameters
   |TOP PANEL DATA| - details of information in the File View top panel

|FILE MENU|
   |NEW SESSION| - start new Fotoxx session in a separate window
   |SOURCE FOLDER| - open corresponding Gallery View from current File View image
   |CYCLE 2| - cycle through the two most recently seen image files
   |CYCLE 3| - cycle through the three most recently seen image files
   |VIEW 360° PANO| - view a 360° panorama with a rotating viewpoint and wrap-around
   |RENAME| - rename an image file
   |PERMISSIONS| - view and set permissions for an image file
   |BLANK IMAGE| - create a new blank image file with specified size and color
   |BLANK WINDOW| - blank or restore (toggle) the current image window
   |COPY/MOVE| - copy or move an image file to another folder
   |COPY TO DESKTOP| - copy an image file to the desktop
   |COPY TO CLIPBOARD| - copy an image file to the clipboard
   |SET WALLPAPER| - set the desktop wallpaper from the current image file (Gnome)
   |SHOW ON MAP| - show an image file position in Net Map View
   |DELETE/TRASH| - delete or trash an image files
   |PRINT| - print an image file
   |PRINT CALIBRATED| - print an image file using printer color calibration data

|GALLERY MENU|
   |THUMB VIEW| - Gallery View with large thumbnails and file names only
   |META VIEW| - Gallery View with small thumbnails and basic metadata used by Fotoxx
   |LIST VIEW| - compact Gallery View with tiny thumbnails and file names only
   |RECENT| - open Gallery View of most recently seen images
   |NEWEST| - open Gallery View of newest images in the collection
   |SOURCE FOLDER (2)| - open corresponding Gallery View from current File View image
   |GOTO FIRST| - jump to gallery start
   |GOTO LAST| - jump to gallery end
   |SORT GALLERY| - change the sort order of a gallery
   |ALL FOLDERS| - show all image file folders in a tree structure
   |SELECT FILES| - select files for an album, or input to batch or script function
   |BOOKMARKS| - add bookmarks, view list of bookmarks, go to bookmark
   |MANAGE ALBUMS| - create and arrange user-defined image collections
   |UPDATE ALBUMS| - update album files for updated image files (new versions)
   |ALBUM MASS UPDATE| utilities for mass update of multiple album files
   |GALLERY TO ALBUM| - save the current gallery as an album with assigned name
   |SLIDE SHOW| - create a slide show with animated transitions and zooms

|MAP MENU|
   |NET MAP| - use internet map source
   |NET SOURCE| - set internet source for map
   |NET LOCS| - define or go to named map location (position and scale)
   |FILE MAP| - use local map files
   |CHOOSE MAP| - choose from available maps (USA, France, NYC, etc.)
   |MARKERS| - show map markers for all images or only current gallery

|FAVORITES| - custom menu for favorite or frequently used functions
|PREV/NEXT| - show the previous or next image file in the current gallery
|[+-]| - increase/decrease image/thumbnail size, |FILE VIEW|, |GALLERY VIEW|
|FILE SAVE| - save an image file (replace, new version, new file name)

|METADATA MENU|
   |VIEW META| - list main image metadata
   |VIEW ALL META| - list all image metadata
   |TAGS OVERVIEW| - image tags (keywords) used for image searching
   |EDIT META| - edit commonly used metadata
   |MANAGE TAGS| - manage user-defined tags
   |EDIT ANY META| - edit any metadata (add, change)
   |DELETE META| - delete specified metadata or all metadata
   |CAPTIONS| - show file name, captions, comments in image corner
   |PLACES/DATES| - list image locations and date groups, click for gallery
   |TIMELINE| - table of image counts by year and month, click for gallery
   |AUTOSEARCH| - script files can use the Search function to screen files
   |SEARCH IMAGES| - search images using any metadata or file name data

|AREA MENU|
   |AREA OVERIVEW| - select area - concepts and usage
   |SELECT AREA| - selecting an image feature or area for separate editing
   |SELECT HAIRY| - select a complex area, such as hair or foliage
   |FIND AREA GAP| - find gap in hand-drawn area outline
   |SHOW/HIDE AREA| - show or hide area outlines
   |ENABLE/DISABLE AREA| - enable or disable an area for editing
   |INVERT AREA| - invert an area (exchange outside/inside areas)
   |CLEAR AREA| - remove an area
   |COPY/PASTE AREA| - copy an area and insert somewhere else later
   |LOAD/SAVE AREA| - load an area from a file or save an area to a file

|UNDO/REDO BUTTON| - sequential undo or redo edits to current image

EDIT OVERVIEW

|EDIT MENU|
   |TRIM/ROTATE| - trim margins, rotate or level an image
   |UPRIGHT| - upright a rotated image (automatic or ±90 degrees)
   |RETOUCH| - edit brightness, contrast, color, saturation
   |RESIZE| - change the image pixel dimensions
   |ADJUST RGB| - adjust image colors using RGB or CMY colors
   |ADJUST HSL| - select and change colors using HSL colors 
   |MARKUP| - draw on image: text, line/arrow, box, oval
   |DRAW TEXT| - draw text on image with arty attributes
   |DRAW LINE| - draw line or arrow on image
   |DRAW BOX| - draw box on image (enclose emphasized area)
   |DRAW OVAL| - draw oval on image (enclose emphasized area)
   |PAINT IMAGE| - mouse-paint with a color, brush size, and opacity
   |COPY PIXELS 1| - mouse-paint area with pixels copied from the same image
   |COPY PIXELS 2| - mouse-paint area with pixels copied from another image
   |PAINT EDITS| - mouse-paint an edit function locally and gradually
   |UNDO EDITS| - mouse-paint to undo previous edits locally and gradually
   |PLUGINS| - use another image edit application as a Fotoxx edit function
   |RAW THERAPEE| - (RAW files only) start special RAW edit program

|ENHANCE MENU|
   |VOODOO 1| - automatic 1-click enhancement that may work
   |VOODOO 2| - automatic 1-click enhancement that may work
   |BRITE DIST| - edit brightness distribution, rebalance dark and bright areas
   |GRADIENTS| - increase local contrast to enhance details
   |FLATTEN| - flatten brightness within local zones to enhance details
   |GLOBAL RETX| - rescale RGB brightness values to remove color cast and fog/haze
   |ZONAL RETX| - rescale RGB brightness values to remove color cast and fog/haze
   |SHARPEN| - sharpen a blurred image, multiple methods
   |BLUR| - blur an image or image area, multiple methods
   |DENOISE| - reduce image noise (small random specks, esp. in dark areas)
   |RED EYES| - remove red eyes from flash photos
   |MATCH COLORS| - match the colors in one image to those in another image
   |SMART ERASE| - remove power lines, trash, signs, other small image spoilers
   |CHROMATIC 1| - fix chromatic aberration (color fringes, mainly image periphery)
   |CHROMATIC 2| - fix chromatic aberration (color bands along bright/dark edges)
   |VIGNETTE| - change brightness or color radially around a chosen center
   |REMOVE DUST| - remove dust spots on images scanned from old photos

|EFFECTS MENU|
   |SKETCH| - convert an image into a simulated sketch
   |CARTOON| - convert an image to a cartoon-like drawing
   |LINE DRAWING| - convert an image to a simulated line drawing
   |EMBOSS| - convert an image to a simulated embossing (3D effect)
   |TILES| - convert an image into simulated square tiles
   |DITHER| - different ways to pixelize or posterize an image
   |PAINTING| - convert an image into a simulated painting
   |TEXTURE| - add texture to an image or selected area
   |PATTERN| - add a background pattern to an image
   |MOSAIC| - convert an image into a mosaic using tiles made from all images
   |COLOR MODE| - convert to black & white, color, negative, positive, sepia
   |COLOR DEPTH| - reduce the number of colors (posterize)
   |SHIFT COLORS| - gradually shift RGB colors to GBR or BRG
   |ALIEN COLORS| - add random strange colors to an image
   |BRITE RAMP| - add a brightness/color ramp across an image
   |PAINT TRANSP| - paint increasing transparency using the mouse
   |MIRROR| - mirror (or flip) an image horizontally or vertically
   |CUSTOM KERNEL| - edit and apply a custom convolution kernel to an image

|WARP MENU|
   |UNBEND| - straighten images having curved lines, esp. panoramas 
   |PERSPECTIVE| - straighten an object photographed from an obtuse angle
   |WARP AREA| - warp a selected image area by pulling with the mouse
   |WARP CURVED| - warp entire image or area using the mouse - curvy warp
   |WARP LINEAR| - warp image by pulling with the mouse - straight lines preserved
   |WARP AFFINE| - warp image by pulling with the mouse - parallel lines preserved
   |UNWARP CLOSEUP| - remove distortions of a close-up face photo (e.g. big nose)
   |FLATTEN BOOK| - flatten and straighten a photographed book page
   |AREA RESCALE| - rescale an image down, leaving selected area at full scale
   |MAKE WAVES| - warp an image with a wave pattern
   |TWIST| - twist an image around a chosen center point
   |SPHERE| - curve an image into a spheroid shape
   |STRETCH| - increase the image scale from the middle outwards
   |INSIDE-OUT| - invert the center-edge distance of each pixel
   |TINY PLANET| - wrap a panorama image around a circle
   |ESCHER SPIRAL| - transform an image into an endless inward spiral

|COMBINE MENU|
   |HDR| - combine images with varying ISO for an extended brightness range
   |HDF| - combine images with varying focus depth for extended depth of field
   |STACK/PAINT| - combine images to remove transient cars, tourists, etc
   |STACK/NOISE| - combine images to reduce noise by averaging
   |STACK/LAYER| - combine images, select/paint which image to show in each area
   |STACK/SLIDER| - show two images overlapped with a movable boundary line
   |IMAGE DIFFS| - subtract two images (with offsets) for artistic effect
   |PANORAMA| - stitch together a series of images horizontally
   |VERT. PANORAMA| - stitch together a series of images vertically
   |PT PANORAMA| - stitch together a series of images using Panorama Tools
   |MASHUP| - arrange multiple images and formatted text in a custom layout
   |MONTAGE| - join many images into a compact tablular format

|PROCESS MENU|
   |BATCH CONVERT| - copy, move, resize, rename, convert, add text ...
   |BATCH UPRIGHT| - scan for rotated images and upright them
   |BATCH DELETE/TRASH| - delete or trash selected images
   |BATCH RAW| - convert RAW files to JPEG/PNG/TIFF, 8 or 16 bit color
   |BURN DVD/BRD| - create a DVD or BlueRay disc with selected image files
   |EXPORT FILE LIST| - create a list of selected files (e.g. for use in a shell script)
   |EXPORT FILES| - export selected files to a folder (e.g. for web upload)
   |BATCH TAGS| - add or remove tags for selected images
   |BATCH RENAME TAGS| - rename tags for selected or all images
   |BATCH PHOTO DATE| - change photo dates or times, or shift time zone
   |BATCH CHANGE META| - add or revise metadata for selected or all images
   |BATCH REPORT META| - report metadata for selected or all images
   |BATCH GEOTAGS| - add or revise geotags for selected or all images
   |SCRIPT FILES| - script files (macros) overview
   |EDIT SCRIPT| - record a series of edits in a script file, execute on many files
   |RUN SCRIPT| - execute script on current image file (a custom edit function) 
   |BATCH SCRIPT| - execute script on all selected image files

|TOOLS MENU|
   |INDEX FILES| - 1-time job to find and index all image files
   |QUICK INDEX| - quick incremental index with no user interaction
   |MOVE FOTOXX HOME| - move fotoxx home folder to a new location
   |PREFERENCES| - user preferences and settings
   |KB SHORTCUTS| - show and revise keyboard shortcuts for menu functions
   |RGB DISTRIBUTION| - show a brightness distribution graph for the current image file
   |MAGNIFY IMAGE| - turn mouse into a magnifying glass over image
   |FIND DUPLICATES| - find duplicate images in a gallery or the entire image collection
   |SHOW RGB| - show RGB values at mouse position or for selected points
   |COLOR PROFILE| - convert color profile (e.g. sRGB <--> Adobe RGB)
   |CALIBRATE PRINTER| - calibrate printer color - compensate for color shifts
   |GRID LINES| - show or remove grid lines, set line count or spacing
   |LINE COLOR| - set color for select area outlines
   |DARK/BRIGHT PIXELS| - tool to highlight clipping
   |MAP DEAD PIXELS| - map dead pixels from camera sensor defects or dust specks
   |MAP PIXEL BIAS| - map pixel RGB level variances from camera sensor variances
   |MONITOR COLOR| - tool to adjust monitor brightness and contrast
   |MONITOR GAMMA| - tool to adjust monitor gamma
   |CHANGE LANGUAGE| - change the language of the menus and dialogs
   |MISSING TRANSLATIONS| - list missing translations for the current language
   |SHOW RESOURCES| - show CPU time and current memory usage
   |APPIMAGE FILES| - list the files included in the Appimage container
   |ZAPPCRASH TEST| - test crash report with source code line numbers

|HELP MENU| - show user guide, recent changes, log file, web site

|OTHER TOPICS| - 
   |VIDEO FILES| - show and play video clips included in image collection
   |WEB UPLOAD| - how to select and upload a batch of images to Flickr, etc.
   |ORGANIZING IMAGES| - options for image organization and efficient searching
   |TRANSLATIONS| - adding or updating a translation
   |RECENT CHANGES| - list of recent user guide changes
   |TECHNICAL NOTES| - some technical information about Fotoxx

|ALL TOPICS INDEX| alphabetical index of all topics in this document


FOTOXX OVERVIEW

   \_Description
   Fotoxx is a free open source Linux application for editing photos and managing a large 
   image collection. The goal of Fotoxx is to meet the needs of serious photographers 
   while remaining fast and easy to use. Fotoxx has a rich set of editing, enhancement, 
   repair, and special effects functions. Image modifications are displayed instantly in 
   a full-size image, allowing quick interactive optimization. Finding desired images can 
   be made fast and easy, even for a collection over 100K images. Albums can be created 
   and images arranged with drag and drop. Images can be viewed by clicking markers on an 
   interactive world map, scalable from street to continent. A detailed list of Fotoxx 
   capabilities is available below.
 
   \_Hardware Requirements
   Fotoxx works best on a strong computer, e.g. a 2+ GHz multi-core CPU with 8+ GB RAM. 
   A weaker computer will generally work, but may be slow for some functions and unable to 
   edit large images. A monitor smaller than HD (1920x1080) will feel too small for some 
   functions using multiple windows. The monitor should have accurate color (most do not).
 
   \_Software Requirements
   Most recent Linux distributions can be used to host Fotoxx (64-bit architecture only).
 
   \_License and Warranty
   Fotoxx is licensed under the GNU General Public License v3. Fotoxx source code is free 
   to use, modify, and share with others. Fotoxx is not warranted for any purpose, but if 
   you find a bug, I will try to fix it. mkornelix@gmail.com

   \_Origin and Contact
   Fotoxx originates from the author's web site: kornelix.net.
   If you have a question, suggestion, or problem, you may contact me. mkornelix@gmail.com
 
   \_GitLab link
   GitLab is used for general information, team members, issues tracking, and a source 
   code repository where development history is kept.
 
   \_Privacy Policy
   Fotoxx does not collect any personal data. Usage statistics may be collected, but this
   data cannot be associated with a person or location. 
   Details: \_https://gitlab.com/fotoxx/fotoxx/wikis/privacy
 
   \_Downloads
   The latest source code (tarball) is available at kornelix.net. Building Fotoxx from 
   source is not difficult and instructions are provided. An Appimage package is also 
   provided. Appimage is a package format that works on most flavors of Linux.
 
   \_Packages
   Installable packages for many popular Linux distributions can be found here:
      \_https://repology.org/metapackage/fotoxx/packages
   Some of these are quite old and should be avoided.
 
   \_Updates and Bug Fixes
   Fotoxx is updated periodically with new or improved capabilities and bug fixes. Serious 
   bugs are generally corrected within a few days of being known, if possible, and the web 
   site is updated with a new release. Other web sites and Linux package repositories may 
   or may not be updated for bug fixes (usually not).
 
   \_Optional Package\_ - fotoxx-maps
   This is a set of geographic maps covering the world. They show image locations as 
   markers (red dots) that can be clicked to display a corresponding image gallery. 
   Modern cameras with GPS receivers automatically add geotags (earth coordinates and 
   location names) to photos, and these are used by Fotoxx to mark image locations on a 
   map. Geotags can also be added to images individually or with a Fotoxx batch utility. 
   You can add maps of your own at any scale, and markers for your images will be added
   automatically. A source tarball and Appimage package are available as described above. 
   If you have a good internet connection, you may not need this package, because Fotoxx 
   can also use interactive and scalable maps obtained as needed from an internet map 
   service.
 
   \_User Guide
   Fotoxx is easy to use but unconventional. To avoid getting stuck, please read the 
   introductory sections of this user guide. Help for individual functions can be 
   referenced as needed during use, by using the F1 key.
 
   \_Phone Home
   Fotoxx will occasionally send a message to its web host for usage statistics. Nothing
   is kept that could be associated with a person or location. If you still object, this 
   feature can be turned off in Tools > Preferences.
   Fotoxx privacy policy: \_https://gitlab.com/fotoxx/fotoxx/wikis/privacy

   \_Translations
   Translations of the user interface are available for French, German, Spanish, Catalan, 
   Italian, and Portuguese. If you can help with translations, review the topic 
   |TRANSLATIONS|. The user guide (this document) is only available in English.


FOTOXX CAPABILITIES 
   • Organize and manage a very large photo/image collection.
   • Thumbnail browser/navigator with adjustable thumb size and list view.
   • Click thumbnail for full-size view, image zoom in/out and pan/scroll.
   • RAW file conversion, single or batch, save with 8 or 16 bits/color.
   • Edit RAW files directly using RawTherapee or the Fotoxx edit functions.
   • Large set of functions to edit, repair, enhance, and transform images. 
   • Internal processing in 24 bits per color (float), output in 8 or 16 bits.
   • Edited files have a version number, originals are retained by default.
   • Fast edit visual feedback using the full image or selected zoom-in area.
   • Undo/Redo edits, go back and forth to compare original and edited versions.
   • Conventional edit functions include: brightness, contrast, color balance, 
     saturation, trim/crop, rotate, upright, resize, sharpen, denoise, blur, 
     paint, draw text/line/arrow/box, red eyes, smart erase (remove spoilers), 
     fix perspective, warp/unwarp, HDR, panorama, stack/edit, photo montage ...
   • Advanced edit functions to bring out details and add flair to an image:
     Edit brightness distribution, Global/zonal Retinex, Gradients ...
   • A large set of creative special effects and arty transforms is available:
     sketch, cartoon, drawing, emboss, tiles, dither, painting, mosaic, sphere, 
     tiny planet, Escher spiral, custom convolution kernels ...
   • Most edit functions can be 'painted' locally and gradually with the mouse.
   • Select image objects or areas to edit separately from the background:
     outline by hand, follow feature edges, 'flood' into matching colors ...
   • Special selection tool for complex image features (e.g. hair, foliage).
   • Copy areas within and across images by mouse painting and blending.
   • Create or maintain transparent image areas while editing. 
   • Mashup: arrange images and text in an arbitrary layout using the mouse.
   • Custom scripts: record a series of edits and use as a new edit function.
   • Custom favorites menu: select and arrange icons and text in popup window.
   • Plugins: use other edit apps (e.g. Gimp) as Fotoxx plug-in edit function.
   • Batch tools for renaming, resizing, converting, processing RAW files,
     adding/revising/reporting metadata, and executing custom edit scripts.
   • Metadata edit and report (tags, dates, captions, geotags ... any metadata).
   • Search images using any metadata and folder/file names or partial names:
     dates, tags, locations, ratings, captions, comments, exposure data ... 
   • Show a table of image locations and date groups, click for image gallery.
   • Show an image calendar, click on year or month for a gallery of images.
   • Click markers on a scalable internet map for gallery of images at location.
   • Use locally stored maps: world, continents, nations, cities, custom maps.
   • View 360 degree panorama image (Google Street View format).
   • Show video files (first frame) in thumbnails, view full size, play video.
   • Show animated GIF files (first frame) in thumbnails, play animation.
   • Bookmarks: assign names to file locations, list names, goto name (gallery).
   • Create albums linking selected images. Arrange sequence by drag and drop.
   • Slide show: show album images with animated transitions and pan/zoom.
   • Print an image at any scale. Printer color calibration tool is available.
   • Custom keyboard shortcuts can be assigned to most functions.
   • Comprehensive user guide and context help popups via F1 key.


FOTOXX USAGE

INSTALLATION
   There are three variations of Fotoxx installation:
      • Use the package from your Linux distribution (Debian, RPM, others).
        Install Fotoxx like any other package.
      • Install the Appimage package from the kornelix.net download page.
        Follow the instructions on the download page to install the package.
      • Source code package (tarball) from the kornelix.net download page.
        Follow the instructions on the download page to build Fotoxx.
   Download web page: \_https://kornelix.net/downloads/downloads.html

   \_Fotoxx outboard programs
   These are separate programs used to extend the functionality of Fotoxx. Some are 
   mandatory and some are optional. The optional ones need to be installed only if you 
   want to use the corresponding functionality. This can be decided later. If Fotoxx was
   installed using a package from your Linux distribution, some of these additional 
   programs are installed already. To install any others, use your package manager. 
   When Fotoxx is started from a terminal, all missing outboard programs are listed. 
   If any mandatory programs are missing, Fotoxx exits with a message asking you to 
   install them.
      • dcraw            mandatory   create RAW file thumbnails, open RAW files
      • exiftool         mandatory   read and write metadata in image files
      • addr2line        important   add source code line numbers to crash reports
      • heif-convert     optional    open Apple iPhone HEIF photo files (.heic) 
      • opj_decompress   optional    open jpeg2000 files image files (.jp2)
      • ffmpeg           optional    include video thumbnails in galleries, click to play
      • hugin            optional    alternative panorama image tool
      • rawtherapee      optional    edit RAW images using this tool within Fotoxx
      • rawtherapee-cli  optional    load RAW files for viewing or editing in Fotoxx
      • growisofs        optional    copy selected image files to DVD or BlueRay disc

   Note: package naming and contents vary by Linux distro (the usual chaos). The above
   names, or something similar, should be findable in your Linux flavor. Happy hunting.

   Debian (Ubuntu) packages (where different from above):
      libimage-exiftool-perl, binutils (addr2line), heif-examples, libopenjp2-tools

   Fedora packages:
     • Packages: openjpeg2-tools libheif libheif-devel (heif is non-free) 
     • Fotoxx build: https://apps.fedoraproject.org/packages/fotoxx/sources/spec/
     • How to use non-free repository: https://rpmfusion.org/Configuration/

   \_Apple iPhone HEIF files (.heic)
   Recent iPhones can produce image files with the extension .heic as an option to .jpg. 
   If the converter program heif-convert is installed, Fotoxx will recognize these files.
   When opened, a .jpg temporary file is created and viewed. If the image is modified and 
   saved, a versioned .jpg file is created, e.g. filename.heic --> filename.v01.jpg.
   
   \_JPEG-2000 files (.jp2) 
   If the converter program opj_decompress is installed, Fotoxx will recognize these files.
   When opened, a .tif temporary file is created and viewed. If the image is modified and 
   saved, a versioned .tif file is created, e.g. filename.jp2 --> filename.v01.tif. If the
   input .jp2 file has greater than 8-bit color depth, the .tif file has 16-bit color. 
 
   \_Fotoxx home
   This is where user preferences, settings and data are kept (image files remain at their
   original locations). The default is /home/<user>/.fotoxx (like most Linux apps). If you 
   have multiple Linux installs and want to share the same Fotoxx data, you can move it 
   elsewhere. This location is called "fotoxx home". See |MOVE FOTOXX HOME|.

FIRST STARTUP
   +image: first-startup.jpg
   When Fotoxx is first started, it will ask to index your image files. This makes the 
   gallery pages (thumbnails) work fast, enables fast search based on indexed metadata 
   (tags, photo date, location, comments ...), and enables clickable map markers to view 
   images by location. You can defer this step if you wish, but search, batch, and map 
   functions will be disabled and galleries will be slow. The index function will ask you 
   for one or more 'top' folders (e.g. /home/<user>/Photos). Subfolders are automatically
   included. Other non-image files can be mixed-in and will be ignored. Indexing speed 
   can range from a few hundred to a few thousand images per minute, depending on image 
   types/sizes and computer speed. Fotoxx does not modify or copy your image files - it 
   only reads them to make the file index and thumbnails. The index file is typically 2% 
   of your total image collection size.

INDEX FUNCTION
   +image: index-files1.jpg
 
   \_Top image Folders
   These are the topmost folders containing your image files, e.g. /home/<user>/Pictures. 
   Subfolders underneath your top folders are automatically included, to any depth. 
   Use the [select] button to locate and add your top image folders, one or more. Other 
   files may be mixed with your image files. It may be useful to select the subfolders 
   instead of the parent (as shown above), which will give you a simpler access to the 
   individual folders. A practical limit is about 30 Top folders. Each may have hundreds
   of subfolders. 
 
   \_Thumbnails
   This is the folder where thumbnail files will be placed. These are typically 2% as 
   large as your image files (30 KB compared to megabytes). You can use the supplied 
   default or choose another location. Indexing will run faster if this is on separate 
   physical storage from the image files, especially if rotating discs are used.
 
   \_Metadata Items
   The following metadata is included in the index by default: folder and file names, 
   photo date/time, file creation or modification date/time, caption, comments, rating 
   (1-5 stars), tags (keywords for image content), geotags (country and city/location 
   names and latitude/longitude). Searching a large image collection for one or more of 
   these items is almost instantaneous.
 
   You can choose up to 20 extra metadata items to include in the index. These will also 
   be almost instantaneous to search. You may not need this. You can skip this initially 
   and add items later if needed. For more details, see |INDEX FILES|. 
 
   \_Index Time Required
   If you have many thousands of image files, the initial index function may need 
   considerable time. The speed can range from 500 to 10K files per minute, depending 
   on processor speed, disk speed, and average image file size:
      slow case: old laptop, 5400 rpm disk, large image files
      fast case: 4 GHz desktop, 4 processor cores, SSD disk, small image files
   For an external 5400 rpm disk connected with a USB cable, I have measured 550/min. 
   for USB-2, and 1167/min. for USB-3, using large (avg. 2.3 MB) JPEG files.
 
   When you add new image files to your collection, the next Fotoxx startup will index 
   only the new files. If there are only a few new files, startup will be quite fast. 
   If there are hundreds or thousands of new files, startup will need time to index 
   them, as described above.

   \_Removable Storage
   If your top image folders include folders on a removable drive, and you run Fotoxx 
   without the drive mounted, the index data and thumbnails are still preserved, even 
   though the image files have temporarily disappeared. When the removable drive is 
   mounted again, and Fotoxx is started, the last status is restored. If any image files 
   were modified in the interim, this is detected and the index data and thumbnails are 
   updated. For more details, see |INDEX FILES|.
 
USER GUIDE
   Review the first few pages of the User Guide (Help menu) before trying to use Fotoxx. 
   The rest can be used for reference as needed. When using Fotoxx, press F1 at any time 
   to view information for the current or last used menu function. Fotoxx is easy to use 
   but unconventional. If you try to use Fotoxx while ignorant, you will become frustrated 
   and may conclude that Fotoxx is hard to use. You would be wrong. Fotoxx has deep 
   functionality. Do not expect to master Fotoxx in a few minutes.

   The [home] key jumps to the top (table of contents). The [end] key jumps to the end 
   (alphabetical index). To scroll the text, use arrow-up/down and page-up/down keys.
   The User Guide dialog has 2 buttons: [hide] and [find]. [hide] moves the dialog off 
   screen without losing its data. This makes it return instantly when F1 is pressed. 
   The [find] button opens a dialog for a text search. Enter the desired text and press 
   the [find] button in this search dialog. Press again for the next occurrence.

   Text enclosed by vertical bars is a clickable link to a topic, e.g. |INDEX FILES|. 
   Use the keyboard left/right arrow keys or the buttons [<] and [>] to go back and forth 
   between pages accessed by clicking on such links.
   
   |INDEX FILES| <-- [click this text and press [<] to see what happens]
   
   Web links (starting with 'http') can be clicked to view the page in your web browser.

WINDOW VIEWS AND MENUS
   +image: fotoxx-views.jpg

   \_Menu Buttons
   The icons in the left side panel are menus. When one is clicked, a popup menu appears. 
   These are functions for image viewing and editing, searching, reports, and utilities. 
   The top three icons/menus (File View, Gallery View, Map View) can be right clicked to 
   set the corresponding view mode. The keyboard keys F, G, M can also be used for this.
    
FILE VIEW
   File View is for viewing or editing an image. To zoom an image, left-click a position 
   on the image. The image will grow with each click and the clicked position will move 
   to center. A right-click will restore the image to fit within the window. The Z-key
   can also be used to alternate between fit-to-window and 1x (100%) image size (1 image
   pixel is 1 screen pixel). To pan or scroll a zoomed image, left-drag the mouse across 
   the image. The image can move with the mouse or in the opposite direction (like scroll 
   bars), depending on a preferences setting. The movement may be 1:1 with the mouse, or 
   may be magnified for faster movement. The mouse wheel can also be used to zoom the image 
   in or out. The middle mouse button (wheel) will make a zoomed image re-center at the 
   mouse position. Left/right click the Prev/Next menu button, or press the left/right 
   arrow key, to move to the previous or next image in the current gallery. Use the menu 
   buttons (Edit, Enhance, Warp, etc.) to modify the image. Use the File Save button to 
   save a modified file (replace the file, create a new version, or create a new file).

GALLERY VIEW
   All image files in the current folder are shown as thumbnails. This may be hundreds 
   or thousands of images. You can scroll through the thumbnails and navigate to other 
   folders. Use the vertical scroll bar (right side) to scroll up and down within the 
   gallery. The keyboard keys can also be used: the up and down arrow keys scroll rows, 
   the page up and down keys scroll pages, and the home and end keys jump to the beginning 
   (top) and end (bottom) of the gallery. You can also scroll up/down with the mouse wheel.
   Use the |[+-]| menu button or the keyboard [+] and [–] keys to change the thumbnail 
   size, or to show the gallery in |LIST VIEW| and |META VIEW| formats. Clicking on a 
   thumbnail will change to File View and display the image full size. This image is now 
   the "current image". Pressing the G key will return to Gallery View, with the current 
   image scrolled to the top row. The folder path is shown at the top of the gallery 
   window, with one button per folder level. Click one of the buttons to go to that 
   folder. Its subfolders will be shown as folder thumbnails. Click one of them to go to 
   that folder. Click the [TOP] button to choose another top image folder (if more than 
   one), the root folder ( / ) your home folder, your Desktop folder, a gallery of the 
   most recently viewed images, or a gallery of the most recent images added or modified.
    
   There are several types of galleries:
      • Folder: all the image files in a single folder
      • Search results: images found by a search function, from various folders
      • Images in an Album: an arbitrary collection from various folders
      • Recent Files: the most recently viewed or edited image files
      • Newest Files: image files most recently added or modified
      • Report: thumbnail images with associated text (metadata)
    
   The gallery window title bar will show the folder name (path), the album name, or 
   "Search Results" or "Recent Files" or "Newest Files". If the gallery corresponds to 
   a folder, buttons for navigating to parent folders are shown in the top panel. The 
   other gallery types have only the buttons for Album (select an album) and TOP 
   (go to a top image folder).
    
   A gallery thumbnail has a right-click menu with some commonly used functions. One of 
   these is Popup Image, which creates a popup window with a larger image that can be 
   rapidly zoomed to any size with the mouse wheel. Many popup windows can be open at 
   once. This is useful for comparing multiple photos or multiple edited versions.

   Popup Image Manipulation:
      • Click thumbnail with middle mouse button: popup image appears
      • Click thumbnail with shift + left mouse button: popup image appears
      • Mouse scroll wheel: zoom the popup image bigger or smaller
      • Key F11: make popup image full screen, or return to prior size
      • Left mouse button: close the popup image
      • Escape key: close the popup image

MAP VIEW
   View maps containing markers corresponding to image locations. Click on a marker for 
   a Gallery View of the corresponding images. This depends on your image files having 
   embedded geotag data (latitude, longitude). Modern cameras insert this automatically, 
   and you can also add this data yourself. Two types of maps are available. The better 
   option is Net Map, a scalable internet map that can be zoomed from street level to 
   continental level. If your internet connection is poor, you can use the File Map option.
   These are downloaded map files of countries and continents having limited zoom range. 
   These are contained in the optional package fotoxx-maps. You can also add your own maps 
   at any scale (city, park, campus, region, country ...).

   The Net Map option uses a world map from an internet map service. The functionality is 
   similar and superior to File Map, but depends on having a fast and reliable internet 
   connection. Initially a world map is displayed. Use the mouse wheel (or double-click) 
   to zoom-in to any location. Shift the map center using mouse drag. The entire world is 
   represented and can be viewed at any scale down to street-level. You can choose from 
   two net sources, one completely open and one requiring a key (free for normal usage). 
   If your internet connection is slow or unreliable, it may be best to use the File Map 
   method. This is also the only way to make a custom map.

   File maps are locally stored data files containing map images. Use the Choose Map menu 
   to select a map file. A left click on any map area will expand that area to a much 
   larger size, and a right click will return to the whole map view. The mouse wheel also 
   works. Markers are shown where there are images with geotags. The markers can be clicked 
   to show a Gallery View of the corresponding images. Initial maps are provided by the 
   optional package fotoxx-maps (about 100 MB). You can also add your own maps.

MENU SUMMARY
   +image: menu-summary.jpg
   The image above is an overview of the functions available in each menu group. 
   A left-click on a menu icon will show a popup menu with all of the functions for this 
   menu group. The top three icons also respond to a right-click by changing to the view 
   mode appropriate for the menu. Many menu functions will work independently of the 
   current view mode, or will change the view mode as needed.

DRAG AND DROP
   Fotoxx accepts drag-drop of image files to File View or Gallery View mode. In File View,
   the file is opened. In Gallery View, the result depends on the type of gallery. If the 
   gallery is a folder, the file is added to the folder and the gallery will show the new 
   file in its sorted position. If the gallery is an album, the file is added to the album 
   in the position where it is dropped. This works also if a text string that is a valid 
   file name is dropped.

EDIT PROCEDURES
   The image in File View mode (the current image) can be modified with the edit functions 
   in the menus Edit, Enhance, Warp, Effects, Combine. These functions modify the current 
   image in memory and as seen in the window. You can use these functions in any order, and 
   the edits are accumulated. When finished editing, use [Save] to save the modified image 
   back to the same file, save to a new file version (e.g. filename.v01.jpg), or input a 
   new file name and/or folder. Image edit dialogs have sliders, spin buttons, or editable 
   curves that immediately update the image. The reaction time depends on the size of the 
   image, the complexity of the function and the speed of your PC. This is typically less 
   than second for most edit functions on a strong PC.

   Left or right click the Undo/Redo button to undo or redo the currently active edit 
   function. After an image has had one or more edits applied, the undo/redo button can be 
   used to go back to prior edit steps or forward to the last edit step. The middle mouse 
   button shows a popup list of all edits done to the current image, and you can select 
   any step to go back to. The image can then be re-edited from this step.

EDIT WORKFLOW
   You can speed the editing of multiple photos/images if you understand the following:
      • Choosing a new edit function automatically completes an active edit. The new edit 
        starts with the result of the prior edit, and an undo/redo position is created.
      • Opening a new image file during an edit function will automatically cancel the 
        edit. The edit function is restarted with the new image.
      • The [Save] button can be used during an active edit to save the current image 
        status. The edit function restarts, and an undo/redo position is created.
      • Some frequently used functions have a [Prev] button to recall previous settings, 
        making it easier to process multiple photos needing similar adjustments.

   Here is an example workflow for the initial rotate and trim (crop) of a new batch of 
   photos. You can process one photo every few seconds (+ think time).
      1. Go to the folder with the new photos to process.
      2. Open the first file.
      3. Menu: Edit > Trim/Rotate.
   Repeat steps 4-7 for each image. The Trim/Rotate dialog remains open.
      4. Level the image if needed (drag the right window edge).
      5. Trim the image by dragging the trim borders to suit.
      6. Press [Save] and choose "new version".
      7. Press [Next] to edit the next file. Press [Next] again to skip over.

   \_Simple Workflow
   Most of the time you can just edit the JPEG file that comes out of the camera. Use the 
   following more complex procedure only if you see "color bands" or "posterization" after 
   editing the image, an indication that JPEG 8-bit color is limiting the image quality.
    
   \_Complex Workflow
   To edit with deep color (more than 8 bits), you can start with RAW files from your 
   camera. There are three options for processing RAW files:
      • Click the RAW file gallery thumbnail. The RAW file may now be edited like any 
        other image file. Fotoxx edit functions work with 24 bits per RGB color, so 
        whatever bit depth the RAW file has will be preserved. Save the edited file as 
        type TIFF or PNG with 8 or 16-bit color, or JPEG with 8-bit color. You cannot 
        save the edited image as a RAW file type. Opening a RAW file may need several 
        seconds, especially on a weak computer. Saving an edited image as TIFF or PNG 
        is also slower than JPEG.
      • Use the popup menu 'RAW Therapee' which is available for RAW files in File View or 
        Gallery View. This opens the specialized RAW file editor. Save the file as a 
        TIFF-16 file, which will pass back to Fotoxx for further editing if wanted.
      • Use the menu Process > Batch RAW. You can select many RAW files and convert all 
        of them to type TIFF or PNG with 8- or 16-bit color, or JPEG with 8-bit color. 
        You may then select and edit these files with Fotoxx.

   RAW files may have more color depth than 8 bits, especially if the camera is new and 
   expensive. Conversion into a PNG or TIFF file with 16-bit color will preserve the 
   additional color depth available in the RAW file. The higher color depth reduces the 
   risk of visible color bands if your edits radically shift the brightness distribution. 
   When finished editing, convert the final file to JPEG (quality level 70 or greater) 
   to reduce the final file size to 10% or less. Note that editing in deep color is far
   more important than having deep color in the final image. It is nearly impossible to 
   see any difference between a 16-bit TIFF or PNG file and a high quality JPEG made from 
   that same file. To preserve the possibility of re-editing the image later, keep the 
   RAW file, which is usually much smaller than the TIFF or PNG file.

   There are two programs available for loading RAW files for viewing and editing in 
   Fotoxx: Dcraw and RawTherapee. Dcraw is much faster, which saves time if you are 
   viewing many RAW images. RawTherapee may sometimes provide a better initial image, 
   which may not matter, since the difference is easily fixed. In User Preferences, you 
   can set which of these programs is used. Both programs are installed separately from
   Fotoxx.
    
MOUSE OWNERSHIP
   Some edit dialogs use the mouse to reference or alter the image in the main window. 
   There may be more than one such dialog active at the same time. The mouse is also 
   used to zoom and scroll the image, and you may need to do this while using a dialog. 
   Therefore it is important to understand who owns the mouse (which dialog, or main 
   window) and how to change the ownership:
      • The mouse is owned by the dialog that was last clicked or used. Mouse actions
        on the image are inputs to this dialog and DO NOT zoom or scroll the image.
      • If you hold the CTRL key down while clicking or dragging the mouse on the image, 
        the image will zoom or pan/scroll. Active dialogs are not affected.
      • The mouse wheel can always be used to zoom-in/out any part of the image.

DIALOG BUTTONS
   These mostly work as follows:
     [Reset]     undo changes, return to initial status
     [Apply]     apply settings from dialog to image, leave dialog active.
     [Done]      same as [Apply], but the dialog is closed.
     [Cancel]    discard image changes and close the dialog.
     [Proceed]   proceed with lengthy task based on dialog inputs.

KEYBOARD ENTER KEY
   (or Return key) Many applications handle this key as 'done', meaning that input is 
   complete and the function can be executed. Fotoxx does NOT follow this convention. 
   The Enter key action depends on which dialog widget or control has the input focus:
      • text entry (single line) - input is finished. 
      • text entry (multi-line) - a new text input line is started.
      • number entry - input is finished.
      • check box - toggle status between 'checked' and 'not checked'.
      • button - the button is pressed, equivalent to a mouse click.

KEYBOARD ESCAPE KEY
   This key has multiple uses. It affects only the window that has current keyboard focus. 
   This can be the main Fotoxx window or a dialog window. Before using the escape key, 
   note which window has focus and is affected.
      • main window has focus (in priority order):
         • if a long-running function is active, terminate the function 
         • if the Fotoxx window is maximized, restore former size and position
         • exit from Fotoxx
      • dialog window has focus: exit the dialog
      • others: cancel popup image, exit from 360 panorama viewer, interrupt or exit 
        Slide Show (details are explained in the respective topics)

CUSTOM DIALOG WIDGETS
   +image: custom-widgets.png
   A few non-standard smaller widgets are used to reduce the size of dialogs (and the 
   amount of image area they cover). They work almost like the standard Gnome widgets for 
   numeric data entry, text data entry, and buttons. A few standard GTK widgets have also 
   been downsized by reducing unnecessary "padding". This is controlled by the file 
   widgets.css in the [fotoxx-home] folder. You can modify this file if desired. You can 
   also delete or comment-out the contents, but do not delete the file, since it would be 
   automatically replaced.

CURVE EDITING
   +image: retouch.jpg
   Some image edit functions use editable curves. You can manipulate the curves to change 
   some property of the image depending on some other property. The example here shows a 
   brightness curve, whereby you can change brightness depending on brightness (e.g. 
   brighten dark image areas without changing bright areas). Generally, the X-axis of the 
   curve represents the input property (brightness in this example) and the Y-axis the 
   output property (also brightness). The curves can be moved (pulled) with the mouse. 
   "Up" increases the effect and "down" decreases the effect. An anchor point (black dot) 
   is added to the curve wherever it is pulled, and this point remains fixed for 
   subsequent pulls: the curve will continue to go through this point as other parts of 
   the curve are pulled. Anchor points can also be dragged. Delete an anchor point by 
   right-clicking it. 

BATCH PROCESSING
   There are several batch functions in the Process menu to speed some common tasks. 
   You can select many image files and execute the batch function for all of them. 
   Batch functions can be used for the following tasks:
      • Rename files using any mix of old name, new name, sequence number, photo date
      • Convert file types (e.g. .png to .jpeg)
      • Find and upright photos made with the camera turned 90 degrees
      • Resize files (e.g. reduce for web upload or e-mail)
      • Copy or move files to another location
      • Convert RAW files to tiff, png, or jpeg
      • Add/change/remove tags or geotags
      • Report or revise metadata items
      • Set image dates/times or shift times to change the time zone
      • Delete files or move them to Trash
      • Script Files: perform multiple edits on one image, save as a script file
        which can then be applied to any number of images in batch mode.
      • Burn selected image files to a DVD or BlueRay disc.
      • Find duplicate image files.

SELECT IMAGE FILES
   +image: gallery-select.jpg
   This procedure is used for all functions operating on multiple image files:
      • batch functions - resize, rename, add tags, convert ...
      • scripts - perform a predefined set of edits
      • albums - create and edit image collections

   The procedure is explained here, and this topic is linked from each of the functions 
   using the procedure.

   Selected files are added to a list by clicking on gallery thumbnails. The example 
   shows a gallery and a list of files selected from the gallery.
      • add new files to the list: left-click gallery thumbnails
      • add a group of files: click the first thumbnail, shift-click the last thumbnail
      • a file may be added multiple times to the list
      • you can navigate to other galleries to select more files as needed
      • files are added initially at the end of the list
      • click a list position: thumbnail is shown and a new list position is set
      • new files are added after the current (last clicked) list position
      • delete a file from the list, 2 methods:
         • right-click the file's gallery thumbnail
         • click a list position and press [delete] button
      • move one or more files to a new position:
         • click each list position and press [remove] - the files are saved internally
         • click the new position and press [insert] - the next saved file is inserted
           (repeat to insert each saved file at a new position)
      • add all images in the gallery to the list: press [add all] button
      • clear the list: press [clear] button
      • use KB up/down arrow keys to step through the list and view thumbnails
      • the KB page up/down and home/end keys also work

POPUP REPORTS
   Text reports are shown in a popup text window. Some of these have clickable report
   lines that trigger actions, e.g. a list of location names that can be clicked to show
   a gallery of images for the selected location. These reports can be navigated with the
   keyboard arrow keys, page keys, and home/end keys. 

MENU SHORTCUTS
   The Fotoxx menus are large. You may need time to get used to them and remember where 
   the functions are located. There are three shortcut methods available for frequently 
   used functions:
      • Right-click the main window or gallery window thumbnail.
        A popup menu appears with some commonly used menu functions.
      • Keyboard shortcuts - these are documented below. You can change the shortcut 
        keys and add shortcuts for functions you choose.
      • Favorites menu - a graphic popup menu with your custom contents. Add text and/or 
        icons that link to any menu functions you choose. Arrange these as you wish in a 
        layout window. You can leave this window open and access any of these functions 
        with a single mouse click. See |FAVORITES|.

COLLECTION MANAGEMENT
   You can use Fotoxx to manage a huge image collection and still be able to quickly find 
   the images you want. Some effort to organize the images is required. Search methods 
   include folder and file names (or partial names), image (photo) dates, file dates, 
   image ratings, tags (keywords: labels for persons, places, objects, events ...), 
   captions and comments, and geotags (location names and latitude/longitude). This is 
   done in a standards-compliant manner so that this data can be shared with other image
   processing applications. Options for how to organize a large image collection can be 
   found in the topic |ORGANIZING IMAGES|.

RIGHT-CLICK MENUS
   Popup menus appear when an image or gallery thumbnail is right-clicked. Most of these 
   functions are also contained in the main menus for File View and Gallery View. The 
   popup menus are shorter and faster to use for the functions they contain.
    
   \_File View popup menu
   Right click on current image in File View mode to get the following menu:
      • View Meta - Show short form metadata report
      • View All Meta - Show all available metadata
      • Edit Meta - Edit key metadata items: photo date/time, rating, tags ...
      • Edit Any Meta - Edit any metadata item
      • Rename - Change the file name
      • Permissions - Change file permissions
      • Copy/Move - Copy or move the image file to another location (folder)
      • Copy to Desktop - Copy the image file to the desktop window
      • Copy to Clipboard - Copy the image file to the clipboard
      • Upright - Auto upright a rotated image based on EXIF orientation data
      • Trim/Rotate - Trim (crop) the image, level the image or turn 90 degrees
      • Resize - Resize (rescale) the image pixel width and height
      • Voodoo 1 / Voodoo 2 - Limited automatic image enhancement methods
      • Retouch - Adjust brightness, color, contrast, saturation, white balance
      • Brite Dist - Adjust the brightness distribution (histogram shape)
      • Flatten - Enhance contrast and brighten shadows
      • Gradients - Enhance contrast and perceived brightness range
      • Select Area - Select an image object or area for separate editing
      • Show on Map - Go to Net Map view, zoom-in to image location
      • Delete/Trash - Delete the image file or move it to the wastebasket

   \_Gallery View popup menu
   Right click on thumbnail image to get the following menu:
      • Popup Image - Show image in a new window - zoomable, movable, persistent
        Zoom in/out using the mouse wheel. When zoomed small it disappears.
        Shift + left mouse click on a thumbnail: shortcut for Popup Image.
      • View Meta - Show short form metadata report
      • View All Meta - Show all available metadata
      • Edit Meta - Edit key metadata items: photo date/time, rating, tags ...
      • Edit Any Meta - Edit any metadata item
      • Rename - Change the file name
      • Permissions - Change file permissions
      • Copy/Move - Copy or move the image file to another location (folder)
      • Copy to Desktop - Copy the image file to the desktop window
      • Copy to Clipboard - Copy the image file to the clipboard
      • Upright - Auto upright a rotated image based on EXIF data
      • Show on Map - Go to Net Map view, zoom-in to image location
      • Delete/Trash - Delete the image file or move it to the wastebasket

   Album galleries have the following additions:
      • Add Selected Files Here - insert previously selected files at the 
        clicked thumbnail position
      • Add Current File Here - insert current (last viewed) file at the 
        clicked thumbnail position
      • Remove from Album - remove this image file from the album
 
KEYBOARD SHORTCUTS 
   Keyboard shortcuts are available for most functions. The notation "Ctrl+H" means press 
   and hold the Ctrl key, then press the H key. The following table shows the fixed 
   shortcuts that cannot be changed. Press the 'K' key to view all shortcuts and make 
   custom additions or revisions.
      • F/G/M keys     Change view mode: File, Gallery, Map
      • F1 key         Display user guide for current or prior function
      • F10 key        Toggle main window full-screen and back
      • F11 key        Same as F10, without menu and top panel (for image viewing)
      • Escape key     Kill running function, Exit active dialog, Exit Fotoxx
      • Arrow keys     Previous/next image, report line up/down
      • [+] [=] key    Zoom image or thumbnails larger
      • [-] key        Zoom image or thumbnails smaller
      • Z key          Toggle image between 1x (full size) and fit to window
      • Home/End       Go to gallery first/last page, report go to top/end
      • Page Up/Down   Go to gallery previous/next page, report page up/down

MOUSE FUNCTIONS
   File View
      • left click - Zoom-in: magnify image, center at click position
      • right click - If image is zoomed: restore to window size
                      If not, popup menu with common functions
      • mouse wheel - Zoom image in or out depending on wheel direction
      • left drag on image - Pan/scroll zoomed image, same direction or 
                             magnified opposite direction (like scroll bars)
      • mouse + Ctrl key - Mouse acts on main window instead of active dialog

   Gallery View
      • left click thumbnail - Change to File View, show full-size image
      • right click thumbnail - Show popup menu with common functions
      • middle click thumbnail - Pop up image in new zoomable window
      • scroll mouse wheel - Scroll the gallery page up or down

   Map View
      • left click - Zoom map larger at clicked location
      • right click - Zoom map smaller
      • left drag - Drag map, following the mouse
      • mouse wheel - Zoom map larger or smaller
      • left click on marker - Show gallery of all images at marker location

COMMAND PARAMETERS
   The following parameters can be used if Fotoxx is started with the command 'fotoxx':
   \_long\_    \_short\_  \_param\_    \_description
   -help    -h             show command line parameters (popup window) 
   -album   -a             "album name"   initial album (gallery) to open
   -ver     -v             output release version and exit
   -recent  -r             show a gallery of recently seen image files
   -new     -n             show a gallery of the newest image files
   -prev    -p             show the last file viewed in the previous session
   -blank   -b             show a blank window
   -lang    -l    xx       language code to use for GUI (es, de, fr ...)
   -index   -x    N        disable image indexing for faster startup (see below)
   -menu    -m   "menu"    Fotoxx will start with this function active
   -home         /folder   alternate Fotoxx home location (see below)
   -uninstall              uninstall appimage package
      
   \_-index N\_  parameter
   This command line parameter can be used at Fotoxx startup to partly or completely 
   disable image indexing to obtain a faster startup time. N is one of 0/1/2, as 
   explained in the topic |PREFERENCES|.

   Note: the first Fotoxx startup after a reboot may be slow if your image collection is 
   very large. Subsequent startups will be much faster since folders are now cached in 
   memory. For very fast startup, you can bypass indexing entirely with the command
   "fotoxx -x 0", or by setting the image index level to 0 in |PREFERENCES|. Search and 
   map functions will be disabled until you allow the indexing to complete normally. 
    
   \_-home\_  parameter
   The default location for 'fotoxx home' is: /home/<user>/.fotoxx. This is where user 
   preferences, settings and data are kept (tag names, bookmarks, defaults ...). Image 
   index data is also kept here. The command "fotoxx -home /.../foldername" expects 
   'fotoxx home' to be in the designated folder. This enables multiple image collections 
   to be managed separately. If Fotoxx is started for the first time with a new -home 
   parameter, the initial file indexing process will begin. You can avoid this by copying 
   the files in  /home/<user>/.fotoxx  to the new home folder before starting fotoxx with 
   the new -home parameter. See also |MOVE FOTOXX HOME|.

TOP PANEL DATA
   +image: top-panel.png
   The top panel has status information about Fotoxx and the current image file.
   The following strings can be present, in approximately the following order:
      CPU: 34%          current CPU load (max. for 4 processor cores is 400%)
      2866x1917x8       current image width x height x depth (bits per color)
      0.87MB            image file size (updated when a modified image is saved)
      41%               zoom status, image % size (window pixels / image pixels)
      edits: 2          current image edits, reversible with the [undo/redo] button
      blocked           some functions are blocked until current function is done
      area active       edits are confined within the active selected area
      dialog open       a dialog is waiting for user input
      BUSY 45%          some long-running functions show this progress indicator


FILE MENU 
   +image: menuF.png

NEW SESSION
   Start a new Fotoxx session in a new window. This is useful to compare images or to work 
   with more than one image at a time. Both windows can be used to edit images. The new 
   session will initially have an unmodified version of the current image file. If the 
   same image file is edited in both windows, neither instance will see the changes made 
   by the other, and the final result is the last file saved. 

SOURCE FOLDER
   Replace the current gallery (recent files, search results ...) with the folder of the 
   current image file shown in the File View window. The default shortcut key is [S].
 
CYCLE 2
   Open the previously opened image file. Repeating this menu will alternate between the 
   two most recently opened files. This differs from the button [Prev/Next] which goes to 
   the previous or next image file in the current gallery (folder, search results, album). 
   This function retains the current image zoom size and position, which is ideal for 
   rapidly comparing two edited versions of the same image. Zoom-in the area to compare, 
   and use this function to alternate between the two images. The keyboard shortcut 
   key [2] is assigned by default.
 
CYCLE 3
   This works the same way as Cycle 2, but alternating the last 3 opened files. 
   The default keyboard shortcut is key [3].
 
VIEW 360° PANO
   The current file is opened with a special viewer for 360° panorama files. The image
   width is assumed to be 360°. Use this function to view Google 'photosphere' images.
   Use the mouse and keyboard to control the view:
      • Mouse-drag the image - it will turn through 360° and wrap-around at the ends
      • Left and right mouse-click will zoom-in and zoom-out
      • Use the left and right arrow keys to pan quickly
      • Keys [1] and [2] select two alternative projection types (keypad does not work)
      • Use the [Q] key or Escape to exit the special viewer
   Panoramas with less than 360° can also be viewed, but the wrap-around will show a 
   false joining of the two ends.
 
RENAME
   +image: rename.jpg
   Rename the current file (File View), or the file of a clicked thumbnail (Gallery View). 
   Enter a new name and press [apply]. This function can also automate the process of 
   renaming a series of image files using a root name (e.g. an event or place name) and a 
   sequence number. Open the first image file in the series, input a new name, and press 
   the [apply] button. Use the [next] button to move to the next file if wanted. You can 
   use the same name again by pressing the [previous name] button and then add a suffix 
   or sequence number. Press the [add 1] button to increment the sequence number. File
   version numbers (.vNN) are not copied and are otherwise not affected.
 
PERMISSIONS
   +image: permissions.jpg
   The permissions of the current file (File View), or the file of a clicked thumbnail 
   (Gallery View), are shown in the dialog. Use the [Change] button to revise the
   permissions data in the dialog, and the [Apply] button to change the permissions of 
   the named file. You can use the arrow keys to navigate to new files in the same 
   neighborhood, and the data in the dialog will be updated. The three permissions shown 
   are for the owner of the file, members of the owner's group, and others. An explanation 
   of Linux permissions can be found in the man page for the "chmod" command.
 
BLANK IMAGE
   +image: blank-image.jpg
   Create a blank image with specified pixel dimensions and color. This can be used as a 
   background for cutouts taken from other images (via Select Area) and annotation text 
   (via Markup > draw text). Input a file name, choose a background color, and set the 
   desired pixel dimensions. See also the |MASHUP| function.
 
BLANK WINDOW
   Blank the File View window. If already blanked, restore the current image file. Assign
   a keyboard shortcut to have a "one button" blank and restore function (boss button).
 
COPY/MOVE
   +image: copy-move.jpg
   The current file (File View), or the file of a clicked thumbnail (Gallery View), is 
   copied to the given location. This location can be entered directly or chosen by a file 
   open dialog if the [browse] button is used. Select the copy option to copy the file and 
   leave the source file in place, creating a duplicate. Select the move option to move 
   the file from the original location to the new location. A group of files can be 
   rapidly processed by clicking each thumbnail followed by [apply].
 
COPY TO DESKTOP
   The current file (File View), or the file of a clicked thumbnail (Gallery View), is 
   copied to the desktop folder (/home/<user>/Desktop).
 
COPY TO CLIPBOARD
   The current file (File View), or the file of a clicked thumbnail (Gallery View), is 
   copied to the clipboard, from which other applications can paste. 
 
SET WALLPAPER
   The desktop wallpaper is set from the current file.
   NOTE: this is Gnome specific and likely does not work for other windowing systems.
 
SHOW ON MAP
   Change to Net Map View and show the location of the current image.
   The map may need time show up, depending on internet response time.
 
DELETE/TRASH
   +image: delete-trash.jpg
   The current file (File View), or the file of a clicked thumbnail (Gallery View), is 
   deleted or moved to trash, depending on the option selected. 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 folder named "fotoxx-trash". You can delete it or move it to 
   your Linux-specific trash. If both standard and desktop trash do not work, you must 
   trash the files outside of Fotoxx. If you have multiple files to remove, you can leave 
   the dialog open to speed the process. If another file is opened, the file name in the 
   dialog updates itself. In Gallery View, if another thumbnail is clicked, the dialog 
   updates itself.
   
PRINT
   +image: print.jpg
   The print menu brings up a standard Page Setup dialog where you can select a printer, 
   a paper size, and orientation. After using the [apply] button, another dialog starts 
   for entering paper margins and an image scale. The margins can be used to shrink the 
   image or shift it on the page. Image scale can be set in the range 5-100%, where 100% 
   means print the maximum size image that fits within the margins. Smaller values will 
   shrink the image proportionally. The actual print size (image width and height) is 
   updated in the dialog as margins and scale are changed, and this can be used to reach 
   a desired printed image size. After the margins dialog, a Print dialog starts for the 
   actual printing. This includes paper type and quality inputs, and a preview of the 
   printed layout which can be accepted or rejected.
 
PRINT CALIBRATED
   This function works like Print Image File described above, but before printing you are 
   asked to supply a calibration file name which is used to adjust image colors prior to 
   printing. The purpose is to compensate for color distortions caused by the printer. 
   See the topic |CALIBRATE PRINTER| for details on how to create a calibration file.
 

GALLERY MENU
   +image: menuG.png
   +image: gallery-view.jpg

GALLERY OVERVIEW
   +image: image-management.png
   A gallery of thumbnail images can represent a file folder, the output of an image 
   search function, one of the built-in galleries (recent files, newest files), or an 
   album (an ordered list of image files with a given name).

THUMB VIEW
   +image: gallery-view.jpg
   Image files in the current gallery are shown as an array of thumbnails. The text is
   limited to file name, date, and size. Size is in pixel width and height if the current
   thumbnail size is small, and the MB size is added if the thumbnails are larger and 
   more space is available. Use the zoom button |[+-]| to change the thumbnail size.

META VIEW
   +image: meta-view.jpg
   Image files in the current gallery are shown together with the basic metadata used 
   by Fotoxx. 

LIST VIEW
   +image: list-view.jpg
   Image files in the current gallery are shown in a compact list form that is better
   for visual searching to find a desired file or folder name.

RECENT
   The 1000 most recently seen image files (viewed or edited) are shown in a gallery, 
   from which you can select files to view or edit. To replace the recent files gallery 
   with the folder of a chosen file, use the function |SOURCE FOLDER|.
 
NEWEST
   The 1000 most recently added or modified image files are shown in a gallery, from 
   which you can select files to view or edit. You are given a choice of using the EXIF 
   photo date or the file modification date to determine the newest images. If the EXIF 
   date is chosen, image files having no EXIF date are ignored. To replace the newest 
   files gallery with the folder of a chosen file, use the function |SOURCE FOLDER|.
 
GOTO FIRST
GOTO LAST
   Jump to the first or last thumbnail in the current gallery.

SOURCE FOLDER (2)
   This is a duplicate of the |SOURCE FOLDER| function in File View.

SORT GALLERY
   +image: gallery-sort.jpg
   Choose the sort key and ascending or descending order. The Reset checkbox resets all 
   galleries to file name ascending. If an Album gallery is sorted, the output does not 
   replace the album but instead creates a new album "galleryname-sorted". This is done
   because albums have an arbitrary order controlled by the user. If sorted, there would 
   be no automatic way to put it back in the original order.

   Folder galleries retain their sort order and scroll position when viewed later 
   (i.e. when other galleries are viewed in-between).

   \_Scrolling the Gallery
   The gallery can be scrolled up and down using the keyboard up and down arrow keys or 
   the page-up and page-down keys. [home] and [end] keys may also be used. Use the 
   right-side scroll bar to move rapidly to any position. Left-click and hold on the 
   scroll bar, over or under the scroll button, and the gallery will scroll rapidly to 
   the click position. Right click and hold on the scroll bar to make the gallery 
   smooth-scroll to the click position. Continue holding the mouse button and move to 
   the side to increase the scroll speed.

ALL FOLDERS
   +image: all-folders.jpg
   All top image folders are shown initially. Click on [+] to unfold subfolders, or on 
   [-] to fold them back in. You can click on any folder to get a gallery of the images 
   in that folder. Keep the window open to navigate anywhere in your image collection. 
   This function is also available using the [TOP] button in the gallery top panel.

SELECT FILES
   +image: select-files.jpg
   Pre-select image files for use as inputs for creating albums or for batch functions or 
   script functions. These functions will use the pre-selected files by default, but they 
   also allow the selection to be modified or done over. The procedure for selecting files 
   is described in the topic |SELECT IMAGE FILES|.

BOOKMARKS
   +image: bookmarks1.jpg
   View existing bookmarks. Bookmarks are chosen file locations (folder/file names) with 
   user-assigned names. Click on a bookmark to show a gallery of thumbnails starting with 
   that location. Select [Edit Bookmarks] to add, delete, or rename a bookmark.

EDIT BOOKMARKS
   +image: bookmarks2.jpg
   After starting Edit Bookmarks, click on a gallery thumbnail to add this location to the 
   bookmark list. The assigned bookmark name will initially be the file name corresponding 
   to the thumbnail. This name appears in an edit field where you can assign another name.
   If you select an existing bookmark with a mouse click, its name is shown in the input 
   field. You can change the name or press [delete] to remove the bookmark. New bookmarks 
   are inserted after the last bookmark location selected.

MANAGE ALBUMS
   +image: manage-albums.jpg
   An album is an arbitrary sequence of images that is manually assembled from existing 
   images. An album is a list of its member image files. The image files themselves are 
   not copied or changed. A given image file can be a member of multiple albums, or may 
   be present more than once within an album. Albums can be used to group images with some 
   shared attributes, such as photos of a given person taken at different times or events, 
   a "best photos" collection, etc. You can add and remove images in an album or rearrange 
   the order of the images. Once an album is made, you can call it up by name and it shows
   as a gallery. This gallery works like any other: you can scroll through the gallery, 
   step through the images with the [Prev/Next] button, or edit the images. Keep in mind 
   that editing an image in an album will edit the underlying image file, so any other way 
   to view this image will show the same changes.

   \_Create
   Enter a name for a new album. You can make an empty album, an album with pre-selected 
   image files from |SELECT FILES|, an album with images from the current gallery, or you 
   can select the initial images for the album. The gallery could also be the result of a 
   Search operation.

   \_Rename
   Choose an existing album and enter a new name.

   \_Delete
   Choose an existing album and delete it permanently.

   \_Select
   The standard file selection dialog is opened (|SELECT IMAGE FILES|). When done, 
   right-click on an album thumbnail and select "add selected files here" to insert the 
   new files.
 
   To edit an album, right-click on an album thumbnail and select from the popup menu:
      • Add selected files here - previously selected files are added at the thumbnail 
        position. Click thumbnail left side to add before, or right side to add after.
      • Add current file here - the current file (File View) is added at this position.
      • Remove from album - the clicked image file is removed from the album.
   To add files to an empty album: 
      • Album button -> select the empty album (a blank window results).
      • Manage Albums > Select Files: select initial files for the album. When you exit 
        Select Files with the [done] button, the selected files are added to the album.
 
   \_Drag and Drop
   You can rearrange images within an album by dragging thumbnails with the mouse. Drag 
   the thumbnail until the mouse cursor changes to a small thumbnail image. Continue 
   dragging this image to the position where it should be inserted, and release the mouse 
   button. Position the mouse roughly between the thumbnails where the dragged image is 
   to be inserted. If the drag approaches the top or bottom edge of the window, the 
   gallery will scroll to bring more images into view. You can use two Fotoxx sessions
   to make the selection or movement of many images faster. Drag and drop images from any 
   source gallery on to a target album gallery. The source gallery can also be an album 
   or any other gallery.
 
   TIP: If image files are renamed or moved using Batch Convert, and if deletion of the 
   original image files was also specified, then all albums containing any of the files 
   are updated to the new file names and locations. Therefore, don't just rename folders 
   if they contain images in albums, or manually move image files among folders. Instead, 
   use Batch Convert to move the image files to the new folder, then delete the old folder 
   if empty. To delete image files, use Batch Delete/Trash. This will also purge deleted 
   files from all albums containing them. 
 
UPDATE ALBUMS
   +image: update-albums.jpg
   Replace specified album files with specified replacements, or add specified new files 
   after specified existing files. Select one or more albums to be processed. In gallery 
   view, click on two thumbnails to specify 'old file' and 'new file' in the above dialog. 
   Select the option: 'new file' replaces 'old file' wherever found, or 'new file' is 
   added to the albums after 'old file'. Press [clear] to erase the files and start over. 
   Press [proceed] to process the albums. After processing, the dialog is repeated with 
   the same albums selected and the same 'replace or add' option. You can select two more 
   files and press [proceed].

ALBUM MASS UPDATE
   +image: album-mass-update.jpg
   This is a utility for some of the mass updates that you may need after creating new 
   versions for many image files and needing to update one or more albums to the new 
   versions. This does not cover every need, which is likely impossible, but my hope is 
   that it will help reduce the need to change one file at a time.

   Select one or more albums and then select one of the processing options: 
      • Replace all with newest version only
        All albums are updated to have only the newest file versions.
      • Replace all versions with newest version
        All file versions are replaced with only the newest version. 
        The original file, if present, is NOT replaced.
      • Add newest versions to existing versions
        The newest version is added to existing versions, if not already present.
        If only the original file is present, the newest version is added.
      • Replace all with original and all versions
        All album files are replaced with the original file and all existing versions.
      • Replace all with original version and newest version
        All album files are replaced with the original file and the newest version.
      • Replace all with selected versions (*)
        All album files are replaced with the selected versions only.
        This includes the original (unversioned) file.
      • Replace all versions with selected versions (*)
        All album file versions are replaced with the selected versions only.
        The original file, if present, is NOT replaced.
      • Add selected versions to existing versions (*)
        The selected version is added to existing versions, if not already present.
        If only the original file is present, the selected version is added.
      • Replace all with original and selected versions (*)
        All album files are replaced with the original files and selected versions.

   (*) The four options using selected files: the list of selected files is from the
   function |SELECT FILES|. Album files that do not match any selected files are left 
   in the album. Only files that match a selected file are changed according to the 
   above rules. The matching is based on the file name without version or extension: 
   'filename.png' and 'filename.v01.jpg' are considered matches.

   Example: Replace all versions with selected versions: If the album has filename.jpg 
   and filename.v02.png, and the selected files list contains filename.v04.jpg, the 
   result in the updated album will be: filename.jpg and filename.v04.jpg

GALLERY TO ALBUM
   Save the current thumbnail gallery as an album.
   Select an existing album name, or input a new name, press [Done].

SLIDE SHOW
   +image: slide-show.jpg
   Use the Manage Albums function to assemble the images for a slide show as an album with 
   an assigned name. This allows you to select images from anywhere in your collection
   and order them as desired. In the slide show dialog (top left), press [Select Album] 
   and choose an album from the list provided.
    
   Change the other settings in the dialog as desired, then press the Proceed button to 
   start the slide show with the first image (or the current image, if a member of the 
   slide show album). Use the escape key to exit the slide show and return to the dialog.

   The animated transitions between images, and the display times and zoom behavior of 
   individual images, can be customized using the dialogs explained below.
    
   Main Dialog Controls
      • Caption Time 
        The default time to display the image with captions and comments, in seconds.
      • Image Time 
        The default time to show the image alone, seconds.
      • Clip Limit % 
        Images are scaled to fit the window, leaving black margins for differences in 
        aspect ratio. Images with difference < clip limit are clipped to have no margins.
      • Music File 
        The given music file or playlist that will start when the slide show is started.
      • Full Screen 
        If checked, images are shown full-screen without menu, title bar, etc.
      • Auto-replay 
        if checked, the slide show will start over after reaching the end.
    
   Keyboard keys can be used to control the slide show. Press the button [KB controls] 
   to show the current assignments or to change them (Keyboard Preferences, bottom right). 
   The following actions can be assigned:
      • Blank the current image and pause the slide show, or restore the image (toggle). 
        Default 'B'.
      • Show the next image, including the transition animation, in a paused slide show. 
        Default 'N'.
      • Pause or resume the slide show (toggle). 
        Default 'P'.
      • Magnify the image - simulated loupe (see the |MAGNIFY IMAGE| function). 
        Default 'X'.

   The following KB keys are assigned to actions that cannot be changed:
      • Escape: if a transition or zoom is in-progress, jump immediately to final status.
      • Escape: otherwise, Interrupt the slide show and return to the main dialog.
      • Left / right arrow keys: You can go back and forward at any time and the slide 
        show will continue from there.

   You can configure keys other than P/B/N/X if desired, and the space bar (blank) 
   can also be used. Do this by replacing the key name in the dialog with another key.
    
   Press [transitions] to start a dialog (Transition Preferences, bottom left) to select 
   and customize the transitions between images. These include instant replacement, 
   fade-out/fade-in, and many animated methods of image replacement (e.g. the new image 
   expands from the center to replace the old image). Select the transitions to be used 
   and whether they are used randomly or in sequence. The time parameters sets the 
   duration of the transition. Times less than 2 seconds may cause problems with slow 
   computers or large monitors. If you see fleeting gaps in the image, you likely need to 
   increase the time. The preference parameters specify a relative preference which will 
   influence how frequently the transition is used when random sequence is selected.
    
   The buttons [load] and [save] allow you to save transition settings in a file and load 
   them later. These files are independent of the slide show files. A slide show will 
   default to the transition settings last used for that slide show (album name), but you 
   can always replace these by using the [load] button to load some other settings, or 
   changing them in the dialog.
    
   Press [image files] to start a dialog for Image Preferences (top right). These are 
   optional. An image is selected for customizing by clicking its thumbnail in the 
   album/gallery display. The dialog is filled-in with default settings or the previous 
   settings for this image in this slide show. Enter revisions and press [done], or 
   click on the next image to be customized.
    
   The dialog shows the customizable image events in time order:
      • play an optional tone when the image appears
      • wait for a specified time (may be zero)
      • show the image file name (without folders) for a specified time 
        (overlaps with caption, comments)
      • show the image caption, if any, for a specified time 
        (overlaps with file name, comments)
      • show the image comments, if any, for a specified time 
        (overlaps with file name, caption)
      • wait a specified time before starting an image zoom (may be zero)
      • zoom the image from normal to magnified or from magnified to normal over the 
        specified time. If neither option is selected, there is no zoom. 
          • zoom-in: start at normal size, slowly magnify the image while moving the 
            center to a specified position
          • zoom-out: start at magnified size at the specified center, slowly shrink 
            the image back to normal size
          • [zoom center] - press this button, then click on the image thumbnail to 
            specify the zoom center for the image
      • wait for a specified time after zoom (may be zero) 
        (the default value comes from the main dialog 'image time' setting)
      • transition to the next image, using the specified transition or 'next' to 
        indicate no preference (will be randomly selected). 
 

MAP MENU
   +image: menuM.png  
   +image: map-click.jpg
   All maps will show markers (red dots) where there are geotagged images. Click on a 
   marker to get a Gallery View of all the images at this location. The range of images 
   selected corresponds to the marker size: images located within the marker area on the 
   map are selected. The effective marker area scales with the map scale. 
    
FILE MAP
   Use local file maps for map functions. The last chosen file map is loaded, or a 
   world map by default. Local file maps are from the optional package fotoxx-maps. 
    
   File Map Navigation
      • left click: zoom to full size, right click: reduce size to fit window
      • mouse drag: the zoomed map image moves with the mouse
      • if map is full size and a marker is clicked, show corresponding gallery
    
CHOOSE MAP
   Choose a file map from the available maps. An initial set of world and continental 
   maps can be installed with the package fotoxx-maps.
    
   \_Custom Map Files 
   Obtain the map from any suitable source, e.g. Google Maps or Open Street Map. You need 
   to get the map as a JPEG or PNG file. You can use a screen capture function to create 
   the map file. You can use the Mashup tool to stitch many maps together to make a huge 
   map. These work well with Fotoxx pan and zoom. You can also use a scanner to capture 
   one or more paper maps and accurately stitch them together with Mashup.
    
   To install a map, put the map file into the folder [fotoxx-home]/user_maps. In this 
   folder you will also need a text file: maps_index. Each map requires a line in this 
   file which specifies the map file name and the latitude-longitude range of the map.
    
   Here is an example maps_index file:
       Hamburg.jpg,  53.455,  53.553,   9.906,  10.067
       Houston.jpg,  29.479,  30.053, -95.786, -94.905
    
   The entries are map file name, low and high latitude, low and high longitude. All 
   values are degrees, separated by commas. Spacing does not matter. Fotoxx assumes a 
   Mercator projection, but this is not significant for maps covering less than 100 km.
    
   If you make a custom map, getting accurate latitude and longitude values for the map 
   edges can be tricky. Use the Open Street Map "export" option to view maps with an 
   overlay rectangle labeled with latitude and longitude. Adjust the rectangle to match a 
   corner of a map you have created and record the latitude and longitude values. You need 
   accurate latitude and longitude data for the upper left and lower right corners of the 
   completed map. The precision should be suitable for the scale of the map. 1 degree of 
   latitude corresponds to about 110 km on the earth's surface. 0.001 degree corresponds 
   to 110 meters.
    
NET MAP
   The Net Map functions use an internet service to provide maps from any location at any 
   scale. The Net Map offers superior functionality, but depend on having a fast and 
   reliable internet connection. Markers (red dots) will show the locations for any of 
   your images with geotags. Use the mouse wheel or double-clicks to zoom-in on any 
   location. Drag the map to change the center. Click on a marker to get a Gallery View of 
   the images at this location. The range of images selected corresponds to the marker 
   size: images located within the marker area on the map are selected. The marker area 
   scales with the map scale. Nearby markers on a zoomed-in map will consolidate when the 
   map is zoomed out, and clicking the consolidated marker will get all the images of the 
   contained markers.
    
   Net Map Navigation
      • mouse wheel is used to zoom-in or out in small steps
      • left click on a marker: show gallery of images located within that marker area
      • mouse drag: the map image moves with the mouse
    
NET SOURCE
   At this time, two internet map sources are supported: Mapnik and Mapbox. The default is 
   Mapnik. It is entirely open and free and works quite well if your internet connection 
   is good. The one drawback is that location names are in the language script of the 
   location (e.g. Arabic, Chinese ...), so for Westerners these maps are only useful for 
   Western countries using Latin script. Mapbox uses Latin script for all major location 
   names. Mapbox, however, requires an access key, which you must request. This is free 
   for modest usage: up to 50,000 "map tiles" per month, which is normally adequate. To 
   use Mapbox, go to the Mapbox web site, developers page, and follow the instructions to 
   obtain a key. In Fotoxx, use the Net Source menu function and select mapbox. You must 
   input your access key the first time only.

NET LOCS
   +image: netmap-locs2.jpg
   You can save a map location (map center and zoom level) with a given name, and recall 
   the map location later with one click. To save a map location, navigate the map to a 
   location and zoom-in to include what you want within the window. Enter the map location 
   name and press the [Add] button. The new location is added to the list of available 
   locations in the window. To recall a saved map location, simply click on the location 
   name in the list. To delete a map location, click on the name and press the [Delete] 
   button. A few net map locations are included by default. You can keep or delete them.

MARKERS
   Here you may choose to show markers for all images, or only images in the current 
   gallery. You can use the latter capability to show markers for a chosen subset of 
   images. Use an album, or use the Search function to produce the desired set in a 
   gallery. This works for both file map and net map.


FAVORITES
   +image: favorites-edit.jpg
   This is a graphic popup menu which you can populate with your frequently used functions 
   and arrange them on the window using the mouse. An initial popup window (left image) 
   is supplied. Right click an empty space on the window to define a new menu entry. Right 
   click an existing entry to modify it. Use the resulting dialog (right image) to define 
   or change the menu entry. 
      • menu text      text for the popup menu - optional if a menu icon is used
      • menu func      the Fotoxx function to use - the exact menu name
      • menu icon      menu icon - /.../filename.png - optional if a menu text is used
      • icon size      if an icon is used, its size can be 24x24 to 64x64 pixels
      • close window   checkbox: option to close the popup window when menu is selected

   Left drag a menu entry to move it somewhere else on the popup window. The popup window 
   can be resized to fit the contained menu entries. Left click a menu entry to select the 
   menu. If "close window" was checked, the popup window will close. All menu settings and 
   icon files are saved in a configuration file whenever the popup window is closed. The 
   configuration file and saved icons are located in [fotoxx-home]/favorites.
   
   You can use either the English menu names or the translations for your locale. The 
   menu names must exactly match the Fotoxx menus, but case is not significant. The menu 
   text may include "\n" to start a new line (see "source folder" in the example). 

   Icon library: Icons for many image edit functions can be found here:
      /usr/share/fotoxx/icons/edit-funcs


PREV/NEXT
   +image: prev-next.png
   This button is enabled only in File View. Click with the left or right mouse button to 
   view the previous or next image file in the current gallery. If the current image has 
   unsaved edits, you are warned and given the option to cancel. If you proceed, edits 
   are discarded. The keyboard left and right arrow keys can also be used.


[+-]
   +image: zoom_menu.png
   Use a left or right click to increase or decrease the image size in |FILE VIEW| or 
   thumbnail size in |GALLERY VIEW|. If the thumb size is minimum, a further right click 
   will show thumbnails together with the main metadata items used by Fotoxx, and another 
   right click will show a compact gallery list with only file names. These last two views 
   can also be reached using the menus |META VIEW| AND |LIST VIEW|.
    
   \_Folder Jump
   If you attempt to go beyond the first or last image in the current gallery (folder), 
   a popup message informs you. If you try again to move in the same direction, the last 
   image file in the next preceding folder, or the first image file in the next following 
   folder, will be opened. If there is no preceding or following folder, or if it has no 
   image files, then nothing is done other than a popup notification. Note that only the 
   next preceding or following folder in the parent of the current folder (gallery) is 
   searched. There is no extended search into additional folders or subfolders. If the 
   current gallery is not a folder (e.g. Newest Images gallery), then there is no 
   preceding or following folder.


FILE SAVE
   +image: save.png
   +image: file-save.jpg
   +image: file-save-as.jpg

   In the first dialog, select 'new version', 'new file', or 'replace file'.
    
   \_New Version
   Save the current image file with a new version number. File names with version numbers 
   are formatted "filename.vNN.ext" where NN is a number 01 to 99. The 4 characters ".vNN" 
   are inserted between the file name and extension. If the file name has no versions, 
   version .v01 will be created. If file versions are already present on disk, then the 
   next higher version number is used. If the file is a JPEG file, the default quality is 
   used (this can be set in |PREFERENCES|). A keyboard shortcut can be assigned to this 
   function if desired.
    
   \_New File
   The 2nd dialog shown above will open to save the current image to a selected file, 
   which can be the original file, another existing file, or a new file. An edited image 
   file can be saved in formats JPEG, PNG 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 larger than JPEG files of the 
   highest quality. TIFF files are uncompressed and larger than JPEG or PNG. TIFF and PNG 
   files may be saved with 8 or 16 bits per color. The 16-bit formats only makes sense for 
   files converted from a RAW format having more than 8 bits per color. It is rare that 
   the difference between 8 and 16 bits per color can be seen with the eye. However, an 
   image with greater bits per color has more latitude if an edit function radically 
   alters the brightness distribution. PNG-16 files are smaller than TIFF-16 but slower 
   to save due to the compression process. Saving a file as TIFF or PNG can be quite slow 
   for a large image and a slow computer. If an image has transparent areas (e.g. a Warp 
   function creates a non-rectangular image shape with transparent margins), you should 
   save the image as a PNG file if you want the transparent areas to be preserved. If you 
   use JPEG, these areas will be black and opaque. JPEG does not support transparency.
    
   \_Replace File
   Save the current image file back to itself. If a JPEG file, the default quality is used 
   (this value can be set in |PREFERENCES|).
    
   If 'make current' is checked, the saved file (new file name) will become the current 
   file. The source file (old file name) remains unchanged. If not checked, the file is 
   saved with the new name, but the current file remains the source file (old name). 
   In either case, the edit history is retained (i.e. Undo and Redo will still work).
    
   File sizes for a 15-megapixel image are roughly as follows (depending on image detail).
   The jpeg numbers are the quality value given when the file is saved to disk.
   tiff-16   tiff-8   png-16   png-8   jpeg-100  jpeg-90   jpeg-80   jpeg-70
   112 MB    38 MB    78 MB    21 MB    8 MB      2 MB      1 MB      0.7 MB

   The default JPEG quality is used unless you change the value in the New File dialog. 
   The default value can be set in |PREFERENCES| (initially 90). You will not be able 
   to see a difference between a file saved with quality 90 and one with 100, but the 
   difference in file space is huge. The |TECHNICAL NOTES| section describes potential 
   loss of image quality from repeated open, edit and save of JPEG images. At the default 
   quality of 90 this issue can be generally ignored.

   The permissions used for the new file are shown. These are copied from the source file 
   that was copied or edited to make the current file. If you want different permissions, 
   press the [Change] button to edit the permissions.


METADATA MENU
   +image: meta.png
   Metadata is text data that is stored inside an image file. Digital cameras create some 
   metadata automatically, such as date and time, technical data about the camera and 
   photo parameters, and location data (if the camera has a GPS receiver). Other data can 
   be added by the user, such as captions, comments, ratings, and tags (keywords). 

   Fotoxx can search your image collection using any metadata, along with folder and file 
   names or partial names, producing a gallery of matching images. In most cases, the 
   search is almost instantaneous. There are several alternatives for organizing a large 
   image collection so that it can be easily searched. It would be good to review these 
   before choosing an organization system for file and folder names and metadata tags, 
   captions, ratings, etc. See |ORGANIZING IMAGES|.

VIEW META
VIEW ALL META
   +image: view-metadata.jpg
   The View Meta functions display available metadata for the current image file. 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 (frequently found in published 
   images). If an image is edited and then saved, the metadata is updated and stored with 
   the new image. View Meta shows the most commonly needed data, including the photo date 
   and time, user-assigned tags and star rating, comments, caption, and a history of 
   Fotoxx edits that have been applied to the image. View All Meta reports all available 
   metadata. The [Extras] button on the View Meta window opens the dialog shown on the 
   right, where you can add extra items to the report. Any item you see in the long 
   report can be added to the short report. Click an item in the left column to add it to 
   the right column and to the report. Click an item in the right column to remove it. 
   Click the entry "Other Item ..." to type-in any item name not contained in the default 
   list, which is limited to the most likely needed items.

   Fotoxx uses the following EXIF/IPTC data items (keys) for image editing and searching:
      \_Data Name\_               \_Fotoxx function to add or change the data
      Date/Time Original      Edit Meta - date/time (normally from camera date/time)
      Keywords                Edit Meta - tags
      Rating                  Edit Meta - stars
      User Comments           Edit Meta - comments
      Caption-Abstract        Edit Meta - caption
      Geotags                 Edit Meta - location - (may come from camera GPS)
      (any key name)          Edit Any Meta
      Image History           Fotoxx edit functions append this data automatically
    
   There are also several batch functions for adding data into many image files at once. 
   These are found mostly in the Process menu.

TAGS OVERVIEW
   Image files can have identification or classification tags (keywords, labels) 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 persons or things contained, etc. Tags reside inside the image metadata 
   (IPTC keywords). Tags are normally one word, but a short phrase with embedded blanks 
   or other delimiters can be used. Commas and semicolons are used as delimiters between 
   tags, and therefore cannot be used within a tag (a standard, external to Fotoxx). 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.

   Regardless of the physical organization of your images (folder and file names), tags 
   can be used to create other organizations. All images having a desired tag or tags can 
   be found quickly and displayed in a gallery window, where you can further review the 
   images and choose those for viewing, editing, or changing their tags. If you have used 
   folder and file names in a meaningful way, you can search for images using these names 
   as well as tags. You can also search images by date, rating, location, and other 
   metadata items. These need not be duplicated in tags. See |SEARCH IMAGES| below.

   \_Managed Tag System
   This is appropriate if you are starting from near nothing and are able to plan your 
   tag system before adding tags to your images. In this system, you create a limited 
   number of tag categories (e.g. people, places, things, events, art, scenery ...). 
   You then plan the tags or types of tags that will go into each category. Tags are 
   created and assigned to a category as needed during the process of tagging images. 
   An image is tagged by pointing and clicking on the list of available tags, which is 
   organized by category and alphabetically within category. If a new tag is needed, it 
   is created when first assigned to an image. The number of tags within a category
   should ideally be less than about 200, so that visual location from a pick-list is 
   fast enough. The pick-list is sorted alphabetically. 
    
   managed tag system advantages
     • prevent inconsistent tag names (e.g. 'landscape' and 'scenery')
     • prevent alternate spellings and typos (e.g. 'susan', 'susy', 'scenery', 'scenrey')
     • prevent tags that logically include other tags (e.g. 'landscape', 'lake')
       (this can be planned and deliberate, but should not happen by accident)
     • searching is more reliable because tags do not have the above errors
     • when tagging images, you have a reasonable overview of available tags
       (as opposed to thousands of tags in an unmanaged system)
    
   A large tag list slows down the process of tagging images due to the time needed to 
   visually find the tag in the long list (possibly in a scrolled window). This problem 
   is mitigated in 3 ways: (1) Up to about 10 most recently used tags are shown in the 
   edit dialog, where they can be easily seen and chosen. Since a series of photos made 
   at the same time will likely share many tags, adding tags to such a series is made 
   easier and faster. (2) When adding tags to an image, you may simply start typing a 
   desired tag name. A popup list of matching tags appears as soon as there are only a 
   few possible matches. You can then click on the desired tag to add it to the image. 
   If there are no matching tags, you have the option of adding the new tag to the list 
   of available tags. (3) You can limit the list of displayed tags to a chosen category.
    
   If tags are broadly defined and fewer in number, search results for tags will be 
   larger, but using the search results (image gallery window) to find a smaller subset 
   of images can be quite fast. Physical file organization is preserved: image files 
   located together in their folders will also appear together in search results.
    
   Images downloaded from the internet often contain tags. These of course have no 
   organization and are collectively chaotic. If you use a managed tag system, it is best 
   to review such images and clean up the tags to conform with your system, or delete 
   them. Whatever new tags are present will be automatically added under the category 
   "nocatg". If you notice unwanted tags in your tag list, use |SEARCH IMAGES| by tag 
   to find the images needing tag deletion or renaming.
    
   \_Random Tag System
   You may prefer to invent tags as needed with no particular system in mind. Or you may 
   already have thousands of tags, making a conversion to a managed tag system difficult 
   (but not impossible: Fotoxx has a function to mass convert tag names). In this case, 
   you can simply type tags into your images, creating new tags as needed. There is still 
   a limited capability to keep tags organized: existing tags matching the characters you 
   input are shown as soon as there are only a few possible matches. Example: you type 
   "lan" and a list of existing matching tags is shown: 'landscape', 'landscapes', 
   'Langley' ...  If one of these is your intention, you click on it to select the tag. 
   If not, you keep on typing and eventually press Enter to create a new tag. When 
   searching images for tags, you can type desired tag names or pick them from the list 
   of available tags. Available tags matching the first few letters you type are shown, 
   and you can pick from this list. You cannot enter a search tag that does not exist 
   somewhere in your images.
    
   \_Geotags
   Modern cameras can record the location of each photo, using an internal GPS receiver. 
   Latitude, longitude, city or location, and country are recorded in the EXIF metadata 
   of the image JPEG or RAW file. The Edit Meta function also allows location data to be 
   entered or revised. Locations may also be specified by clicking on a map. There are 
   three functions that can find images for a specified location or region: 

   |SEARCH IMAGES|
   Find images by location name (also multiple names and partial matches). 

   |PLACES/DATES|
   Find all images for a country, country/location, or country/location/date range. 

   Images by Map Location
   Click on a map marker to show all images at the marker location. 
   
   Location names (city or other place name, and country) from the camera GPS are not 
   standardized and may be chaotic (e.g. Munich, München, MONACO). How best to deal with 
   this is discussed below.

EDIT META
   +image: edit-metadata.jpg
   The Edit Meta function is used to add basic metadata to an image.
   Please read Tags Overview and Geotags Overview (above) before using Edit Meta.

   Edit Meta is used to edit the most frequently used metadata: image date and time, 
   rating, caption, comments, location data, and tags. The dialog initially shows existing 
   data for the current image. After making additions or changes, press [Apply] to update 
   the image file. There is no automatic file versioning for metadata changes, but if you 
   want a new version, use File Save > New Version.

   The dialog shows the metadata for the current image in File View, or for a clicked 
   thumbnail in Gallery View. The dialog updates itself when a new image is opened or new 
   thumbnail is clicked.

   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 yyyy-mm-dd or a shorter 
   format yyyy or yyyy-mm. 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 [Prev] button 
   fills-in the date from the previous data entered. This is to allow easy dating of a 
   series of images. If time is important, you can include a time using the format 
   hh:mm[.ss].

   You may enter a caption, a comment, and a stars rating for the image.

   If the location data is available from any previous image file, enter the first few 
   characters and press [Find] to get a list of locations to choose from. For the first 
   entry of a location, or to add location data to many files at once, see the topic 
   Adding Geotags below.

   Existing tags are shown in Image Tags. Available tags are shown in the Defined Tags 
   window below. One of these tags can be added to the image by clicking it. A tag can be 
   deleted from the image by clicking it in Image Tags. Tags recently added are shown in 
   Recent Tags. This is a convenience to make adding tags to a new batch of images easier, 
   since many of the same tags will be used again. Point and click the same way.

   If the list of defined tags is long, it may be easier to type the desired tag into 
   Enter New Tag. Existing tags matching what you have typed so far will appear in 
   Matching Tags, and you can click on one of these to add the tag to the image. If the 
   input tag is new (no matching tag is shown), press [Add] when the tag is complete. 
   It will be added to the image and to the list of defined tags with category "nocatg".

   If you are using tag categories, you can select a category, and only those tags will 
   be shown in the list of defined tags. If your tags list is huge, this can reduce the 
   list to a manageable size for pointing and clicking.

   The [Apply] button writes the data to the image file and to the metadata index file 
   used for searching images.

   The [Prev] button can be used to load all available data from the previous image 
   viewed or edited. This can be used to speed-up the processing of a group of images 
   sharing much of the same data.
    
MANAGE TAGS
   +image: manage-tags.jpg
   Create tags (keywords) and optionally group them into categories. You can 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 searching: only the tag is 
   stored in an image, not its category. Typical categories are people, places, things, 
   events, scenery, buildings, art, etc. To add a new tag with a new category, enter the 
   category and the tag, then click [create]. If the category is blank, the tag will be 
   assigned to "nocatg". To assign a tag to a different category, click a category 
   (bold text) or enter a new one, click the tag, and press [create]. The tag will move 
   from the old to the new category. To delete a tag, click the tag and press [delete]. 
   Tags used in images but not assigned to a category will appear under "nocatg".

   Note: a newly created tag is appended to the end of the tag list for its category. 
   The next time Fotoxx is started, all categories and their tag lists are sorted 
   alphabetically, except that "nocatg" is always last.

   Use the [orphan tags] button to list tags that are defined but not assigned to any 
   images. These may be deleted if no use is planned.
    
   \_Adding Geotags
   The Edit Meta dialog shows the location data for the current image, if any. For an 
   image with missing or incorrect location data, enter a location name (city, park, 
   museum ...) and use the [Find] button to either complete the data in the dialog, or 
   get a list of matching locations to choose from (e.g. London, United Kingdom and 
   London, Canada). The list of locations comes from your image files, so a location will 
   not be known until it is assigned to an image for the first time. Partial matches are 
   found, so you can usually enter a leading substring, e.g. "hono" for Honolulu. Use the 
   [Apply] button to enter the data into the EXIF metadata for the current image, and 
   also into the metadata index file for later searching by location. Use the [Prev] 
   button to fill the dialog data with the last location used. If the [Find] button does 
   not find a location (it is not present in any other image), you can use the [Web] 
   button to find the location data from an internet web service (MapQuest Open for now, 
   but this could change). The location data is completed and returned into the dialog. 
   The web service names are not standardized in format or language, so check the 
   returned data for reasonableness and change the spelling and capitalization if needed. 
   The [Apply] button will add the location data to the image, and this location will be 
   available for future use by the [Find] button. If the [Web] button fails, you can find 
   the location using an internet service, and enter the location data into the dialog.

   Here is a web site to look-up a location/country (there are many others):
      \_https://www.worldatlas.com/aatlas/findlatlong.htm

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

   Blank the latitude and longitude if you want to save only the location and/or country 
   name in the image file. If the latitude/longitude data is changed from the values 
   returned by [Find], the new values are saved for this image file. If a location is 
   saved without latitude/longitude, there will be no location marker on a map, and 
   finding photos for this location by clicking on a map will not work. The two other 
   methods to find photos by location, Search Images and Places/Dates, will still work.

   Note: The EXIF keyword "city" is used to mean any location name: city, park, museum, 
   lake, etc. Fotoxx uses the term "location" to avoid stupidities like 
   "city = Yellowstone Park". Internally, "location" is converted into "city" for metadata 
   storage or retrieval.

   If you change to one of the map views and click on a location, this location will be 
   inserted into the Edit Meta dialog. If you click within a marker (red dot), the 
   location name and latitude/longitude for that marker will be used. If you click 
   outside a marker, the clicked latitude/longitude will be used, and the location name 
   will not be changed.

   If you use the [Find] button to set the dialog location data from a known location, 
   there are two possible outcomes: if there is only one geocoordinate (latitude and 
   longitude) associated with the location, this is returned into the dialog. If there 
   are multiple geocoordinates, the Net Map is shown and zoomed-in to a scale where all 
   markers for all geocoordinates associated with this location are shown. Click within 
   one of the markers to choose the corresponding geocoordinate, or click outside any 
   marker to set a new geocoordinate for this image file. The location name now has a 
   newly associated geocoordinate.

   You can use Batch Add Geotags (see below) to quickly add location data to many image 
   files at once.
    
   Summary
      • Enter (or change) a location name (possibly abbreviated) in the dialog.
      • Use [Find] to find the location and auto-fill country, latitude, longitude.
      • If there are multiple matches, choose from the list.
      • If there are too many matches, add more letters or supply country and try again.
      • If there are zero matches (not found), try the [Web] button (country required).
      • If still not found, add more letters to the location.
      • If still not found, use the above web service and input the data manually.
      • Use [apply] to update the image and make the location available for future use.
      • If there are multiple geocoordinates for a given location, click on a map marker 
        to select one, or click elsewhere to add a new geocoordinate for this location.

EDIT ANY META
   +image: edit-any-metadata.jpg
   This is a dialog for editing any metadata for the current image file. The most likely 
   metadata key names are listed. Click one of these to retrieve the current key value. 
   Change the value if wanted and press [Save]. The metadata is updated. To edit a key 
   name not in the list, enter the key name and press keyboard "enter" to retrieve the 
   present value, if any. Then enter or change the value and press [Save]. You may enter 
   the key name in lower case and with or without spaces between the words, e.g. 
   "Bits per Sample" and "bitspersample" will both work. To see all present keys and 
   data, use |VIEW ALL META|. 

DELETE META
   Specify the key name to delete, or select All. The metadata is deleted. Use All to 
   clean an image of any identifying information that might be present. Some keys are 
   not deletable, e.g. File Name.

CAPTIONS
   +image: caption.jpg
   Show the file name (without folders), IPTC Caption, and EXIF User Comments at the top 
   of each image displayed in File View. You may choose any or all of the three options. 
   Subsequent image views will include the selected items where available. The lengths are 
   truncated at 200 characters. To see up to 1000 characters, use |VIEW META|.

PLACES/DATES
   +image: image-locations.jpg
   This is a fast way to find all photos made at a given location or location and date 
   range. In the dialog, select the desired level of grouping: by country, by country 
   and location, by country and location and date, or by date and country and location. 
   In the last two cases, you can select a date range for grouping of images having 
   nearby dates. A number N will group images together with dates that are N days or 
   less apart from other images in the group.

   A popup report shows all locations found and the dates of photos taken in those 
   locations. The count of photos taken is also shown. In the above example, 29 photos 
   are from Grindelwald in March 2008. Click on a line in the report to get a thumbnail 
   gallery of those images, and from there you can click on any image to view or edit. 
   Note that this method uses only location and country to find the images. Earth 
   coordinates are not used. If you have images with missing or inconsistent earth 
   coordinates for a given location, use this function to get all of them, and then use 
   |BATCH GEOTAGS| to make the earth coordinates consistent.

   You can also use the keyboard up/down arrow keys to rapidly step through the report 
   lines and view the gallery for each line. The page up/down keys and the home/end keys 
   also work. Use the [find] button to enter a name and jump directly to that name in
   the report.

TIMELINE
   +image: timeline-report.jpg
   This report produces a timeline of image counts by month. Click on a year and month in 
   the report to get a thumbnail gallery of all images with a photo date (EXIF) in the 
   selected month. The example here shows 377 images for May 2016. You can also use the 
   keyboard arrow keys (up/down/left/right) to step quickly through the months or years 
   and view the corresponding galleries. Year 'null' is for images without a photo date.

AUTOSEARCH
   This function can be used by shell script files to extract image files meeting any 
   of the selection criteria available in the Search Images function (see below). 
   First, use the Search Images function to set up the desired selection criteria
   (e.g. folder/file names (wildcards allowed), dates, tags, or other metadata).
   Use the [save] button to save the criteria as a file with a given name. Use the
   following command to start Fotoxx and perform the search: 
         $ fotoxx -m autosearch <settings_file>
   where <settings_file> is the name you assigned to your search criteria. The output is 
   to the file /fotoxx-home/search_results, where /fotoxx-home/ is the location for 
   Fotoxx data files (default: /home/<user>/.fotoxx/). The settings file is an ordinary 
   text file which can be edited or created/modified using a shell script. You can use 
   the shell text manipulation utilities to modify fields in this file.

SEARCH IMAGES
   Use the Search Images function to find images having any desired metadata. A metadata 
   index file is used for searching, which makes it possible to search thousands of 
   images per second. The index contains a subset of the EXIF and IPTC metadata in the 
   image files. Some of this data is automatic, created by the camera. Other data, such 
   as tags and star ratings, can be added by the user.

   There are two report formats: a gallery of thumbnails showing all images that match 
   the search criteria, or a metadata report which combines thumbnails with metadata 
   text. Here is an example of the metadata report format:
   +image: search-images-metadata.jpg

   \_Search Dialogs
   +image: search-images1.jpg +image: search-images2.jpg
   The main dialog is on the left. If the button "search other metadata" is used, the 
   dialog on the right appears. This can be used to select metadata that is not available 
   in the main dialog. Details are given below.

   In the main dialog, select which images to search, either all (the entire image 
   database) or current set, meaning the images in the current gallery list, which can 
   be a folder, album, or the results of a prior image search. Next, choose what to do 
   with the matching images found: 'new set' means replace the current set with the images 
   found, 'add' means add them to the current set (gallery), and 'remove' means remove 
   them from the current set. To remove images, you must search the current set.

   For files matching the selection criteria, you may additionally specify which versions 
   are selected: last version only, original + last version, and original + all versions. 
   These options depend on the Fotoxx version naming convention: The original file name 
   is normally filename.ext, and edited versions are filename.v01.ext, filename.v02.ext, 
   etc. When one of these 'version' options is selected, it becomes effective for any 
   original file or file version that is selected. It is possible, for example, that if 
   only version 2 matches the selection criteria, the resulting output includes only 
   version 3, if that is the last version and 'last version only' was selected. 

   Select the desired report type. The gallery report is a page of thumbnail images, as 
   long as needed to hold all the images that match the search criteria. The metadata 
   report has both thumbnail images and a list of metadata items beside each thumbnail. 
   These include the standard items (date, rating, tags, geotags, captions, comments) 
   and any items you added in the optional search metadata dialog.

   Enter your search criteria. Select desired tags, dates, star ratings, text (comments, 
   captions), file or folder names, and location names. See more details below.

   Press the [proceed] button to perform the search. The output is a standard gallery of 
   thumbnails, or the metadata report format shown above. Choose images to view or edit 
   by clicking the thumbnails. Navigate this set of searched images like any other 
   gallery. You can save the searched images as a permanent album, which can be further 
   edited to add or remove images (see |MANAGE ALBUMS|).

   Available tags are shown in Defined Tags and can be chosen with point and click. If 
   the list of defined tags is long, it may be easier to type the desired tag into Enter 
   Search Tag. Existing tags matching what you have typed so far will appear in Matching 
   Tags, and you can click one of these to add the tag to the search list. If you type a 
   tag with no match (it does not exist in any image), the list of matching tags will be 
   empty.

   If you are using tag categories, you can select a category, and only those tags will 
   be shown in the list of defined tags. If your tags list is huge, this can reduce the 
   list to a manageable size for pointing and clicking.

   A date range may be entered to restrict the search to images within the date range. 
   Choose photo date (EXIF, from camera) or file date (creation or last modification date). 
   The format is yyyy-mm-dd. Images are selected which have a date on or after the first 
   date, if present, and on or before the second date, if present. Missing month/day 
   default to 01/01 for the low date limit and to 12/31 for the high limit. Times may 
   optionally be specified using the format yyyy-mm-dd hh:mm. Missing times default to 
   00:00 and 23:59.

   To search for images having no EXIF photo date (e.g. scanned or downloaded images), 
   use "null" in the first date input.

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

   Folder and file names may be searched. In the field search files, enter any number of 
   names used for your image folders and file names, separated by blanks. An input of 
   "egypt cairo" would match all image folder or file names containing either of these 
   strings. Substrings will also match.
    
   Image comments and captions may be searched. 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. Substrings 
   will also match.

   To search locations, enter one or more location or country names in the search 
   locations field. Only image files with geotags matching one of the entered locations 
   will be selected. A location may be a city, park or other geographical name.

   The radio buttons 'all' and 'any' apply to tags, text, file names, and locations. 
   You can select images having ALL the entered strings, or ANY of the entered strings. 
   Example: if the location search field is "new york" and "any" is selected, images 
   from New Zealand and York, England would be included. If "all" is selected, only 
   images located in New York would be included.

   If you wish to find images with missing data, you can enter "null" as a match value.

   \_Search Metadata Dialog
   You may use this dialog to search for "extra" metadata items not present in the main 
   dialog. The items available for any given image file can be seen with |VIEW ALL META|.
   These include camera make and model, exposure time, F-number, ISO, metering mode, 
   focal length, shooting mode, etc. You can enter shortcut names like "exposuretime" 
   instead of "Exposure Time". You may also enter match criteria, if wanted, so that only 
   the images with matching metadata are reported. For example, if you enter "model" with 
   the match value "DMC-FZ28" (a Panasonic camera) then only the images taken with this 
   camera will be reported.

   The matching logic can be selected for each metadata key.
      \_match method\_   \_match value(s)
      report         select and report all key values - no matching is done
      matches        one or more metadata text values to select, separated by commas
      contains       as above, but any metadata containing this text is selected
      number =       single numeric value - equal metadata values are selected
      number =>      single numeric value - equal or greater values are selected
      number <=      single numeric value - less or equal values are selected

   \_Wildcard matching
   The 'matches' method allows the use of wildcards in the match criteria. An asterisk 
   (*) can be used to match any sequence of characters, including zero characters. 
   A question mark (?) can be used to match any single character. 
   Example: "mar?*ony" would match "mark anthony" but would not match "marony".  
   "mar*ony" would match both.

   Performance (SSD, 3 GHz computer)
      \_Report Type\_   \_metadata search items\_     \_search speed\_   \_report speed
      gallery       indexed items only         >1000/sec      >1000/sec
      gallery       some non-indexed items     90/sec         >1000/sec
      metadata      indexed items only         >1000/sec      130/sec
      metadata      some non-indexed items     90/sec         130/sec

   Search speed is the speed to screen the entire image collection to find matches. 
   Report speed is the speed at which matching images are output to the report window 
   (thumbnail and reported metadata).

   There is a separate topic for image organization options, which explains the options 
   for optimizing image searching: |ORGANIZING IMAGES|. 

   \_Search Results\_ (album)
   The output of Search Images is automatically saved in the album "Search Results". 
   This is for convenience. You may perform a search and then perform other functions 
   which change the current gallery. If you need to refer to the previous search, this 
   is instantly available in the album "Search Results". Rename this album if you want 
   to keep later searches from replacing it.
    
   Limitation: The search function is limited to 40,000 results (images found that meet 
   the search criteria). If this limit is exceeded, you are notified and the search is 
   truncated. This limit exists because the space for a scrolled page in GTK is limited, 
   and an attempt to create a larger page may result in a crash or lock-up.


AREA MENU
   +image: areas.png

AREA OVERIVEW
   Edit functions normally apply to the entire image, but it is possible to edit part of 
   an image (an "area") and leave the rest unchanged. If an image area has been selected, 
   then most edit functions will work only within this area. Some functions (e.g. Resize) 
   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.

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

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

   \_Line Color
   The color used for the mouse selection circle and the area outline can be changed at 
   any time by clicking one of the color buttons. This allows good visibility against 
   various background colors. 

   \_Methods
   The following methods are used to enclose one or more image spaces that will belong 
   to the final area. These methods may be used in any sequence to define spaces that 
   are either joined or detached.
      • Rectangle - drag to outline a rectangular area
      • Ellipse  - drag to outline a circular or elliptical area
      • Freehand Draw - outline area by drawing (dragging) with the mouse
      • Follow Edge - outline by following image feature edges
      • Draw/Replace - adjust a previous outline by drawing over it
      • Select area in mouse - select pixels within a circle centered at mouse pointer
      • Select color in mouse - as above, but only colors (nearly) matching a set color
      • Select all colors in mouse - as above, spread into adjacent areas matching the 
        colors within the mouse circle (this is called 'flood' in some editors) 

   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 a circle
   or ellipse. The drag start location is the center of the resulting ellipse. The angle
   of the drag determines the shape of the ellipse. 

   \_Freehand Draw
   Drag the mouse (left button down) to draw a freehand (curvy) line, or left-click to 
   connect a straight line from the last point drawn to the point clicked. Continue 
   around the target area until it is surrounded with connected curves and lines. Right 
   click to remove previous lines (mistakes). A right click will remove the previous 
   clicked or dragged line, up to 50 pixels. Right click repeatedly to remove more. 
   A new clicked line will always connect to the end of the previous line. A new dragged 
   line will connect to the previous line if it is started close to the end of that line. 
   If it is started elsewhere, a disconnected line will be drawn. You can start a new 
   drag from far away and draw back to meet the previous line. If a clicked line connects 
   to an undesired point (i.e. you don't want to connect to the last line drawn), right 
   click to erase it and then use drag to start a new sequence of lines. A right-button 
   drag can be used to erase line 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. There is a gap detection utility described 
   below - |FIND AREA GAP|. If an area edge is also an image edge, you do not have to
   draw this portion of the area. Draw the line off the image edge, and draw it back
   onto the image at another position along the image edge.

   \_Follow Edge
   High-contrast pixels (likely image feature 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,
   but with a tendency to follow feature edges from slightly behind the mouse position.
   There is a special tool for very irregular edges - |SELECT HAIRY| (described below).

   \_Draw/Replace
   Drag the mouse near and along an existing area edge-line. The line will be erased and 
   redrawn at the mouse pointer. This is a fast way to make a small adjustment to an 
   existing line.
    
   \_Mouse Radius and Match Level
   These two controls apply only to the 'select in mouse' methods described below. 
   Mouse radius defines the size of a circle around the mouse pointer. Pixels within the 
   circle are selected, or they provide a set of colors for matching and selecting pixels. 
   Match level defines a required match level (0-100%) to select pixels based on their 
   color and brightness. 0 means anything matches, and 100 means a perfect match is 
   required.
    
   \_Select area in mouse
   Left click or drag will select the pixels enclosed by the mouse circle. A right click 
   will unselect the last selection (repeat to unselect more). A right drag will unselect 
   the enclosed pixels.

   \_Select one color in mouse
   Click on the image to select a color. The color is shown on the color button. You can 
   also use the button to set a color directly. Left/right drag to select/unselect pixels 
   within the mouse circle that match the selected color within the match level. Adjust 
   the match level down/up to match a greater/lesser range of colors. Click repeatedly
   on the image to change the color to be matched.

   \_Select all colors in mouse\_ (flood) 
   This is called 'flood' in some editors. Left/right drag to select/unselect pixels 
   inside the mouse circle. Pixels beyond the mouse circle are also included if they meet 
   these two conditions: 1) their color matches any color inside the mouse circle, within 
   the current match level. 2) they are within the search range of the mouse pointer. This 
   is a factor of mouse radius, e.g. if mouse radius is 20 and search range is 3, then the 
   search range is 60 pixels from the mouse pointer. Drag the mouse over new areas you 
   want to include. Watch the selected area expand into areas with colors matching those 
   inside the mouse circle. If you go too far, right click to remove the last selection. 
   Repeat if needed to remove more previous selections. Reduce the radius or increase the 
   match level to gain finer control - the selection will expand more slowly and stay 
   closer to the mouse circle. A small radius and high match level can be used to follow 
   along an image feature edge and select pixels up to the edge with good precision. 
   Change to a larger radius and/or lower match level to select larger areas after the 
   fine work is complete, or change to the select area in mouse method described above.
   Right drag acts as an unselect: pixels inside the mouse circle and matching pixels 
   within the search range are unselected. If a selection goes too far, it is often easier
   to correct this by unselecting from outside the selected area instead of selecting from
   inside the selected area. You may need some practice to get a feeling for this and be 
   able to work efficiently.
    
   \_Select all colors in mouse - summary
      • left drag      select pixels inside mouse circle and those with
                       matching colors within search range
      • right click    undo previous selection, repeat to unselect more
      • right drag     unselect pixels inside mouse circle and those with 
                       matching colors within search range

   \_Blend Width
   Edits made within an area can be blended with the unmodified image over a distance 
   called 'blend width'. The 'strength' of the edit function will ramp from zero at the
   edge of the selected area to 100% at a distance of 'blend width' from the area edge.
   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 blend width 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 (i.e. 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 runs along an image edge, it is not considered an edge for blending. 

   \_Edge Creep
   An area that has been finished (see below) can be expanded or contracted in 1-pixel 
   steps. This can be helpful to reduce edge effects when an area selected by matching 
   colors is edited in a way that changes its brightness. Selection by color may leave a 
   narrow band of underselected or overselected pixels along an edge where feature color
   transitions to background. Expanding or contracting the area 1-2 pixels can produce a 
   cleaner looking edge. The area remains finished after creep, but blend width is no 
   longer valid and is discarded. 

   \_Show/Hide
   Use [Hide] to hide the area outlines. This is useful to better see the effects of the 
   area edits without interference from the area outline. Use [Show] to show the outlines 
   and resume editing the area.

   \_Finish
   +image: select-area-finish.jpg
   An area is not effective for edits until it is successfully finished. Finish validates 
   drawn outlines and colors the enclosed pixels for visual verification. When you are 
   finished outlining areas, use the [Finish] button to complete the process. The popup 
   dialog shown above summarizes two methods you can use to finish

   Method 1: Left-click the mouse inside areas that were outlined by hand. The enclosed 
   areas are temporarily colored so you can verify that the final result is what you 
   intended. Any enclosed area can be selected, even those not explicitly outlined: if 
   you have a donut with a hole, you can select the donut, the hole, or both. Press 
   [keep] when all areas have been clicked and correctly colored. If the outline of a
   hand-drawn area has a gap, the coloring process will "leak out" and areas outside the 
   enclosure will be colored. In this case, press [Undo] in the Finish dialog, which
   restores the original area outline. Find the gap in the outline and close it, then 
   try [Finish] again. A 1-pixel gap in a large area can be hard to find. Zoom-in to see 
   better. See the function |FIND AREA GAP| below for a fast method to find tiny gaps.

   Method2: Right-click somewhere outside all the enclosed areas. All enclosed areas will 
   be colored for visual verification. If there is a gap, the results and the fix are the 
   same as described in method 1. This method makes sense if you have many hand-outlined 
   areas and you do not want to check them one at a time using method 1.

   Areas selected using one of the 'select in mouse' methods are automatically finished. 
   These areas are mapped during the selection process, whereas areas selected with one 
   of the line-drawing methods are mapped only when you click inside them.

   If you draw a line from one image side to another, you can click on either side of the 
   line to make an area of all pixels on that side of the line. Example: draw a horizontal 
   line on the boundary between sky and land. Click above the line to select sky, below 
   the line to select land. The drawn lines must reach the image edges completely.

   \_Clear 
   Discard the current area permanently.

SELECT HAIRY
   +image: select-hairy.jpg
   This is an area selection function for complex boundary cases like hair or foliage,
   where selection by color may not work well, and manual selection would be very tedious. 
   The objective is to deselect background pixels, making them transparent, while keeping 
   foreground pixels opaque. The resulting "cutout" can be copied and pasted where needed, 
   without the background.

   This function is not very intuitive, and you will likely need practice to become 
   fast and effective.

   Follow these steps:
      • Choose a window background color (|PREFERENCES|) that contrasts with the 
        complex area to be selected. In the example above, a white background was 
        chosen to contrast with the dark hair. The background color can be changed 
        during the selection process when different colors are being selected.
      • Use Select Area to select the entire area to be copied, including the 
        complex boundary areas.
      • Start this function, Select Hairy.
      • Set a suitable mouse radius for painting over the boundary areas.
      • Left-click on an area representative of the colors to be selected, but away 
        from the irregular edge. About 100 pixels will be sampled from the clicked 
        position. The selected colors are shown in the corresponding dialog color box.
      • Right-click on a background area to choose colors to be deselected. 
        These are shown in the other color box.
      • The colors to select or deselect can be changed at any time by left or 
        right clicks on the image.
      • Choose a mode: select, deselect, or parallel (both options checked). 
        Most of the time you will likely use both.
      • Left drag over the boundary to select/deselect pixels. 
        Deselected pixels become transparent and the background color will show through. 
        Selected pixels will remain opaque, or become opaque if previously deselected.
      • Right drag to restore the original pixels, to correct errors.
      • The select and deselect sliders determine the selection and deselection 
        sensitivity. Move right for a more narrow match to the colors shown in the box, 
        move left to select similar colors more widely. If the foreground and background 
        colors are close, you will need to use narrow color matching to separate them.
      • When done, save the completed area with the Copy button or the Save button.
      • To paste the area into another position or image, use the menu Paste or Load
        (see |COPY/PASTE AREA| and |LOAD/SAVE AREA|). 

   When the area is pasted into the target image, the paste dialog can be used to further 
   blend the edges if needed. The pasted area remains active and can be edited with almost 
   any edit function.

FIND AREA GAP
   If an area outline was created by freehand drawing using multiple strokes, it is easy 
   to leave small gaps in the outline that are not visible below 4x zoom. An attempt to 
   finish such an area will fail because the mapping of the interior pixels will leak out 
   through the gap and cover areas outside the intended area. If the Finish function 
   fails, use this function to find the gap. Click somewhere on the outline of the failed 
   area. The outline will be slowly re-drawn in one direction from the clicked position, 
   until an "end pixel" is found. This is where the gap is. The outline is then drawn in 
   the opposite direction until the gap is encountered. You can now see the gap position 
   clearly. Zoom-in on the gap and close it using freehand draw, then test again to see 
   if the full outline can be drawn without stopping. This function can be used in 
   parallel with the Select Area function (both dialogs active).

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

ENABLE/DISABLE AREA
   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.

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

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

COPY/PASTE AREA
   A selected area can be saved to a cache file using the menu Areas > Copy. This area 
   can be pasted into the same or another image using Areas > Paste. Click and drag to 
   position the pasted area. The dialog controls can be used to resize, rotate, and 
   change the brightness of the pasted area. The edge blend control allows you to blend 
   the area edges into the background image if wanted.

LOAD/SAVE AREA
   A selected area can be saved to a file using the menu Areas > Save. You are asked to 
   supply a file name. A PNG file is created. The PNG file has an alpha channel for 
   transparency information. The image is a rectangle enclosing the selected area. 
   Selected pixels are opaque, and others are transparent.
   
   These files reside in [fotoxx-home]/saved_areas by default, but you can save them 
   anywhere. Use the menu Areas > Load to load a saved area from a file and paste into 
   the current image file. The background image will show through the transparent parts 
   of the pasted area. Click and drag to position the area. The dialog controls can be 
   used to resize, rotate, and change the brightness of the pasted area. The edge blend 
   control allows you to blend the area edges into the background image if wanted.


UNDO/REDO BUTTON
   +image: undo_redo.png
   If an edit function is active and the image has been changed:
      • left mouse click will undo the current edit
      • right mouse click will redo the edit
   This allows you to rapidly compare the "before" and "after" images for the current 
   edit function.
    
   If no edit function is active, but some edits were made to the current image:
      • left mouse click will undo one edit step per click
      • right mouse click will redo one edit step per click
      • if combined with the A-key, undo/redo ALL edits (see original and final image)
      • middle mouse click pops-up a list of all edit steps - go back to any step
   This works only if the current image file has not changed since being edited. 
   If you open another file, the saved edit steps for the current file are discarded. 
   Of course any saved file versions (created during the edits) are not discarded.


EDIT MENU
   +image: edit.png

TRIM/ROTATE  
   +image: trim-rotate.jpg  +image: trim-rotate2.jpg
   Remove unwanted image margins (crop) and/or rotate to upright or level the image.

   When the dialog opens, a selection rectangle is placed over the image. The areas 
   outside this rectangle are darkened and represent the parts of the image that will be 
   removed. Drag any side or corner of the rectangle to move that side or corner. The 
   dialog box shows the current width/height ratio of the selection rectangle. If the box 
   lock ratio is checked, then moving a side or corner will also cause another side or 
   corner to move, so that the ratio is maintained. You can also drag from the middle of 
   the rectangle to shift the whole rectangle without changing its dimensions. You can use 
   the width and height spin buttons to adjust the pixel dimensions (or type-in values), 
   and the selection rectangle will adjust to these.

   You can use the keyboard arrow keys to move a side or corner of the selection rectangle 
   in 1-pixel steps. The last side or corner moved with the mouse is the one that is 
   moved with the keyboard.

   The [Max] button resets the trim rectangle to the full image size.

   The [Prev] button retrieves a list of previously used width and height values. 
   You can click on any of these to put values into the dialog width and height fields.

   The [Auto] button will automatically set the trim rectangle to omit transparent margins 
   left over from combine and warp functions. These functions leave transparent margins 
   where images did not overlay or were bent away from the edge. [Auto] tries to find a 
   maximum rectangle within these margin areas. This may or may not be the desired 
   margins, so you can keep them or move them with the mouse before committing with the 
   [Done] button.

   The five ratio buttons allow you to choose a preset width/height ratio. You can change 
   the ratio button names and the corresponding ratios with the button [customize] which 
   starts a new dialog shown on the right. Enter desired button labels in the first row, 
   and corresponding width/height ratios in the second row (the default names are the 
   same as the ratios). The [invert] button inverts the current width/height ratio.

   To level a slanted image, use the mouse to drag the right edge up or down until the 
   image looks level. Position the mouse close to the middle of the window right edge. 
   If the mouse is closer to the trim rectangle, only the trim rectangle will be moved. 
   Use the 90º and 180º buttons to upright an image made with the camera turned. The 
   degrees control can be used to set any angle, -180 to +180 degrees. No resolution is 
   lost with 90 degree rotation. For other angles, the loss of resolution is about 1/2 
   pixel. The [Auto Level] button can automatically level the image if the camera recorded 
   EXIF 'roll angle'. The [Upright] button will automatically upright an image rotated 90 
   degrees if the camera recorded EXIF 'orientation'.

   A left-click on the image will add vertical and horizontal guide lines to help with 
   image leveling. Use right-click to remove them.

UPRIGHT
   The popup menus for File View and Gallery View include this function for uprighting an 
   image that is turned 90 degrees. If the camera was rotated 90 degrees (roughly) when 
   the photo was made, the image EXIF data will indicate 90 degree rotation clockwise or 
   counterclockwise. Fotoxx uses this data to upright the image file. The EXIF data is 
   erased to prevent another rotation. If there is no EXIF rotation data, a popup dialog 
   is shown with buttons for [-90°] [+90°] and [180°]. 

RETOUCH
   +image: retouch.jpg
   Adjust image brightness and color.
      • auto black level
        the image black point is set from a percentage of the darkest RGB values found
      • auto white balance
        the image white point is set from a percentage of the brightest RGB values found
      • click gray spot for white balance
        press the button, then click on a gray spot to set the white balance
      • click dark spot for black level
        press the button, then click on an image dark spot to set the black level
      • click for RGB distribution
        press the button for a popup window showing a live RGB brightness distribution
      • brightness
        moves the entire 'all' curve up or down
      • contrast
        moves the 'all' curve lower and upper parts in opposite directions
      • color saturation
        increases or decreases color saturation (black & white <--> intense colors)
      • color temperature
        change the RGB balance to match an illumination temperature (warm <--> cool)
      • settings file
        dialog settings can be saved in a file and loaded later for use with other images

   After making initial adjustments using the sliders, you can fine tune brightness and 
   contrast by editing the curves with the mouse to change which parts of the image have 
   increased or decreased brightness. The ALL curve adjusts all colors, and the 3 RGB 
   curves adjust individual colors. Use ALL first, then make revisions using RGB.

   \_Settings File
   Load button - load all dialog settings (including the curves) from a file
   Save button - save all dialog settings to a file chosen by the user
   This can help when the same or similar settings can be used for other photos.

   \_Buttons
   Reset - set all controls back to a neutral position - image is also reset
   Prev - set all controls to the values used for the previous image
   Done - finish the edit, close the dialog, save the control settings
   Cancel - cancel the edit, reset the image, close the dialog

   Use the [Prev] button when processing multiple images needing similar adjustments.
   
RESIZE
   +image: resize.jpg
   This function resizes the image to a new pixel width and height. You can input the new 
   dimensions directly or choose a percent change. Buttons are present for setting the new 
   size to a simple ratio of the original size. Using one of these will minimize loss of 
   resolution. The [Previous] button recalls the previous size, a convenience if multiple 
   images are being set to the same size. If the lock ratio box is checked, the current 
   width/height ratio will be preserved if either width or height is changed. The change 
   is made immediately, but the image will look the same unless it becomes smaller than 
   the window. The image file size in the top panel is not updated until the modified 
   image is saved. Resizing an image requires enough memory to hold both the original and 
   the new image for a short time. Use of [2/1] or [3/1] with an image that is already 
   very large may result in failure for lack of memory. A 50 megapixel image resized to
   2x needs 1.6 GB memory, in addition to the 0.8 GB for the original image. 

ADJUST RGB
   +image: adjust-RGB.jpg
   This function is used to change overall brightness and contrast, or that of selected 
   colors. The settings are retained within and across Fotoxx sessions, so this function 
   can be used to process multiple photos made under the same lighting conditions and 
   needing the same (or nearly same) adjustments. Use the [reset] button to restore all 
   inputs to neutral values.
      • Brightness
        Increase or decrease overall image brightness
      • +Red -Cyan  etc. 
        Increase or decrease the brightness of one color and change complimentary 
        color in the opposite direction
      • Contrast All
        Increase or decrease the overall image contrast
      • Contrast Red, Green, Blue
        Increase or decrease the contrast of individual RGB colors

ADJUST HSL
   +image: adjust-HSL.jpg
   Change a selected range of colors in an image using HSL (Hue, Saturation, Lightness). 
   This function can be used to fix a color caste or change one color to another 
   (e.g. an overexposed sky - too white). If you are not familiar with the HSL color 
   model, I suggest you read the Wikipedia article about this.

   Begin by selecting a target image color to match and adjust, using shift + left-click 
   on the image. This color will be the center of a range of colors that will be selected 
   for adjustment. Select what color attributes will be matched using the checkboxes for 
   hue, saturation, and lightness. Each of these will narrow the range of selected colors. 
   If none are checked, all colors are selected. Match Level can be used to further widen 
   the range of selected colors. 100% means only closely matching colors are selected.

   The Output Color controls (hue, saturation, lightness) are used to set the new output 
   color which will replace or blend with the selected input colors. You can also set this 
   color from the image, using shift + right-click. The resulting color will be a mix of 
   the original color and the new color. The new color fraction is set by the Adjustment 
   slider, which can be set from 0 to 100%. Use the HSL checkboxes to determine which HSL 
   components of input color are replaced with the corresponding HSL components of the 
   output color. Use the sliders for output color HSL to adjust the new color. The output 
   color is shown in the smaller box on the left, which is updated as you move the sliders.

   Move the sliders and watch the live image updates to optimize the result. This is not 
   very intuitive, and practice will help.

   Hint: begin by matching on hue and saturation, and replacing only hue - this means 
   that the output color saturation and lightness will be copied from the original image 
   colors, and only the hue will be replaced.

   This function (like most others) can be used with |SELECT AREA| to restrict the change 
   to selected image areas.

MARKUP
   +image: markup.jpg
   This is a menu containing the image markup functions: 
      draw text, draw line/arrow, draw box, draw oval
   These are described immediately below.
   All of these functions have an [apply] button which commits the current edit and lets
   you begin a new edit (new text, line, box, oval) within the same edit step. 
   Press [done] to commit the last edit and close the edit function. The logical next 
   step would be to save as new version or new file, or begin a new edit. 

DRAW TEXT
   +image: draw-text.jpg
   This function draws text directly on the image. Enter the text into the dialog. 
   Multiple lines can be used. After entering the text, 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. Use the [Size] 
   control to increase or decrease the text size. Use the [Angle] control to change the 
   slant angle of the text. The other controls allow you to provide a background color 
   around the text, a text outline color, and a shadow effect. You can select the color 
   and transparency for all of these. The width control adjusts the width of outlines and 
   shadows. The shadow angle control sets the slant angle of the shadow.

   You can initialize the text from any available metadata in the image file. Enter the 
   metadata key (e.g. "user comments") and press [Fetch]. You can abbreviate key names, 
   e.g. "usercomments" instead of "User Comments".

   The [Open] and [Save] buttons start a file chooser dialog with which you can load or 
   save all text data from or to a file. All the items in the dialog are loaded or saved, 
   so you can keep a collection of often-used text strings and settings.
    
   The buttons at the bottom work as follows:
      • Clear - clear the text and metadata fields to blank
      • Replace - image with added text replaces the current image file
      • +Version - image with added text is saved as a new file version
      • Next - open next image file, place the same text at the same position
      • Apply - commit the current edit and start over: enter new text
      • Done - complete the current edit - image is ready to save
      • Cancel - abandon the current edit
    
   To add the same text to a series of images: prepare and position the text, press 
   [Replace] or [+Version], then [Next], then [Replace] or [+Version], then [Next] ...
    
   Making a Watermark: Use a text 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 |EMBOSS| to give the text an 
   appearance of depth.  

DRAW LINE
   +image: draw-line.jpg
   This function draws lines or arrows directly on the image. Enter a line length and 
   width into the dialog, and select an arrow head if wanted. Left-click the mouse where 
   you want to place it on the image. Drag the ends of the line/arrow to position it on 
   the image. Right click to remove it. The dialog controls allow you to provide a 
   background color, an outline color, and a shadow effect. You can select the color and 
   transparency for all of these. The width control adjusts the width of outlines and 
   shadows. The shadow angle control sets the slant angle of the shadow. To keep a drawn 
   line and begin another one, press [apply].

DRAW BOX
   +image: draw-box.jpg
   Choose a color and width for the box outline. Place the cursor at the position where 
   you want a box corner, and drag to open the box in the wanted direction. To replace 
   the box, drag again. To move the box, hold the shift key and drag the box from the
   center. To move one of the edges, hold the shift key and drag the edge. To keep a 
   drawn box and begin another one, press [apply].

DRAW OVAL
   +image: draw-oval.jpg
   Choose either the oval (ellipse) or circle checkbox. Choose a color and width for the 
   outline. Place the cursor at the desired center. Drag to draw the oval/circle. The drag
   angle determines the shape of the oval, from circle to extreme ellipse, wide or tall.
   To replace the oval/circle, drag again. To move the oval/circle, hold the shift key and 
   drag from the center. To change the size or shape, hold the shift key and drag from the 
   lower right edge. To keep a drawn oval/circle and begin another one, press [apply].

PAINT IMAGE
   +image: paint-image.jpg
   This function paints over the image with selected colors, using the mouse.

   The Paint Color button shows the current color. Click this button to choose a color 
   using the standard Gnome color chooser dialog. You can also shift + left-click on the 
   image to choose a color from the image.

   The palette button opens the dialog shown in the middle. Click on the image to select 
   the color at that position. The chosen color is reflected in the color button of the 
   main dialog. The image shown above is the default. You can use any image as a color 
   source. Press the [browse] button and select an image where you have saved colors for 
   recall. This choice remains in effect until changed.

   The HSL button opens an HSL color chooser shown on the right. This dialog can represent 
   any possible color. Move the sliders to get the color you want. The chosen color is 
   reflected in the color button of the main dialog.

   The brush size control sets a circle around the mouse pointer which shows the area 
   being painted or erased. Left drag on the image to paint with the current color. Right 
   drag over a previously painted area to erase (undo the painting). The opacity controls 
   determine how rapidly the color is applied (or erased) at the center and edges of the 
   mouse circle. 100% opacity applies the full color immediately, and a low value allows 
   you to gradually change the color using multiple drags (analogous to spray painting 
   from a distance). Erase also works this way: use 100% opacity to erase rapidly, and 
   a low value to erase gradually.

   NOTE: zoom the image to 100% or more when using a small brush. If the mouse steps are 
   larger than the image pixels and a small brush is being used, some pixels may be 
   skipped by the mouse and cannot be painted.

   If paint over transparent areas is selected, painting over transparent areas will 
   reduce or eliminate the transparency, depending on the opacity controls. If this option 
   is not selected, only opaque areas of the image are painted.

   The [undo-last] button reverses the last paint or erase operation, and this can be 
   repeated to remove many recent edits. Each new mouse drag operation is a unit of work 
   that can be separately reversed. The memory for undo is limited, so only the most 
   recent paint and erase steps are kept. [undo all] will put the image back in its 
   initial condition.

   You can use the zoom image buttons to zoom the image larger or smaller as needed. 
   If drag image is selected, you can pan or scroll a zoomed image by dragging it with 
   the mouse. This stops the drag from painting or erasing.

   If a |SELECT AREA| is active, the painting is confined within the area.
    
   \_Wacom Tablet Operation
   With Paint Image, you can use a Wacom tablet instead of a mouse. Dragging the stylus 
   in contact with the tablet surface will paint as described above. If one of the stylus 
   buttons is held down while dragging, the operation will be erase instead of paint. 
   You can also set paint or erase mode using the radio buttons in the dialog. Holding 
   down a stylus button is cumbersome, which is why the radio buttons are there. Adding 
   pressure to the stylus will increase the opacity, so you can make lighter and darker 
   strokes without adjusting the opacity controls.

COPY PIXELS 1
   +image: copy-pixels-1.jpg  +image: copy-pixels-1b.jpg
   This function paints image areas by copying from elsewhere in the image. This method 
   can be used to duplicate objects within an image, or erase an unwanted object by 
   replacing it with background taken from elsewhere. In the above example, the right 
   boat was copied from the left boat, and one person was copied into a ghost image.

   Shift + left click on the image to select a source, then drag over the image area to be 
   painted. The source area is painted over the dragged area, immediately or gradually, 
   depending on the opacity settings.

   The brush size control sets a circle around the mouse pointer which shows the area 
   being painted or erased. Left drag on the image to paint, or right drag over a 
   previously painted area to erase (undo the painting). The opacity controls determine 
   how quickly the image is modified (or erased) at the center and edges of the circle. 
   100% opacity paints fully and immediately, whereas a low value allows you to gradually 
   paint using multiple drags. Erase also works this way: use 100% to immediately erase, 
   and a low value to erase gradually.

   The [undo-last] button reverses the last paint operation, and this can be repeated to 
   remove many recent edits. Each new mouse drag operation is a unit of work that can be 
   separately reversed. The memory for undo is limited, so only the most recent paint 
   steps are kept. [undo all] will put the image back in its initial condition.

   If paint over transparent areas is selected, painting over transparent areas will 
   reduce or eliminate the transparency, depending on the mouse opacity controls and the 
   gradual paint setting. If this option is not selected, only opaque areas of the image 
   are painted.

   If a |SELECT AREA| is active, the painting is confined within the area.

COPY PIXELS 2
   +image: copy-pixels-2.jpg  +image: copy-pixels-2b.jpg
   This function copies an area from one image to another image (they could be the same 
   image). The target image is 'painted' by dragging the mouse over the area to be 
   modified. A previously selected area from the source image is painted onto the target 
   image. The area being copied and the area being painted are both enclosed in red 
   circles which move with the mouse, representing the extent of the 'paint brush'. In 
   the above example, the rightmost boat in the right image was copied to the left image.

   Start by opening the target image (the one that will be painted). Select the menu 
   'Copy Pixels 2'. A 2nd Fotoxx session is started automatically to show the source 
   image. Open the source image in the 2nd session and arrange the two windows so you can 
   keep both of them in view. Left click the source image near the center of the area to 
   be copied. Left click the target image at the target position that corresponds to the 
   source position clicked on the source image. Left-drag the mouse over the target image 
   area. Pixels from the source image are copied to the target image. Red circles are 
   visible on both images and represent the areas being copied from and to. Right-drag 
   to erase (restore the original target image). To change the source or target copy 
   positions, repeat the two left-clicks as needed.

   The brush size control sets the size of the circle around the mouse pointer, which 
   shows the area being painted or erased. Left drag on the image to paint, or right drag 
   over a previously painted area to erase (undo the painting). The opacity controls 
   determine how quickly the image is modified (or erased) at the center and edges of the 
   circle. 100% opacity paints fully and immediately, whereas a low value allows you to 
   gradually paint using multiple drags. Erase also works this way: use 100% to erase
   immediately, and a low value to erase gradually.

   The [undo-last] button reverses the last paint operation, and this can be repeated to 
   remove many recent paints. Each new mouse drag operation is a unit of work that can be 
   separately reversed. The memory for undo is limited, so only the most recent paint 
   steps are kept. [undo all] will put the target image back in its initial condition.

   The source image scale value is used to scale the source image to the target image. 
   Start by making a trial copy to check the scale. If too big or too small, use 
   [undo all] to erase the trial, change the scale value, and try again.

   If paint over transparent areas is selected, painting over transparent areas will 
   reduce or eliminate the transparency, depending on the mouse opacity controls. If 
   this option is not selected, only opaque areas of the image are painted.

   If a |SELECT AREA| Is active, the painting is confined within the area.

PAINT EDITS
   +image: paint-edits.jpg
   Use this function in combination with some other edit function. Start an edit function 
   and leave the controls in a neutral position. Then start Paint Edits. Specify a mouse 
   radius and power factors for the mouse center and radius edge. The mouse pointer will 
   be surrounded by a circle with the specified radius. When the mouse is left-dragged 
   over an area of the image, the current edit function is applied within the circle. 
   The strength of the function is regulated by the center and edge 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 Retouch, and the 
   brightness curve is moved upward (brighten), then the image will slowly brighten in the 
   area where the mouse is dragged. This is traditionally called 'dodge and burn'.

   Use the [undo] and [redo] 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 right-drag to weaken the edit or ultimately erase it. When done using one edit 
   function in one or more image areas, use the [done] button on the edit dialog to 
   complete the edit. Use the [reset area] button on the Paint Edits dialog to erase the 
   active area that is now left over from the mouse dragging. If you leave this area 
   active and start a new edit function, the results may be strange: the new function 
   works only on the previously painted areas (but this could also be a feature).

   A suggested approach is: (1) start an edit function and make the initial settings, 
   (2) start the Paint Edits dialog, (3) drag the mouse over the desired areas and watch 
   the effect, (4) adjust the edit settings, (5) alternate between the previous two steps. 
   (6) Exit from the edit function, then from Paint Edits.

   This method to "paint" edits incrementally can improve selected areas of an image 
   quickly and easily. It works with the following edit functions: Retouch, Flatten, 
   Gradients, Sharpen, Denoise, Color Mode, Shift Colors, Adjust RGB, Adjust HSL, 
   Color Depth. Others may be added in the future.

   See the following functions for alternative methods to perform localized edits:
   |SELECT AREA| - perform edits confined within a pre-selected image area.
   |STACK/LAYER| - make multiple image versions and 'paint' where each version shows.
   |COPY PIXELS 2| - copy areas from one image to another by 'painting' with the mouse.

UNDO EDITS
   +image: undo-edits.jpg
   A previously used edit function can be removed, locally and gradually, by "painting" 
   with the mouse. The mouse pointer will have a circle around it with the given radius. 
   As the mouse is dragged, areas within this circle are gradually restored to the status 
   before the previous edit. Left drag to 'undo' or remove the edit, right drag to 'redo' 
   or restore the edit. The rate of change is regulated by the center and edge power 
   factors. Typically you will use a high value at the center and zero at the edge, 
   meaning that the rate of change will be maximum at the center, changing gradually to 
   zero at the edge of the circle.

   If an edit looks 'overdone' in some image areas only, you can use this function to 
   moderate or remove the edit for selected areas. You can also use |SELECT AREA| to 
   restrict edits to selected areas of an image, rather than 'undo' unwanted areas 
   afterward. Select Area can blend the edges of the edited area to make the transition 
   invisible, but this is sometimes not adequate. You may want a hard edge where there is 
   a hard image feature edge, and a blended edge elsewhere. Select Area cannot do this. 
   To fix the problem, you can omit edge blending in Select Area, and then use this 
   function to blend edges where wanted.

PLUGINS
   +image: plugins.jpg
   An example Plugins menu is on the left. The top entry Edit Plugins leads to the dialog 
   on the right. In this dialog you can define menu names and associated commands for 
   using other image edit programs within Fotoxx. These menus are added to the Plugins 
   menu. The example shown is a menu named "Gimp" which starts the command "gimp %s". 
   The "%s" is a placeholder where Fotoxx will insert the name of a temporary copy of the 
   current file in Fotoxx. The called edit program must process the file and replace it 
   with the edited version. Normally this is done by using the program's File > Save menu. 
   Afterwards, you can use the Fotoxx [Undo] and [Redo] buttons to check the results, 
   perform additional edits with Fotoxx, or use [Save] 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 file but may use only 8 bits. When finished using the external 
   program, save the image back to itself using the File > Save menu, and then exit the 
   program. Fotoxx will pick up the revised file and use it as though the edit had been 
   done in Fotoxx. Note that in Gimp you must use the File > Export menu to save the image 
   back to the original input file (File > Save produces an .xcf file).

   To add a new plugin, input a menu name and the corresponding command in the Edit 
   Plugins dialog and press the [Add] button. Wherever %s is placed in the command, the 
   file to process will be inserted. Some commands may expect an input and output file to 
   be specified. In this case supply %s in both positions (the output file replaces the 
   input file). You may omit %s if the command does not edit an image file. A warning is
   given, which you can ignore if this is really your intention.

   To modify an existing plugin, select the menu name from the drop-down list. The 
   corresponding command will be shown. Modify the command and press [Add]. You can 
   remove a plugin by selecting it and then pressing the [Remove] button.

   A few examples are provided in the initial Fotoxx installation:
      Menu Name       command line
       Gimp            gimp %s
       auto-gamma      mogrify -auto-gamma %s            (Image Magick program)
       Gthumb          gthumb %s

   The plugin menu is saved in the file  [fotoxx-home]/plugins  which you can modify 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.

RAW THERAPEE
   This function is available in the popup menu when a RAW file type is right-clicked, in
   either F-view or G-view. This is a program specialized for editing RAW image files. 
   The program starts with the RAW file loaded. When you are finished editing with Raw 
   Therapee, save the edited image as a 16-bit TIFF file with the same base name as the 
   RAW file, then exit Raw Therapee. Fotoxx resumes and opens the TIFF file. Fotoxx looks 
   for the TIFF file in the RAW file folder. If it is not found there, it searches all 
   declared top image folders and their subfolders for a TIFF file with the same base 
   name as the RAW file.


ENHANCE MENU
   +image: enhance.png

VOODOO 1
   This is a fast automatic image enhancement with limited capability. This is sometimes 
   effective and "good enough" for rapidly processing many photos. There is no dialog - 
   the modification is simply done when the menu is selected. Reject the change with the 
   [undo] button if desired. The modification consists of a slight flattening of the 
   brightness distribution, an expansion of the brightness range if less than the full 
   range is used, and a slight increase in the color saturation, more for darker areas 
   of the image than brighter areas. The effect is sometimes minimal or even negative.

VOODOO 2
   This is an alternative automatic enhancement, using the flatten method described below.

BRITE DIST
   +image: adjust-britedist.jpg   +image: adjust-britedist2.jpg
   With this function you can directly alter the shape of the brightness distribution. 
   Move the sliders and watch the image to find the optimum settings.

   Cutoff: If the distribution is low or zero at the dark or bright end, you can stretch 
   the distribution to make it extend more into the dark or bright end, or both.

   Flatten: This is a fast and easy way to compensate for a common limitation in photos: 
   the brightness range is inadequate and details are lost in image areas having nearly
   the the same brightness. Pixel brightness is redistributed so that each brightness 
   level is more equally represented. Technically, the brightness distribution is made 
   more uniform (flatter). The selected low/mid/high brightness region is flattened.

   Stretch: The selected low/mid/high brightness region is broadened, which necessarily 
   squeezes adjacent areas. For example, if you broaden the low brightness region, darker 
   areas of the image will have more contrast at the expense of brighter areas. 

GRADIENTS
   +image: gradients.jpg   +image: gradients2.jpg
   Gradients 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. Gradients increases the contrast between nearby pixels without increasing 
   the overall contrast. It relies on a characteristic of human vision: contrast within a 
   small angle is perceived more strongly than contrast over a large angle. Gradients can 
   bring out subtle details (low contrast) that would otherwise be hard to notice. Other 
   methods can also be used: |RETOUCH| can increase the contrast for a selected brightness 
   range (at the expense of others). |FLATTEN| can spread available contrast more evenly. 
   These methods operate globally: all pixels of a given brightness are processed the 
   same. Gradients processes pixels relative to nearby 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 corresponds to low-contrast pixels 
   and the right end corresponds to 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 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 ugly artifacts, 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 second or so (depending on image size and CPU speed). The Amplify slider 
   may also need time 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. conservative 
   for sky, more aggressive for textured surfaces like stone walls and vegetation.
   
FLATTEN
   +image: flatten2.jpg   +image: flatten1.jpg
   Flatten enhances visible detail in areas having poor contrast. The revised brightness 
   for a pixel is based on the brightness distribution for nearby areas. A larger zone 
   count corresponds to smaller/closer areas. Flatten controls the strength of the effect, 
   and deband moderates darker or brighter image areas. This function can amplify noise in 
   uniform areas like sky. If the deband control is insufficient, use |SELECT AREA| and 
   |DENOISE|. Alternatively, use Select Area beforehand to select sky (or other areas) to 
   omit, and then invert the selection prior to using Flatten.
    
   \_Technical Explanation\_ (optional)
   The image is divided into area zones according to the input zone count. Each pixel is 
   adjusted based on the 9 closest zones, the 3x3 zones surrounding the zone of the pixel. 
   More zones means smaller and closer zones. The brightness of a pixel is compared to the 
   brightness distributions of the nearby zones, and the brightness is adjusted up or down 
   in the direction that would flatten the distribution of these zones. The influence of 
   the 9 zones are weighted based on their distance from the pixel being calculated. The 
   influence of the leftmost zones goes to zero for a pixel on the right edge of its zone. 
   The same is true for the topmost zones, etc. This prevents abrupt transitions that 
   could be visible. The nature of human vision hides the radical alterations in pixel 
   brightness, since the eye judges the brightness of a spot based on its surroundings. 
   A larger number of zones will make each pixel brightness adjustment depend on areas 
   closer to the pixel.

GLOBAL RETX
   +image: global retinex.jpg   +image: global retinex2.jpg
   Global Retinex can improve color and contrast for images with extreme fog/haze or color 
   cast (e.g. a 100 year-old photo). Try the [Auto] button first. The image is searched 
   to find the brightest and darkest RGB colors present. The darkest RGB values are 
   subtracted from all pixels and the resulting RGB values are scaled up so that the 
   maximum RGB values are near 255. Of course this may not be initially optimum. The spin 
   buttons are set to the dark and white RGB limits found, and you can changes these to 
   optimize the resulting image. You can choose your own dark and bright points by 
   selecting the corresponding option in the dialog and clicking on the image. The 
   multiplier spin buttons are set to 1.0 by default, and you can change these values to 
   adjust the relative brightness of each RGB color. In the above example, the 1st image 
   is the original, the 2nd image was made using the [Auto] button, and the 3rd image was 
   made by selecting a bright spot on the turtle's shell as the bright point and the 
   shadow under the front left foot as the dark point. The rightmost column of spin 
   buttons will adjust all buttons in the same row together - use the mouse wheel or the 
   keyboard up/down arrow keys.

   The blend slider is used to mix the input image and the retinex image in any ratio. 
   The reduce bright slider is used to attenuate the effect for brighter image areas, 
   especially sky, where Retinex can produce strange looking results.

   The algorithm was derived from concepts first published by Edwin Land in the 1970s.
   Search the web for 'retinex' to find more information.

ZONAL RETX
   +image: zonal retinex.jpg  +image: zonal retinex2.jpg
   Zonal Retinex can increase visible details in dark image areas and other areas having 
   low contrast. The brightness range of a zone around each pixel is used to rescale the 
   pixel brightness as though the entire zone were rescaled to cover the entire 0-255 
   brightness range. Zonal Retinex can produce dramatic results where Global Retinex is 
   weak.
 
   The blend slider is used to mix the input image and the retinex image in any ratio. 
   The reduce bright slider is used to attenuate the effect for brighter image areas, 
   especially sky, where Retinex can produce strange looking results. The example above 
   is about 60% original image + 40% retinex.
   
   Zonal Retinex needs lots of memory: a 30 megapixel image uses about 4.7 GB.

SHARPEN
   This function has four methods to sharpen a blurry image.
   +image: sharpen.jpg  +image: sharp-comp.jpg

   Unsharp mask: a fast and effective method also found in other image editors. 
   A technical description can be found with a web search. This method can make visible 
   'halos' around high-contrast edges.

   Gradient: steepens brightness transition areas directly, somewhat like the Gradients 
   function. Effectiveness is comparable to unsharp mask, but 'halos' are reduced.

   Kuwahara: small neighborhoods of pixels above, below, left and right of each pixel are 
   compared to each-other. The pixel is given the mean color of the neighborhood with the 
   smallest variance in brightness. This forces pixels on a blurry edge to move to one 
   side of the edge or the other. Edges are made very sharp. Image may appear 'blocky' 
   if a large radius is used. Subtle details can be lost. 
    
   Mean diff: pixel brightness is compared to the mean of pixels within radius. The 
   brightness is increased or decreased for pixels respectively brighter or darker than 
   the neighborhood mean. Effectiveness is comparable to unsharp mask, but 'halos' are 
   greatly reduced. This is the only method that works on each RGB color separately. It 
   can sharpen a color transition even if there is little brightness change.
    
   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. 
   Amount controls the strength of the modification. Threshold suppresses changes to 
   low-contrast pixels: a higher values reduces the amplification of low-level 
   irregularities (image noise, uneven skin tones, etc.).

   Choose the method, set the parameters, press [apply] and wait a few seconds to see the 
   result. 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 an image with different methods and parameters.

BLUR
   +image: blur.jpg  +image: blur2.jpg
   Choose a method with the corresponding check-box, input the required parameters, 
   press [apply]. If |SELECT AREA| is active, only the selected areas are affected.
      • Normal
        Mix each pixel with surrounding pixels within radius. 
        Closer pixels have a higher weight.
      • Radial
        Mix each pixel with pixels along a line from a chosen center. Length sets the 
        size of the lines. Choose the center by clicking on the image.
      • Directed
        Pull a position on the image using the mouse. The area around the mouse will be 
        blurred in this direction. Span determines the size of the area blurred. 
        Intensity determines the strength of the blur.
      • Graduated
        Only pixels with less contrast than the given contrast limit are blurred, and the 
        blur radius ranges from 1 to the given value for pixels with a corresponding 
        contrast ranging from the given limit to zero. In short: low-contrast pixels are 
        blurred more than high-contrast pixels. This can be used to smooth skin tones 
        without blurring hair or reducing the sparkle in the eyes. Taken to extremes, it 
        produces a "cartoon" effect. 
      • Paint
        Blend image pixels together by painting with the mouse. Radius sets a circle 
        around the mouse pointer which shows the image area being blended. Use left drag 
        to blend, right drag to restore. Power determines how fast the image is blended 
        or restored, at the center and edges of the circle.
      • Background
        A new dialog is started. Blur the background image while leaving the foreground 
        sharp. Use Select Area to select one or more areas that are to remain sharp. 
        After selecting the foreground areas, invert the selection so that the background 
        is now selected (menu Areas > Invert) - this area is the one that will be blurred. 
        There are two blur methods available: Constant blur: a constant blur radius is
        used for all areas blurred. Increase blur with distance: use the minimum blur 
        radius for pixels adjacent to the foreground and the maximum blur radius for 
        pixels at the maximum distance away from the foreground. This requires that the 
        edge distance for all background pixels be calculated, which can take significant
        time for a large image. This is done automatically if required. Blur radius can 
        be varied without recalculating the edge distances. Tilt-Shift Effect: You can do 
        this by selecting a horizontal rectangular area to remain sharp, and increasing 
        the blur with increasing distance from this area.

DENOISE
   +image: denoise.jpg
   This function reduces the noise in photos taken under poor lighting conditions 
   (high ISO), making uniform surfaces appear speckled. Multiple methods are provided 
   because the best method varies with noise characteristics. Mixing methods (using one 
   and then another) is often helpful. Choose the method, set the radius and threshold 
   parameters, and press [apply]. Each new [apply] uses the modified image from the 
   previous [apply], so each use will have increasing impact. With a large image, some 
   methods may be slow. To save time, select a small but important area and experiment 
   with the different methods and settings until you make a decision, then apply the 
   chosen method to the entire image.

   The threshold value is the pixel brightness difference above which no change is made. 
   The initial value is set from a preliminary noise analysis of the image. Threshold 
   regulates a tradeoff between noise removal and loss of detail. The threshold value for 
   the Wavelets method is different. A value of 1 or less is appropriate for images with 
   low noise. Use a higher value if the noise is greater, but some loss of detail may be 
   noticeable.

   The dark areas slider can be used to restrict the process to darker image areas, which 
   are most prone to noise. If left at the right end, all areas are processed.

   Here is a short technical description of each method:
      • Voodoo
        This is a fixed combination of the other methods to serve as a "one button" 
        method. Try this first. It should be adequate for most cases.
      • Chroma
        This works like Anneal, but uses the YCbCr color space instead of RGB.
      • Anneal
        Pixels are blended with surrounding pixels that have similar color and 
        brightness. This reduces noise with minimal blurring of feature edges.
      • Flatten
        Pixels are compared to the mean and sigma of pixels within a radius.
        Those outside one sigma are moved slightly back toward the mean.
      • Median
        Pixels are set to the median value of their neighbors within a radius.
        Best way to remove 'salt and pepper' noise - set threshold to maximum.
      • Top Hat
        Detect outliers by comparison with surrounding pixels at a distance.
        The distance is increased in steps from 1 pixel to the radius limit. 
        Outliers are flattened slightly.
      • Wavelets 
        RGB brightness (with noise) is converted into a series of wave functions that
        nearly sum to brightness and represent an approximation with less noise.

   The wavelets algorithm was adapted from code originally written by Dave Coffin.

   The [measure] button starts the lower dialog to measure the actual noise level. 
   Move the mouse over the image to show the RGB noise levels within the mouse circle 
   (radius 10, about 300 pixels). This must be a featureless area so that noise is the 
   only variation present. A gray sky is a good source, or an image area that is badly 
   out of focus. To measure camera sensor noise, use a RAW image, since JPEG images are 
   processed inside the camera to reduce noise. The graph shows pixel deviations from the 
   regional mean. The solid line corresponds to the mean, and the dotted lines are at 
   brightness levels +5 and -5 from the mean, on a scale of 0-255. The center to edge 
   axis is logarithmic from 0 to 10, with 7 at the midpoint. The numbers at the bottom 
   show the mean RGB brightness and noise levels for the area within the mouse. More 
   information about camera noise in RAW images can be found in the |TECHNICAL NOTES|.

RED EYES
   +image: red_eyes1.jpg  +image: red_eyes2.jpg
   This function reduces the red-eye effect from electronic flash photos. Two methods are 
   provided. The first is faster but may not handle difficult cases. 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 more
   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.

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

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

SMART ERASE
   +image: smart-erase.jpg   +image: smart-erase2.jpg
   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. 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 unselects. 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 main menu buttons [Undo] and 
   [Redo] can be used to review all changes. It is likely best to work with an image 
   zoomed to 200% or more. The Blur control adds blur to the replacement pixels. This can 
   reduce visible side-effects, since the replacement pixels may be sharper or have more 
   contrast than the surroundings. Change the Blur setting and repeat the [Erase] button. 
   The [show] and [hide] buttons can be used to show the outline of the current selection 
   or hide it to better judge the results after erasing.

   For long thin objects (e.g. power lines), you can click on two ends and everything 
   in-between will be selected. The selection works in a straight line, so for curving 
   objects you will need to click at intervals to follow the curve.

CHROMATIC 1
   +image: chromatic1A.jpg   +image: chromatic1.jpg
   Fix lateral chromatic aberration - the type where color fringes appear mainly in outer 
   image areas. See below for axial chromatic aberration. If you are not sure which 
   function to use, try this one first since it is fast and easy compared to the one 
   below.

   The left image above is a magnified cutout of the top left corner of a photo with 
   lateral chromatic aberration. This was mostly eliminated in the processed image to the 
   right. Color fringes can appear along high-contrast edges, especially in the outer 
   image areas where lens distortions are usually greatest. To get rid of them, zoom the 
   image to a maximum size and center on an area with color fringes. Press the [search] 
   button. The red and blue color planes are shifted to better align with the green plane, 
   and the factors used are stuffed into the dialog box. You may be able to improve the 
   result by revising the factors directly in the dialog: use the up/down arrow keys or 
   mouse wheel to change the factors while watching the color fringes on the image. Modify 
   the largest values (2.4 and 3 in the above example).

   Important: this function will not work well if the image has been trimmed so that the 
   image center is no longer the same as the center of the original photograph.

   \_Method\_ (optional, for geeks):
   The red and blue components of each pixel are shifted using the formula 
       R2 = F1 * R1  +  F2 * R1 * R1  +  F3 * R1 * R1 * R1
   R2 is the shifted distance from the image center, R1 the original distance, F1 - F3 
   are the factors to be discovered for each color red and blue. For a perfect image,  
   F1 = 1  and  F2 = F3 = 0. The algorithm tests a range of values for F1 - F3, and 
   retains the best values found. In each test, the image red or blue plane is warped 
   using the formula for R2, and the warped plane is subtracted from the green plane. 
   The best values for F1 - F3 are those where the sum of the absolute pixel differences 
   is minimum: the warped red and blue planes overlap the green plane most accurately.

CHROMATIC 2
   +image: chromatic2A.jpg  +image: chromatic2.jpg
   Fix axial chromatic aberration - the type where a narrow color band runs along 
   dark/bright feature edges, or where narrow dark features are discolored by a bright 
   background. The cause can be camera lens aberration, light scattering, or the camera 
   sensor and its data processing.

   Select each of the three check buttons in turn, and click on the image to select the 
   corresponding color. Set the proximity value. Press [Apply]. Pixels at or near the 
   chromatic color will be replaced (hue only) with the replacement color, but only where 
   the background color (or near match) is closer than the given proximity in pixels. The 
   default 10 is normally OK. The point here is to avoid changing unrelated pixels in
   other image areas. You will normally have to select a new chromatic color and press 
   [Apply] multiple times, since only a narrow band of matching colors will be changed. 
   Click the chromatic color at any position that remains unchanged, and press [Apply] 
   again, until all the colored pixels have been replaced. In the above example, with 
   multiple shades of pink and green, 11 different selections were made over a time 
   of about 2 minutes. The [Undo] button will reverse the previous [Apply], and can be 
   repeated to reverse multiple changes. Color match level sets the sensitivity of the 
   color match. If unwanted pixels get changed, undo the change and set a more exact match 
   level, e.g. 80 instead of the default 70, and repeat the [Apply] step. This match level 
   is also used for matching the background color.

   Tip: Use |SELECT AREA| to confine changes to an intended area. After completing the 
   edit, you can also use the Undo Edit function to remove changes from unwanted areas.

VIGNETTE
   +image: vignette.jpg
   This function is used to correct the darkening sometimes seen in the corners of a 
   photo. It can also be used to highlight or colorize an object or area within an image.
   
   Click or drag the mouse on the image to change the vignette center, which is initially 
   at the center of the image.

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

   Select Color to add a chosen color to the image in a radial pattern. Curve values of 
   zero represent no change, and higher values add the chosen color to the image. The 
   highest value corresponds to 100% color. Use this function to add a color surround to 
   an image, e.g. surround a face with a gradually increasing color.

   \_Irregular Vignette
   +image: vignette2.jpg
   You can make a vignette with arbitrary shape as follows:
      • Select Area - select the image area to remain visible
      • Invert the area to select the areas outside the image
      • Set a blend width value for the edge fade-out width
      • Keep the Select Area dialog active
      • Paint Image - paint the outside areas with the desired color
         (the image edges will fade-out over blend width pixels)
      • Adjust the blend width value and paint again until satisfied

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


EFFECTS MENU
   +image: effects.png

SKETCH
   +image: sketch.jpg
   This function transforms a photo into something like a sketch. Dark pixels are 
   aggregated into fewer pixels, leaving vacated areas brighter. Contrast can also be 
   used as a proxy for dark pixels. Threshold can be used to filter the input image by 
   brightness. Clip Level is used to filter the output to further reduce isolated or 
   marginally dark pixels. Choose colors for foreground and background. Two algorithms 
   are provided. Results may look more interesting with one or the other. Reducing the 
   size of the input image may also give more interesting results.

CARTOON
   +image: cartoon.jpg
   Transform a photo into a cartoon-like drawing. Black lines are drawn over feature 
   edges in the image, wherever the brightness or color changes abruptly. Line Threshold 
   sets the sensitivity for edge detection and line drawing, causing fewer or more lines 
   to be drawn. Line Width makes the lines thicker or thinner. Blur Radius controls a 
   blur function which can make the lines look more curvy or less jagged. Kuwahara Depth 
   controls a sharpen function which can strengthen feature edges within the image.

   This function can be quite slow to respond (10+ seconds) if the image is large and if 
   the blur and kuwahara controls are set to high values. It works faster and better on 
   smaller images, around 2 megapixels or less. I suggest you start with small values 
   (2-3) for kuwahara and blur, then adjust line threshold to optimize the density of the 
   drawn lines. Now change kuwahara and blur in small steps and re-adjust line threshold. 
   If you are working with a large image, I suggest you select a small but important area 
   within the image so that optimization can proceed faster. Then delete the area and do 
   the entire image. You may be close to optimum already.

   Other edit functions, applied before or after Cartoon, may enhance the effect. These 
   include color saturation, gradients, color depth, texture, warp curved, graduated blur 
   (3rd image above). Paint and Copy Pixels are useful to remove minor flaws manually. 
   Shadows in the image are a particular problem, since they cause lines to be drawn 
   where normally not wanted.

LINE DRAWING
   +image: line-drawing.jpg
   This function transforms a photo into a line drawing showing outlines of objects within 
   the image. Feature 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. 
      • Threshold: how bright a feature edge must be in order to get enhanced, from 
        "no edges" at the low end to "all edges" (even faint ones) at the high end. 
      • Width: width of the enhanced edges, from 1-pixel to about 5 pixels. 
      • Brightness: brightness of the image itself, from dark (show only outlines) 
        to full brightness. 

   The black/white checkbox converts the image from color to black and white, and the 
   negative checkbox makes a color negative image.

EMBOSS
   +image: emboss2.jpg    +image: emboss.jpg
   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. The upper 60% of this image was embossed.

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

DITHER
   +image: dither1.png  +image: dither2.png
   +image: dither3.jpg
   This function provides several ways to dither an image - convert into dots.
      • dither 0 - colored round dots in the style of Roy Lichtenstein
      • dither 1 - pure bright RGB dots with optimized distribution
      • dither 1 - black/white dots with optimized distribution
      • dither 2 - classic dither using all RGB colors within a limited bit depth
      • dither 3 - classic dither using a custom palette of colors

   The classic dithers use the Floyd-Steinberg method of compensating for color errors:
   mismatch between an input image color and the closest color from the palette. Dots with 
   nearby colors are mixed-in as needed so that the average over an area more closely 
   matches the input color. The error compensation can be turned off if wanted, to get 
   distinct color bands or contours.

PAINTING
   +image: painting1.jpg  +image: painting2.jpg  +image: painting3.jpg
   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.

   \_color depth
   Set the number of colors to use: 1 = 8 colors, 2 = 64 colors ... 5 = 32768 colors

   \_patch area goal
   Set 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.

   \_required color match
   Set 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 (minimum 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 |EMBOSS| can 
   add interesting texture to the image.

TEXTURE
   +image: texture.jpg    +image: texture2.jpg
   This function adds a textured surface to an image or selected areas within an image. 
   Radius determines the texture pattern size. Strength determines the intensity of the 
   pattern, from almost invisible to dominant.

PATTERN
   +image: pattern2.jpg    +image: pattern1.jpg
   Add a background pattern to an image. A small image file (pattern file) is used to 
   cover the current image by duplicating the file, like a tiled wall. This file can be a 
   real pattern (e.g. an image of canvas cloth, a brick wall, a repeating geometry ...), 
   or any other kind of image. The pattern is made semi-transparent, so that the base 
   image appears to be printed over the pattern, or the pattern over the image. Many 
   pattern files can be found using a web search for "pattern image". Download some of 
   these and trim them if needed to a size around 200-500 pixels. For convenience, add 
   these to the supplied pattern files in [fotoxx-home]/patterns.

   Use the [Browse] button to select a pattern file. The selected pattern will be tiled to 
   cover the base image. The pattern is partly transparent so that the base image shows 
   through. Use Zoom to grow or shrink the pattern size. There are two methods to mix the 
   pattern with the base image. The pattern opacity can be set 0-100%. The base image is 
   used to fill the unused opacity - e.g. if the opacity is set to 30%, then the final 
   image will be 30% pattern and 70% base image. Contrast is used to modify the base image 
   brightness using the pattern brightness as a template. The two parameters can both be 
   used and mixed in any ratio.

   If the pattern file contains an image that repeats at fixed intervals both horizontally 
   and vertically, the [Calculate] button can be used to set width and height to match. 
   The result will be a continuous pattern without any edge effects.

   If the pattern is irregular and edge effects appear where the duplicated patterns are 
   joined, you may be able to improve this. The two Overlap values determine how much the 
   duplicated patterns overlap at the edges, horizontally and vertically. Add some overlap 
   to mask edge effects.

   Select Area can be used to apply a pattern to part of an image, or different patterns 
   to different parts. After applying a pattern to an image, it might be interesting to 
   use Emboss or Gradients to add a 3-D effect to the pattern.
   
   The checkbox "Grayscale" will convert a color pattern to grayscale before using it.

   Useful pattern files in LibreOffice: /usr/lib/libreoffice/share/gallery/www-back

MOSAIC
   +image: mosaic.jpg
   Create a mosaic image using tiles made from all your images.

   Specify the tile size in pixels (e.g. 36 x 24) and press [Tiles]. Tiles will be created 
   from all of your images (actually the thumbnail images are used since their small size 
   makes the process run much faster). This needs time (100K/min. on a strong computer). 
   If you change the tile dimensions, press [Tiles] again to regenerate the tiles. After 
   the tiles are created, press [Image] to convert the current image into a mosaic using 
   these tiles. This takes only a few seconds. Tiles are chosen by matching the average 
   tile color to the average image color at the tile position. If thousands of images are 
   available and if the range of colors is good enough, the mosaic will turn out quite 
   good. Zoom-in on any part of the image to see the tile images.

   The Tile blending slider will cause the image to be blended with the tiles, making it 
   look better if the tiles are a bad color match. If the blending is less than about 50%, 
   the tiles remain almost as clear as before (the eye compensates the false tint).

   After a mosaic is created, you can click on any tile to get a larger popup image. This 
   is the full image for the tile, so you can drag the window as large as you like and it 
   will remain sharp. A mosaic image can be saved like any other edited image, but if a 
   saved mosaic is opened, clicking the tiles for a bigger image will not work. 
   Regenerating the mosaic is quite fast, so do this if you want the popups to work.

COLOR MODE
   +image: color-mode.jpg  +image: color-mode2.jpg
   Use this function to make a black and white or color negative, or convert a negative 
   image into a positive image, or convert to sepia coloring (for an aged photo effect).

   Select one of the buttons:
      • reset - return the image to the original state
      • black/white positive - convert a color image to black and white
      • black/white negative - convert to black and white and invert brightness
      • color negative - replace each RGB color with its compliment
      • RGB -> GBR - red/green/blue colors are replaced with green/blue/red colors
      • RGB -> BRG - red/green/blue colors are replaced with blue/red/green colors
      • sepia - convert to a modified black and white for an aged photo effect

   The slider can be used to apply the effect incrementally, from 0% (no change) to 100%.

   Color negative: Each RGB color is replaced with the maximum value minus the RGB color 
   value. For example, if the RGB colors (% of maximum) are 20/40/60, then the negative 
   color is 80/60/40. For pure RGB colors, red becomes cyan, green becomes magenta, and 
   blue becomes yellow.

COLOR DEPTH
   +image: color-depth2.jpg  +image: color-depth1.jpg
   This function changes the normal 16 bits per RGB color to any value between 1 and 16 
   bits per color. At 8 bits per color, there are 16.8 million colors (256 x 256 x 256).

SHIFT COLORS
   +image: shift_colors.jpg
   This function can be used to correct colors or convert an image into false colors. 
   Choose any of the three RGB colors and move the slider left or right from the center. 
   One of the two other colors will be substituted in a graduated manner. For example, 
   you can gradually substitute green or blue for the color red. The All slider shifts 
   all colors together. Do this first to find a first optimum, then shift the RGB colors 
   individually.

ALIEN COLORS
   +image: alien-colors.jpg    +image: alien-colors2.jpg
   Repaint an image or selected area with random alien colors. You can control the rough 
   pattern size and the intensity (from barely visible to dominant).

BRITE RAMP
   +image: bright-ramp1.png  +image: bright-ramp2.png
   This function varies brightness or color across the image. You can use this to 
   compensate for uneven lighting or a color cast that varies across the image. The 
   direction of change is determined by drawing a line on the image. Create the line by 
   clicking on the image, then drag either end to set the direction wanted. In the example 
   above, green is increased in the direction of the line. Edit the All curve first to 
   adjust overall brightness (all colors), then adjust the individual RGB color curves if 
   needed. The image reacts quickly to both line changes and curve edits.

PAINT TRANSP
   +image: paint-transparency.jpg  +image: paint-transparency2.jpg
   Paint transparent or semi-transparent areas on an image. Such areas are useful in the 
   Fotoxx Mashup function, where images or background underneath a transparent area can 
   show through. Other image editors can also use transparent areas.

   The paintbrush radius control sets a circle around the mouse pointer which shows the 
   area being transformed. Left drag on the image to increase the transparency, right drag 
   to decrease. If gradual paint is checked, the strength controls determine how rapidly 
   the transparency changes at the center and edges of the circle. If gradual paint is 
   not checked, transparency is set to 100% (left drag) or 0% (right drag) for the entire 
   area covered by the mouse circle.

   If a |SELECT AREA| is active, only the selected areas are affected.

   An image file having transparency information must be saved as a TIF or PNG file. 
   JPEG files do not support transparency.

MIRROR
   +image: mirror1.jpg  +image: mirror2.jpg
   Choose either horizontal or vertical mirror from the dialog. The image is reversed 
   (mirrored) vertically or horizontally. Repeating the mirror restores the original 
   image. Doing both a horizontal and vertical mirror is the same as 180 degree rotation.

CUSTOM KERNEL
   +image: custom-kernel.jpg
   Apply a custom convolution kernel to an image. The underlying technology is explained 
   in Wikipedia. Input a kernel size, a multiply factor, an add factor, and fill-in the 
   table values. The values can be saved into a file and retrieved later by using the 
   [Save] and [Load] buttons. [Apply] applies the kernel to the image. [Reset] restores 
   the original image status. Several kernel example files are available initially. 
   You can modify these and save with a custom name. 

   Math: the brightness values for each N-by-N block of pixels in the image are multiplied 
   by the corresponding values in the kernel matrix and added together. This number is 
   multiplied by the multiply factor, and the add factor is added to it. This final value 
   becomes the new brightness level for the image pixel at the center of the N x N block.


WARP MENU
   +image: warp.png

UNBEND
   +image: unbend2.jpg     
   +image: unbend3.jpg  +image: unbend1.jpg
   Panoramas of nearby subjects (typically buildings or interior rooms) may show straight 
   lines that are curved, or buildings that are slanted. Warping the images was necessary 
   in the panorama process in order for the images to fit together. The Unbend function 
   can be used afterwards to straighten the panorama image if needed. 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. If values in the four input controls 
   are changed, the image is warped in the manner indicated by the corresponding four 
   images. Increase or decrease the values and repeat until satisfied. Move the axes 
   to change the centers of warping.

   See also |WARP IMAGE| for another method of correcting image curving and perspective.

PERSPECTIVE
   +image: fix-perspective.jpg
   This function can be used to straighten a photo made from an offset angle. The image on 
   the left is the original photo, taken from right of center to avoid reflections. The 
   image on the right is the straightened version. This function can also be used to 
   straighten a high building photographed from street-level or from the side.

   Click on the four corners of the tetrahedron that you want to make into a rectangle 
   (in the above case, the four corners of the painting or frame), then select [Apply]. 
   Use [Reset] to go back and try again if needed. The clicked corners are marked with 
   small white boxes containing "A, B, C, D". The upper left corner of each box precisely 
   marks the image position. Clicking near a box will move it to the new position. 
   The [Trim] button will automatically trim the image at the selected corners. The trim 
   and straighten can be undone in sequence with the undo button. You can use the keyboard 
   arrow keys to move the corner markers in 1-pixel steps. The arrow keys work on the last 
   corner clicked or moved.

WARP IMAGE
   +image: warps.jpg

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 is like rubber. If the mouse drag begins within the selected area, then the 
   area is warped within its current boundaries - the movement is maximum at the mouse 
   pointer and declines to zero at the edges of the selected area. If the mouse drag 
   begins outside the selected area, the area edges near the mouse can be pulled out 
   beyond the original area boundary. Many mouse drags of different lengths and directions 
   can be combined to achieve the desired results. When finished, you can select another 
   area and do some more warping, or select [done] to exit the function.

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

WARP LINEAR
   This function is useful to correct perspective problems (see also Unbend). Drag the 
   image from any position, using the mouse. This function works over a broader area than 
   the curved warp and causes less image curvature. To minimize the addition of curvature, 
   drag only from the image corners.

WARP 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". Details can be found with a web search.

UNWARP CLOSEUP
   +image: unwarp-closeup.jpg
   Closeup face photos are often distorted, because areas closer to the camera are larger 
   in the photo than areas farther away. This function can be used to reverse the 
   distortion. Use Select Area to select the face first (does not need to be accurate). 
   Click the image near the center of distortion (above example: between the eyes). Move 
   the slider to optimize. If the face is turned away from the camera, experiment to find 
   the best center.

FLATTEN BOOK
   +image: flatbook.jpg
   This function can flatten a photographed page from a book. If the book is thick, the 
   pages bend downward at the binding, and the photographed text is squeezed together. 
   This function straightens the the page and stretches the squeezed text.
 
   \_Photo Procedure
   First, make the photo as good as possible to minimize the needed corrections. The page 
   curvature can be reduced by holding the book half-opened. Place the camera over the 
   center of the page, so that the top and bottom edge curves look roughly equal. Use lots 
   of illumination to increase the depth of field, to insure the curved-down part of the 
   page remains in sharp focus. Two persons working together can photograph 1-2 pages per 
   minute.
    
   \_Fotoxx Procedure
   First, trim the image, keeping all of the page but little more. Rotate the page if not 
   level. Use Fix Perspective to make the page more rectangular if needed. Start the 
   Flatten function. Click the mouse along the top edge, creating visible marker dots at 
   the clicked points. After 4+ points are available, a curved line is drawn through the 
   points. Add more points and drag the points as needed to make the line conform closely 
   to the page edge. Repeat for the bottom edge. Press [flatten] to flatten the page. The 
   edges should now be straight (or straight enough). The text near the binding is still 
   squeezed together. Expand the text by pulling the top and bottom sliders. The text is 
   spread out in a way that is proportional the the slope of the top and bottom page 
   edges, so the area near the binding is stretched the most. The [undo] button restores 
   the unmodified image and the marker dots, which can be adjusted for a revised attempt.

AREA RESCALE
   +image: area-rescale2.jpg    +image: area-rescale.jpg
   This function rescales an image to a smaller size, leaving selected areas unchanged. 
   The goal is to increase the relative size of the area of interest. The image above was 
   reduced, but the boat in the foreground was left unchanged. 
   
   First, select the areas that are to be preserved using |SELECT AREA|. Press the 
   [proceed] button. The selected area is erased and the mouse cursor changes into a drag 
   cursor. Pull the image inward from the upper left corner. This operation may be 
   repeated as needed until you are satisfied. Press the [done] button. This function 
   works best when the selected area(s) are small in comparison to the entire image. The 
   pixel rows and columns that intersect the selected areas are not changed. Other areas 
   are compressed as the image is pulled inward.

MAKE WAVES
   +image:  make-waves.jpg
   This function distorts an image into a wave pattern, as if viewed through turbulent 
   water. The dialog allows you to change the mean horizontal and vertical wavelengh, 
   amplitude and variance. The "perspective" input allows the wavelengths to gradually 
   lengthen from top to bottom. Like most edit functions, this function also works within 
   a selected area. The flood above is fake.

TWIST
   +image: twist-image.jpg
   This function twists the image around a point chosen with a mouse click or drag. 
   Click the desired position and move the Twist slider the amount wanted. You can also 
   drag the mouse around the image to change the center of twisting. The Center slider 
   untwists the central area relative to the rest. The Angle slider rotates the image.

SPHERE
   +image: sphere2.jpg    +image: sphere.jpg
   Make a spherical projection of an image. Drag the mouse on the image to change the 
   center of the projection (defaults to midpoint). The flatten control modifies the 
   projection gradually from a sphere (right) to a flat image (left). The magnify slider 
   magnifies the resulting image up to 2x. If you want the margins to be transparent, be 
   sure to save the file as .png instead of .jpg (JPEG files do not support transparency).

STRETCH
   +image: stretch.jpg
   Stretch an image from the center outwards. Drag the mouse to choose a central point 
   where the scale will be 1x. 'Flatten' is used to reduce the effect. 'Magnify' is used 
   to adjust the image size.

INSIDE-OUT
   +image: inside-out.jpg
   This function inverts the center-edge distances of each pixel.
   You can click or drag the mouse to vary the center point.

TINY PLANET
   +image: tiny_planet.jpg
   Wrap an image around a circle. 
   If the image is a 360 degree panorama, there will be no visible seam.
      • Center Hole: the image is wrapped around a central hole. The size may be zero.
      • Cut Top: remove a top margin from the input image before conversion.
      • Cut Bottom: remove a bottom margin from the input image before conversion.
      • Reverse R: mirror the input image vertically.
      • Reverse Theta: mirror the input image horizontally.
      • Rotate: turn the output image around the center.

ESCHER SPIRAL
   +image: escher_spiral.png    +image: escher_spiralA.jpg
   Transform an image into an endless inward spiral like the famous clock of M.C.Escher. 
   Width determines the starting width of the outermost layer. Rim determines the starting 
   width of the border separating layers, and Color determines its color. The default
   center is the center of the image. Click on the image to set a new center.



COMBINE MENU
   +image: combine.png

HDR
   \_High Dynamic Range
   +image: HDR.jpg
   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 input images can be tolerated. If things move between shots, 
   ghosting cannot be avoided.
   
   Select the HDR menu function and select up to 9 images (|SELECT IMAGE FILES|), which 
   must all have nearly the same pixel dimensions. The images are aligned and combined 
   automatically. This needs 10-30 seconds per image, depending on image size and CPU 
   speed. When done, the combined image is shown, along with a dialog for 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. 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 remaining images in-between. 
   The curves can be edited by dragging them with the mouse. The corresponding image 
   contributions are changed accordingly, and you can see the results in real-time in the 
   output image. 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. The 
   above example shows two input images and their output image. The curves were adjusted 
   to optimize the brightness for both the foreground and background buildings. It is 
   often useful to apply the gradient function after HDR, to increase the perceived 
   brightness range.

HDF
   \_High Depth of Field
   Combine (overlay) multiple photos of the same subject with different focus settings 
   from close to distant. 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 if the subject 
   is very close. Camera movement can cause scaling and parallax problems (close objects 
   shifted against distant objects). Such problems may be fixable later in Fotoxx, but 
   this may require considerable time. It is better to avoid the problems.

   +image: HDF-paint.jpg
   Processing the photos: in Fotoxx, choose the HDF menu function and select up to 9 
   images (|SELECT IMAGE FILES|). The images will now be aligned as well as possible. This 
   needs 10-30 seconds 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" it with the mouse on any area of the output image. This converts the 
   original image mix to the single selected image for the area being painted. For each 
   area or object in the image, choose an input image that is sharp in that area. The 
   radius of the paintbrush can set larger or smaller, so you can paint large areas 
   quickly and control fine detail when needed. If you have overlapping near and far 
   objects, time and patience will be needed to make all of them sharp. Misalignments can 
   be corrected by selecting the warp option in the dialog. The underlying images can 
   then be dragged and warped with the mouse, and the composite output image is changed 
   accordingly. The warp is limited to the area around the mouse. When a painted area is 
   dragged, the corresponding image is automatically selected and dragged, while areas 
   painted with other images remain fixed. Areas that have not been painted cannot be 
   dragged. Move around to different areas and make incremental drags until all areas are 
   aligned. 

   Suggested Workflow: Using paint mode, choose each image in sequence and paint all areas 
   that look sharp in 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
   +image: stack-paint.jpg    
   +image: stack-paint2.jpg
   Stack (overlay) multiple photos of the same subject taken at different times. Remove 
   tourists and cars that come and go between shots.

   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 two or more photos for each 
   area of the subject not obstructed by the transient objects. Hold the camera steady and 
   aim at the same point, so that the images will align accurately.
   
   Processing the photos: In Fotoxx, choose the Stack/Paint menu function and select up to 
   9 images (|SELECT IMAGE FILES|). The images will now be aligned as well as possible. 
   This may need 10-30 seconds per image, depending on image size and CPU speed. The 
   output image (lower left) is an even mix of the aligned input images (top row). When 
   the alignment is complete, the dialog shown above starts. You can select any input 
   image and "paint" with the mouse on any area of the output image. The single selected 
   image is used for area being painted. For each area in the image, choose an input image 
   that is free from the transient objects. The radius of the paintbrush can set larger 
   or smaller, so you can paint large areas quickly and control fine detail when needed.
    
   Automatic operation: press the [Hide] button to see if transient objects can be removed 
   automatically. This will work for areas in the image where multiple photos of the 
   unobstructed background are available (lower middle image). To show all of the 
   transient objects, press the [Show] button (lower right image). This generally works, 
   but not perfectly. Slight image misalignments or lighting differences (esp. moving 
   shadows) may cause the algorithm to select background pixels instead of foreground 
   pixels. You can use the paint method described above to repair the errors manually.

STACK/NOISE
   +image:stack-noise2.jpg     +image: stack-noise.jpg
   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.
    
   Processing the photos: In Fotoxx, chose the Stack/Noise function and select up to 9 
   images (|SELECT IMAGE FILES|). They will be combined automatically and shown, and 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. The following alternatives
   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 averaging. This 
   may get noise spikes removed from the mix. This has no effect if the median method is 
   selected.

STACK/LAYER
   +image: stack-layer.jpg
   Use this function to combine different edited versions of an image, where you can 
   determine which version is shown in selected image areas. Any images can be combined 
   that have the same pixel dimensions.

   Select up to 9 images of identical size. The initial output image is a blend of all 
   input images. Select an image and use the [Fill] button to fill the entire output with 
   the chosen image. Select an image and use the mouse to 'paint' that image locally in 
   areas dragged by the mouse. The paint area is a circle with Paint Radius around the 
   pointer. The paint speed is controlled by the Opacity settings for the center and edge 
   of the mouse. Use low numbers to paint gradually.

STACK/SLIDER
   +image: stack-slider.jpg
   Two images may be selected. The two images are overlapped and displayed with a movable 
   boundary. The first image is left of the boundary, the 2nd image is right. Move the 
   boundary line by dragging with the mouse. This function is one way to show differences 
   between an original and edited image.

IMAGE DIFFS
   +image: image-diffs.jpg
   This tool shows the differences between two images by subtracting the RGB values. 
   The pixels in one image are subtracted from the pixels in the other image, and 
   negative values are inverted. Where the pixels exactly match, the result is black. 
   The two images can be fine-aligned with the X- and Y-align values. If one image was 
   made by editing the other one, without trimming, rotating or resizing, then align 
   values of zero will show the image differences. The align values can be deliberately 
   offset to produce an arty effect, as in the above example. See also Duplicate Images.

PANORAMA
   +image: panorama.jpg   +image: panorama1.jpg
   This function stitches 2-4 images together to make a wide-angle image or panorama. 
   The images must overlap by 15% or more, so that the program can find where they match 
   and join them together. Start by selecting 2-4 image files (|SELECT IMAGE FILES|). The 
   images are initially joined and shown with a small transparent overlap. A pre-align 
   dialog (above) asks you to drag the images into rough alignment. Drag the images into 
   the correct left to right order. The image to drag may overlap other images. To be 
   clear about which image is being dragged, drag from near the center of the image. After 
   the images are in the correct order, align each image to its left neighbor. It works 
   best to proceed from left to right. Move an image horizontally and vertically into 
   rough alignment with its neighbor to the left, then rotate the image if needed by 
   dragging the bottom edge left or right - the image pivots around the mid-point of its 
   overlap with the image to the left. The fastest method is to align the overlap middle 
   region first, then rotate the right image if needed to bring the upper and lower 
   overlap regions into alignment. Extreme accuracy is not needed. Use the [resize] button 
   to get a bigger combined image after moving them closer together. The images should be 
   correctly curved and fit together well. If they do not, then the lens mm parameter 
   (focal length, 35mm equivalent) needs adjustment. The curvature of the images changes 
   as lens mm is adjusted. The initial value is obtained from the EXIF data if available, 
   and this is normally good enough. You can measure and set lens mm manually using the 
   [search] button described below. If the images have no curvature (e.g. scanned images), 
   use the no curve checkbox to set the lens mm effectively to infinity.

   If an image was trimmed so that the greater dimension (width or height) was reduced, 
   then the EXIF focal length is no longer valid, and the EXIF initial value may not work 
   well. A section of an image taken from the middle has an effective focal length greater 
   than the original. Increase the lens mm parameter until the images fit together 
   reasonably well, or use the [search] button to make a more precise determination 
   (described below).

   The 'no auto warp' checkbox is normally unchecked. Its purpose is described below.

   The 'manual align' checkbox will use the manual pre-alignment as the final alignment. 
   This is for images that have no clear features to match and align the images 
   automatically.

   Press [proceed] when pre-alignment is finished, and the program will do fine alignment 
   and join the images. Internally, the images are shifted and rotated and the degree of 
   match is evaluated. This is done with increasing image sizes until the best alignment 
   is found. This may need a minute or more, depending on CPU speed and image size. You 
   can speed up the process greatly if you reduce the input images to 1/2 size. Do this 
   also if the process fails for lack of memory. Panoramas with 4 large images can require 
   2+ GB of memory during processing.

   +image: panorama2.jpg
   When fine alignment is complete, the combined image is displayed. The above dialog is 
   started for fine adjustment of brightness and color match. You may see a sharp border 
   between images if the images do not have the same brightness and color balance. Use
   the [auto color] button to perform an automatic color match, which is often adequate
   by itself. Use this button multiple times to get improved matching at the expense of 
   greater color shifts that could add a false color tint. Restore the original image 
   colors with [file color]. The image selected with the Select Image radio buttons is 
   the starting image for the auto color matching. Reset using [file color] and select 
   a different starting image to see results that may be slightly different. The RGB and
   brightness color controls allow you to make additional changes to better match the 
   images. Select one of the images with the radio buttons, change the brightness and 
   color values, 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 overlaps, 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.

   If the images do not align perfectly, you may be able to improve the alignment by using 
   the mouse to push the images into alignment. In the final dialog, select mouse warp, 
   select which one of the images with the radio buttons, and then drag the mouse along 
   the edge of the image where it should align with its neighbor, moving the image into 
   alignment. The image is moved locally around the mouse while more distant parts stay 
   fixed. Parallax shifting will require a compromise, since it is generally not possible 
   to keep both foreground and background in alignment.

   The flatten image control can be used to "unbend" the image, which will straighten 
   curved lines (e.g. curved buildings). A value of zero has no effect and a value of 
   1.0 will fully flatten the image.

   When done, use |UNBEND| , |WARP IMAGE| , |TRIM/ROTATE| etc. for final adjustments. 

   \_Scanned images
   Scanned images can be combined if there is enough overlap. Check "no curve" since 
   there is no curvature.
    
   \_Auto Warping
   The images are slightly warped in various directions during alignment to find the best 
   match. This is to compensate for shifts in camera horizon or rotation, causing image 
   distortions that reduce the quality of fit. If the overlap area of two images includes 
   a large object that moved in or out between the two photos, the alignment process may 
   go crazy trying to match the images, resulting in alignment that is very poor. By 
   selecting no auto warp you may be able to get the alignment to succeed or have a 
   smaller error. Another option is to select manual align.
    
   \_Setting lens mm Automatically
   The [search] button in the panorama pre-alignment dialog initiates an automated search 
   for optimum lens mm. 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. After doing a decent pre-align, press the [search] button and wait a while for 
   the results. Do this a second time and compare. If lens mm remains consistent, you can 
   use it for your panoramas. The search function steps through a range of values for 
   lens_mm and the image alignment offsets for x, y, and theta. It searches for the lens 
   value 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 
   and focal length (zoom setting). Use the [save] button in the 1st dialog to put the 
   focal length back into the image EXIF data.
    
   \_Setting lens mm Manually
   Make a panorama image of a brick wall (or any wall with lots of detail). The wall 
   should be 5+ meters away. Take two photos with about 40% overlap. Within the panorama 
   pre-align process, adjust lens_mm until 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 your lens mm may not be 
   optimal. The result should roughly correspond to the nominal focal length of your lens 
   (35mm equivalent). It may be off somewhat (my 27mm lens works best with a lens_mm 
   setting of 29-30mm). I speculate that this is because wide-angle camera lenses are not 
   ideal lenses (pinhole equivalent). Most panoramas will still work well even if the 
   lens_mm setting is off by 10%.
    
   \_Color Matching Problems
   If the images in a panorama have a large brightness difference, the automatic color 
   matching may not work well enough. The most common problem is false sky colors. You 
   may be able to improve this by brightening or darkening an input image to more closely 
   match its neighbors. Sky can be easy to fix by selecting the false areas and copying 
   sky from elsewhere in the image (|COPY PIXELS 1|). It seems to work better if you 
   brighten the darker image instead of darkening the brighter one. You can do this in 
   the final dialog as described above, or you can do this before starting the panorama.
    
   \_Panorama Limitations
   Panoramas including nearby objects can be tricky: when making the photos, be careful 
   to turn the camera on an axis through the lens, with minimum lateral movement, 
   otherwise the images may align poorly because foreground objects are shifted 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. Keep the camera level 
   to avoid a large vertical shift (horizon shift), which can cause image distortions 
   that may not be fully corrected. Avoid rotating the camera for the same reason.

VERT. 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 works best to align 
   from the top down.

PT PANORAMA
   The Panorama Tools utilities (included in the Hugin package) have been integrated into 
   Fotoxx under the menu PT Panorama. The user interface is very simple: select the input 
   images in any order (|SELECT IMAGE FILES|) and proceed. Everything else is automatic. 
   After a minute or so the finished panorama is shown and is now the current file in 
   Fotoxx. The file name is <first input file>-PT.tif. This is an 8-bit TIFF file and is 
   very large. To save space, save the file as JPEG and delete the original TIFF. Panorama 
   Tools usually does a fine job, but I have noticed minor alignment errors in some cases, 
   usually too small to notice. It may be possible to eliminate these by using the full 
   features of Hugin directly instead of the automated script used in Fotoxx. They may 
   also be fixed using Mashup - see the related paragraph in Mashup, below.

MASHUP
   +image: mashup.jpg
   Arrange multiple images and text in a layout. Images can be added, resized, rotated 
   and moved around by dragging with the mouse. Images can be made entirely or partly 
   transparent in selected areas. Text can be added, moved, resized and rotated. Text 
   attributes can be specified: font, size, color, outline, shadow, transparency. Lines 
   and arrows can be added. The example here shows some of the possibilities.

   +image: mashup1.jpg
   In the first Mashup dialog, choose a background or layout image where other images will 
   be placed. Choose an existing image or create a new monotone image with a specified 
   size and color. You may also open a previously saved mashup project and continue 
   editing.

   +image: mashup2.jpg
   The 2nd Mashup dialog is a choice: edit images, edit text, edit lines and arrows, 
   rescale to a larger size, save the completed composite image (Done) or abandon the 
   image (Cancel). The first three choices lead to dialogs to perform the respective 
   edits. Each of these return to this dialog when done, so you can add or modify images, 
   text, and lines/arrows in any sequence. Rescale is explained below.

   +image: mashup3.jpg
   Use this dialog to select and place images on the layout and revise their appearance: 
   size, rotation, position, and transparency. An image may be partly or wholly 
   transparent, overall or within specified areas. This means that the background image 
   or an overlapped image can show through the transparent areas. The Add button leads to 
   a gallery file selection dialog (|SELECT IMAGE FILES|). Selected images are placed on 
   the layout. After the images are added, click on any image to select for modifications. 
   Drag the image from the middle to position the image in the layout. Drag the lower 
   right corner to resize the image. Use the dialog controls to adjust the image. The 
   dialog controls operate on the last image added, clicked or dragged. The 'Prev' and
   'Next' buttons cycle through the images one at a time, flashing the selected image. 
   This can be used when overlapped images make it difficult to select the desired image 
   by clicking it. Scale resizes the image. Angle rotates the image. The Stacking Order 
   buttons raise or lower an image relative to other images - this determines which 
   overlapping image will be on top. Base Transparency is used to make an entire image 
   partly transparent. The [paint] button is used to make any part of an image partly or 
   fully transparent, using the Paint dialog below. The [warp] button is used to bend or 
   warp an image, using the Warp dialog below. The black margins checkbox can be used to 
   remove black margins left by other edit functions, e.g. warp. These will be made 
   transparent. The Margins controls can be used to make image edge areas transparent. 
   The Hard margins cut off image edges. The Blend margins make the edges partly 
   transparent to blend them into the background or other overlapped images.

   +image: mashup4.jpg
   "Paint" more or less transparency for selected image areas. Click on an image to 
   select it. The mouse will have a circle around it to show the range of action. Use 
   radius to adjust the size of the circle. Left-drag the mouse over the image to make 
   it transparent in the areas covered by the circle. Right-drag to make it opaque. If 
   Gradual is checked, transparency changes are made slowly as the mouse is dragged. 
   Specify a power value for the mouse center and edges to regulate the change rate.

   +image: mashup5.jpg
   Click this dialog to insure it is active, and click on an image to select it. Drag the 
   image with the mouse - the image will warp or stretch locally in the direction of the 
   mouse (like sheet rubber). The area of warping is roughly given by warp span, which is 
   a fraction of the image size. Each drag is a step that adds to previous steps. Recent 
   steps can be reversed with [undo last], and the unbent image can be restored with 
   [undo all].

   +image: mashup6.jpg
   The Edit Text dialog is used for placing text on the layout. Enter some text and press 
   Add. You are asked to click on the layout where the text will be added. Drag it into 
   position, then use the dialog controls to set font, size, color, angle, background 
   color, outline size and color, shadow size and color, and transparencies for each of 
   these. Drag the text to a new position at any time. Click on any existing text to show 
   its properties in the dialog and revise them. Click on a text and press Delete to 
   remove it. When done editing, press Done to return to the 2nd Mashup dialog.

   +image: mashup7.jpg
   The Edit Line/Arrow dialog is used for placing lines or arrows on the layout. It works 
   very much like adding text. Enter a length and width and press Add. You are asked to 
   click on the layout where the line will be added. A line is placed on the layout, or 
   an arrow if one of the Arrow head options is checked. Drag the line/arrow to the 
   desired position. Adjust length, width, angle and attributes (background, outline, 
   shadow) using the dialog. You can also drag either end of the line/arrow to set the
   position of that end, while leaving the other end fixed.

   You can use the mouse to move and resize objects in the layout:
      • click the object to select it - it flashes to confirm the selection.
      • drag from the approximate center to position the object.
      • drag the image or text lower right corner to resize.
      • for a line/arrow, drag either end to move that end only.

   The keyboard arrow keys can also be used to move the currently selected object in 
   1-pixel steps.

   You can also add images saved by |SELECT AREA|. In the Edit Images dialog, press [Add] 
   to start the file selection dialog. Use the [Top] button in the gallery window, select 
   'saved_areas'. Open any of the .png images found there. The original area outline is 
   used, and edge blending works from these edges.
    
   \_Mashup project files
   You can save a project and open it later to continue editing. However, the project file 
   will open successfully only if the layout image and all the overlay images are still 
   available in their original locations. The Mashup project is rebuilt using these images 
   and some saved metadata in the project file: image and text locations, scales, 
   transparency, etc.
     
   \_Mashup Rescale
   Working with a very large layout (over 20 megapixels) can be quite slow, especially if 
   the PC is not very strong. Dragging a large overlay image can be slow and jerky. You 
   can work much faster if you use a smaller layout to build the project, and then make it 
   larger after you are finished. There is no loss of resolution in the final image, since 
   the overlay images and text are regenerated from the inputs (e.g. an image that was 
   scaled to 0.2x in the initial layout is rescaled to 0.6x if the layout is magnified by 
   3x). The original full size image file is used for this rescale. The Rescale button 
   allows you to magnify the project by 2x, 3x or 4x (4x, 9x or 16x by area). There is 
   also a reset option to restore the original smaller project size. With this method, 
   you can work with a 10 megapixel layout and resize it up to 160 megapixels when done. 
   The larger layout can still be worked on directly afterwards, but it will be much 
   slower.
    
   \_PT Panorama Fix
   Mashup can be used to fix minor alignment offsets from PT Panorama. After running 
   PT Panorama, start Mashup (in the same Fotoxx session), and create a flat layout image 
   with a good size for editing (e.g. 3000 pixels wide). Start the dialog for adding 
   images to the layout. Navigate to the folder /tmp/fotoxx-xxx/ where you will find the 
   images left by PT Panorama. They have been color matched and warped to fit together. 
   Add these images to the layout. Check the box to make the black margins transparent. 
   Resize them to fill the layout (all must have the same scale) and move them around to 
   fit together. Zoom the window larger for precise alignment and align the images as well 
   as possible. Small misalignments will persist if the images do not fit perfectly. There 
   may also be brightness or color mismatches at the image edges, but these can be fixed 
   later. Start the Warp Images dialog. Drag the mouse in small steps over a misaligned 
   area to move an image into alignment with its neighbor. Use a small span (e.g. 0.1) to 
   insure that correcting one misalignment does not create others elsewhere. Several 
   cycles of dragging the images in several positions may be needed, but with patience you 
   can make the alignments perfect. If there are visible brightness or color mismatches at 
   image edges, blend these together using the margin blend controls. This should be done 
   only after the alignment has been perfected - otherwise this will cause blurring where 
   the images do not align, making alignment corrections harder to see and control. 
   Lastly, rescale the layout to a larger size if wanted. This does not lose resolution, 
   since the input images are rescaled and the warps are rescaled and re-applied.

MONTAGE
   +image: montage.jpg
   Select many images and automatically join them into a compact format. This is a fast 
   and easy alternative to Mashup, which is harder to use but offers more flexibility to 
   vary the size and position of each image.

   The first dialog is shown at upper left. Frame Width is the width of the frame image 
   that will be created. The height is determined by the number of selected image files 
   and the space required. Frame Margin is the margin size (pixels) around the frame 
   image. Image Columns specifies the number of columns in the frame image (6 in the above 
   example). The number of rows is determined by the number of image files selected. Image 
   Margin is the space between images (pixels). Select the image files to combine 
   (|SELECT IMAGE FILES|). Press Proceed when done. The resulting image will be made in a 
   few seconds (or up to a minute for hundreds of images). This image will typically have 
   a very uneven bottom margin, as shown by the top right image above.

   The Optimize dialog begins automatically. It can rearrange the images so that the 
   bottom margin is more even. Press Start and wait for the image to optimize. You can 
   watch the progress. The function will exit if an optimum is found that makes the bottom 
   margin even within 2 pixels. It may continue to search indefinitely if this goal is not 
   reached. Press Stop to force the optimize function to exit with the best solution found 
   so far. If optimization is successful, you will get even columns as shown in the lower 
   right image. If the bottom edge is still uneven after optimization, you will be asked 
   if you want to add margins to some of the images to make the bottom edge even. This 
   will result in an even bottom edge, but the inside margins will no longer be equal.

   TIP: Optimization works best if the number of images is divisible by the column count, 
   i,e, the same number of images in all columns. It also works better if the number of 
   images per column is at least four (better more). This gives the optimizer enough 
   flexibility to find a solution with an even bottom edge.

   The last dialog appears, shown at lower left. You must now assign a unique name to your 
   montage, one that does not conflict with other montages you have made before. A file 
   save dialog is started, and you can save the new montage file anywhere you wish. If the 
   map option is selected, a map of the included images is also created. This map allows 
   you to click on any image in the montage to get a larger popup image which can be 
   zoomed up to the full size of the original image, using the mouse wheel or F11. This 
   will work now and at any time later, even if the montage file is moved, presuming the 
   map file and the original images are still available. The saved montage file is given 
   a special suffix to make it recognizable as a Fotoxx montage file.

   The full montage file name is: your-assigned-name (fotoxx montage).jpg. 
   If the map option is not selected, "(fotoxx montage)" is not included in the name.
   The map files are stored in [fotoxx home]/montage_maps/.

   Note that the popup image feature is not standard. It will not work outside of Fotoxx.


PROCESS MENU
   +image: process.png

BATCH CONVERT
   +image: batch-convert.jpg
   This function is used to rename, convert, resize, upright and move multiple 
   image files at once. An overlay image can also be added at a selected position 
   (e.g. a title, credit line or copyright notice).
   
   Dialog Inputs
      • Select Files - Select files to convert from gallery windows (|SELECT IMAGE FILES|).
      • New Name - Optional new name with optional inserted text (see below).
      • Sequence Numbers - Starting sequence number and adder for each output file.
      • New Location - Optional new folder location for the converted files.
      • new file type - File type for converted images, or "no change".
      • color depth - specify 8 or 16 bits for tif or png output.
      • max. width, height - Output images will fit within these limits.
      • delete originals - Delete input files after successful conversion.
      • copy metadata - Copy all EXIF and IPTC metadata to the output files.
      • upright - If an image is rotated 90 degrees, upright it (based on EXIF data).
      • sharpen - Sharpen output images using the two supplied parameters.
      • Overlay Image - Add an overlay image at a selected position (see below).
      • Make constant size - Overlay size is independent of image dimensions (see below). 

   \_Plugins
   The new file name may have inserted text: a photo date (from EXIF metadata), a sequence 
   number, or the original file name. Specify what and where to insert as follows:
      • $oldname - The original file name is inserted here
      • $sss - A running sequence number is inserted here. See below.
      • $yyyy $mm $dd - The photo date (year, month, day) is inserted at these positions.

   Example: San Francisco $yyyy-$mm-$dd $oldname $sss
   The input file "Golden Gate Bridge.jpg", with a photo date of May 12, 2014, would 
   convert to the output file name "San Francisco 2014-05-12 Golden Gate Bridge 123.jpg".

   For "$sss", specify the length of the field with the number of 's' characters, 
   e.g. "$ss" will be adequate for sequence numbers up to 99. Leading zeros are added for 
   sequence numbers with fewer digits. Sequence numbers not fitting in the specified 
   length will be as long as needed. Keep in mind that the file name sort order in the 
   galleries is strictly ascii order, so the sequence of numbers 1, 2 ... 9, 10 will sort 
   as 1, 10, 2 ... 9. You can keep the numeric order by specifying a field length of 2 
   ($ss), resulting in the sequence 01, 02 ... 09, 10. 

   Either "$oldname" or "$s..." must be present to insure output file names are unique.
   If New Location is missing or unchanged, delete originals is ignored.
   If an output file already exists, the input file is not converted.
   For an explanation of the sharpen parameters, see the Sharpen function.

   \_Overlay Image
   A small overlay image can be added at a selected position in all the output images. 
   Use the Open button to select the image file. The overlay image will be scaled to 
   'Width' percent of the output image width. The position is selected by clicking one 
   of the 'Position' buttons. If 'Make constant size' is checked, the visual size of the 
   overlay image will be made constant for the selected screen or window dimensions. 
   Without this, a "tall" image that displays with left and right margins would have a 
   visually smaller overlay.

   An overlay image can be used to add a title, credit line or copyright to the converted 
   output images. Prepare the overlay image as follows: Use New Blank Image to create a 
   base image to hold the text. The scale does not matter, so make it larger than needed, 
   say 1000 pixels wide. Use Paint Transparency to paint the base image transparent. Use 
   Draw Text to put the desired text on the base image, using the font, color, and other 
   attributes as desired. Scale the text to fill most of the base image. The text is 
   visible and the base image (background) is transparent. Use Trim/Rotate to remove 
   excess margins if needed. Save the final image. A convenient location is  
   [fotoxx home]/saved_areas, but any folder can be used. This image is now ready to 
   use as an overlay image for Batch Convert.

   \_Albums
   If image files are renamed or moved using Batch Convert, and if deletion of the 
   original image files was also specified, then all albums containing any of the input 
   files are updated to reflect the new file names and folder locations.

   \_Preserving File Sequence
   If you specify a leading sequence number ($s...), the input file selection sequence 
   will be preserved at the output location. Thus you can select image files in a desired 
   order, or use an album with ordered images, and preserve this sequence in the output.

BATCH UPRIGHT
   +image: batch-upright.jpg
   This function uprights image files rotated 90 degrees. It depends on EXIF data to know 
   if a file is rotated. It is much faster than Batch Convert. You can simply select all 
   candidate files and let it find the ones that are rotated. The search speed is about 
   3000 image files per minute on a strong PC. There are two options to specify the files 
   to search. The [Select Files] button leads to a gallery file selection dialog 
   (|SELECT IMAGE FILES|). If 'Survey all files' is checked, all image files in your 
   database will be searched.

BATCH DELETE/TRASH
   +image: batch-delete-trash.jpg
   Select the files (|SELECT IMAGE FILES|). Select the option to delete or move to trash. 
   [Proceed]. Files are listed in a popup report as they are deleted or moved to trash. 
   After all files are deleted/trashed, albums are scanned and deleted files removed.

BATCH RAW
   +image: batch-raw.jpg
   This function converts selected RAW image files to JPG, PNG, or TIF format, using 
   either Dcraw or RawTherapee (|PREFERENCES|). The PNG and TIFF formats have either 8 
   or 16 bits per color. RAW files generally have 8-12 bits per color, and noise beyond 
   that. Therefore use a 16-bit format to keep all of the data available from a RAW file. 
   The difference between 8- and 16-bit color is rarely visible, but a higher color depth 
   provides a greater margin for edit functions that can radically shift the brightness 
   distribution, causing a problem known as "banding" or "posterization".

   Use the [Select Files] button to choose one or more RAW image files from gallery 
   windows (|SELECT IMAGE FILES|). Choose one of the output formats. Choose one of the 
   downsize options if wanted, and set the auto sharpen parameters if wanted. See the 
   |SHARPEN| function for an explanation of these parameters.

   Use the Fix dead pixels [Load] button to select a file that maps dead pixels. These 
   pixels will be fixed in all processed RAW files. See the function |MAP DEAD PIXELS|
   for more details.

   Use the Fix pixel bias [Load] button to select a file that maps pixel-level RGB bias. 
   All pixels will be processed to reduce this bias. See the function |MAP PIXEL BIAS|
   for more details.

   The image files are converted one at a time and displayed in the main window. Depending 
   on the number of files, this can take a long time (a strong PC does about 30 files per 
   minute using Dcraw and TIFF-16 output). PNG-16 produces much smaller files than TIFF-16 
   because the files are compressed (with no quality loss). This also needs more time to 
   do the compression work.

   There are two programs available to convert RAW files, Dcraw and RawTherapee. Dcraw is 
   faster and RawTherapee may sometimes produce better results. This may not matter if 
   you intend to edit the images manually. See |PREFERENCES| and |EDIT WORKFLOW|.

BURN DVD/BRD
   +image: burn_DVD.jpg
   Select any number of image files and copy them to a DVD or BlueRay optical disc.
      • Insert a blank disc and wait for the initial clatter to finish. A message may 
        appear asking you what to do with the blank disc, or a program may start which 
        the window manager thinks you want to run. Dismiss this window or program.
      • Start the Fotoxx Burn function.
      • The [Select Files] button starts a dialog for selecting image files to be copied 
        (|SELECT IMAGE FILES|). Keep within disc capacity (DVD 4.7 GB, BlueRay 25 GB).
      • Select a DVD/BlueRay disc drive to use from the drop-down list (even if only one).
      • Press the Start button. The list of selected image files is sent to growisofs.
        (an optical disc recording utility).
      • Progress is shown in a popup window, along with any growisofs error messages.
        The job will fail right away if the selected files do not fit on the disc.

   The resulting disc is frozen. Leftover space cannot be used later to add more images.
 
EXPORT FILE LIST
   +image: export-file-list.jpg 
   This function is used to create a file containing a list of image files. These are 
   fully qualified file names, one per line in the text output file. This has no use 
   inside Fotoxx. If you need to select images to feed into a shell script or another 
   program, this is the way. The [Select Files] button starts a dialog for selecting 
   files (|SELECT IMAGE FILES|). Use the Browse button to select or define the output file.

EXPORT FILES
   +image: export-files.jpg
   This function copies selected image files to another folder. This could be used for 
   copying files to a thumb drive, uploading files to a photo web service, etc. Select 
   image files by clicking gallery thumbnails (|SELECT IMAGE FILES|). Select a folder 
   where the image files will be copied. If 'export metadata' is selected, a limited set 
   of metadata is also copied (relevant for a photo web services like Flickr). These are: 
   photo date, keywords (tags), copyright, caption, comments, and geotag data (location).
   Privacy notice: others would be able to find your location by date if this metadata 
   is included in uploaded files. 

BATCH TAGS
   +image:  batch-tags.jpg
   Add, remove, or change the tags for a large number of image files at once. 
   
   Use the [select files] button to select the image files (|SELECT IMAGE FILES|).

   The dialog shows two lists of tags: those to add to the selected files, and those to 
   remove. Available tags are shown in the Defined Tags window below. One of these can be 
   added to the currently selected tag list (add or remove) by clicking it. A tag can be 
   deleted from either tag list by clicking it. To replace tags, specify the new tags in 
   the add tags list and the old tags in the remove tags list.

   If the list of defined tags is long, it may be easier to type the desired tag into 
   Enter New Tag. Existing tags matching what you have typed so far will appear in 
   Matching Tags, and you can point and click one of these to add the tag to the image. 
   If the input tag is new (no matching tag is shown), press [Add] when the tag is 
   complete. It will be added to the selected tag list and to the list of defined tags 
   under the category "nocatg".

   If you are using tag categories, you can select a category, and only those tags will be 
   shown in the list of defined tags. If your tags list is huge, this can reduce the list 
   to a manageable size for pointing and clicking.

   The [manage tags] button can be used to define tags with categories, as described in 
   |EDIT META|.

   To get a list of images having specific tags which you want to remove or replace, use 
   |SEARCH IMAGES| to find the images, then start this function and use [select files] 
   to add all the image files that you just found, or select any subset.

BATCH RENAME TAGS
   +image: batch-rename-tags.jpg
   With this function, you can rename any number of tags and apply these changes to your 
   entire image collection. Click on a tag to rename from the list of defined tags, enter 
   a new name in the Rename to box, then click on the arrow button to add this pair of 
   names to the list on the right side. Repeat for each tag to rename. If you make a 
   mistake or change your mind, click on the pair of names in the list to remove them. 
   Press [Proceed] when done.

   A popup window shows the number of image files containing the affected tag names. 
   Press [Yes] to proceed. The update rate is around 500/minute on a strong computer. 
   The next time Fotoxx is started, the index file function will update all thumbnails 
   for the same images, because the file modification date has changed.

BATCH PHOTO DATE
   +image: batch-photo-date.jpg
   This function lets you quickly fix a batch of photos that have no photo date/time or an 
   incorrect one. Use the [select files] button to open a gallery window where you can 
   select the image files to process (|SELECT IMAGE FILES|).

   There are two ways to change photo date/times:
      • Set a new date/time (right image above)
        enter a new year only (yyyy) - only the year will be replaced in the image files.
        enter a date only (yyyy-mm-dd) - the date will be replaced but not the time.
        enter a full date/time (yyyy-mm-dd hh:mm:ss) - the date/times are fully replaced.
      • Shift existing date/time (left image)
        Enter + or - values into any of the 6 fields: years, months, days, hours, 
        minutes, seconds. Image file date/times will be shifted by the entered values.

   Shifted date/time values propagate to the next higher value when necessary:
      Time 08:30 shifted by -50 minutes results in 07:40
      Date 2016-10-20 shifted by +6 months and -30 days results in 2017-03-21 
      (March has 31 days).
 
   If the checkbox 'test' is selected, a report of the old and new date/times for the 
   selected files is produced for your inspection. No changes to the files are made. 
   If you are satisfied that the results are correct, remove the checkbox and run again 
   to update the files. The same set of files is already selected. 

BATCH CHANGE META
   +image: batch-add-change-metadata.jpg
   This function can revise metadata for multiple image files. You can add new metadata, 
   revise existing metadata, and delete metadata. Use the [select files] button to open 
   a gallery window from which you select files to process (|SELECT IMAGE FILES|). Enter 
   metadata key names and values to be assigned, or leave the value blank to delete the
   key. Press [apply]. You will get a confirmation message and you can proceed or cancel 
   at this time. A list of commonly used key names is provided on the left. Click one of 
   these to insert it into the first empty key name field in the dialog. This list comes 
   from the file [fotoxx-home]/metadata_short_list, which you can edit to add other keys 
   to the list. The [Full List] button provides information on how to get a list of all 
   available key names.

BATCH REPORT META
   +image: batch-report-metadata.jpg    +image: add-metadata-items.jpg 
   This function can report any metadata for any number of images. The output is a text 
   file which is displayed in the default text editor for your system (e.g. Gedit for a 
   Gnome desktop). You can use the search features of the text editor to find images 
   matching desired metadata, or you can use the text file as input to other programs. 
   Use the [select files] button to open a gallery window to select the files to be 
   processed (|SELECT IMAGE FILES|). You can navigate through any number of galleries and 
   select any number of image files in each. The [edit] button opens a new dialog (right) 
   where you can select the metadata items to be reported. Click an item in the left 
   column to add it to the right column and to the report. Click an item in the right 
   column to remove it. Click the last item in the left column, "Other Item ...", to 
   type-in any item name not appearing in the list, which contains only the most likely 
   needed items.

BATCH GEOTAGS
   +image: batch-add-geotags.jpg
   With this function, you can select many images and add the same location data to all 
   of them. Use the [select files] button to select the image files from a gallery window 
   (|SELECT IMAGE FILES|). Then get the location data as described in |EDIT META|, using 
   the buttons [Find] and [Web], or one of the map views. Press [proceed] to start the 
   update process. Use this function also to fix inconsistencies in location spelling or 
   latitude/longitude data. If latitude and longitude are left missing, only the location 
   names are updated in the image files. This gives you a way to add missing names, or 
   replace screwy names inserted by a camera GPS receiver.

SCRIPT FILES
   Menu Functions:
   • Edit Script - Perform a set of edits on one image file, recording all functions and 
     settings in a named script file.
   • Run Script - Run a script file using the current image file, like an edit function.
   • Batch Script - Select any number of image files and run a script file on all of 
     them, in batch mode.

   Script files allow you to define a set of edits once, and repeat them on single or 
   multiple image files at a later time. This can be useful when many photos of the same 
   subject were made under the same lighting. You can choose one photo and edit it to 
   perfection, recording every function used and adjustment made in the dialogs. Then you 
   can apply these edits to the entire batch of photos. Certainly this will not be as 
   good as editing each photo individually, but it is much faster, and you can always go 
   back and make additional adjustments after viewing the results.
    
   \_Scriptable Edit Functions
   Some edit functions use mouse drags on the image, e.g. all warping functions. These 
   are not scriptable because mouse drags are not recorded. If you try to use one of 
   these while building the script, you are told this is not possible.

   The following functions are currently scriptable:

      Edit     Retouch        brightness/contrast/color adjustments
               Resize         change the pixel dimensions of an image
               Adjust RGB     adjust colors using RGB or CMY sliders
   
      Enhance  Voodoo 1       automatic enhancement tool
               Voodoo 2       automatic enhancement tool
               Brite Dist     reshape the brightness distribution
               Gradients      enhance local contrast where weak
               Flatten        enhance dark areas with low contrast
               Global Retx    enhance color and contrast globally
               Zonal Retx     enhance color and contrast locally
               Sharpen        sharpen fuzzy edges
               Denoise        reduce image noise
               
      Effects  Sketch         convert image into a simulated sketch
               Cartoon        convert image into a cartoon
               Line Drawing   convert image into a color line drawing
               Emboss         add a 3D relief effect to an image
               Dither         convert image into dots - four styles
               Tiles          convert image into tiles
               Painting       convert image into a simulated painting
               Texture        add texture to an image (e.g. image on tapestry)
               Pattern        add pattern to an image (e.g. image on brick wall)
               Color Mode     convert to black/white, color negative, sepia
               Color Depth    reduce color depth (bits/color) for poster effect
               Shift Colors   tune colors using a slider
               Alien Colors   add strange coloring to an image
               Brite Ramp     ramp brightness or color up/down across an image
               Mirror         mirror image horizontally or vertically
               Custom Kernel  apply a custom convolution kernel to the image

      Tools    Color Profile  change the color profile, e.g. Adobe RGB <-> sRGB

EDIT SCRIPT
   In the dialog, press [start]. Choose a file name for the script. Begin editing the 
   current image file. Use all desired edit functions in any sequence. Each edit is 
   recorded in the script file along with all the dialog settings used. When finished, 
   press [close] to close the script file and save it with the given file name.

RUN SCRIPT
   Choose one of your saved script files from the popup menu. The script is executed using 
   the current image file, like a normal edit function. 

BATCH SCRIPT
   In the dialog, press [Select Files]. Select the files to edit using the standard file 
   selection dialog (|SELECT IMAGE FILES|). When done, press [Select Script]. Choose a 
   script file from the popup menu. The script is now executed on all of the chosen files. 
   All modified images are saved as new versions, so the original files are not lost. 
   Those you do not want can be quickly removed using |BATCH DELETE/TRASH|. If RAW files 
   are processed, the corresponding outputs are TIFF-16 files.


TOOLS MENU
   +image: tools.png

INDEX FILES
   +image: index-files1.jpg
   Fotoxx needs to know where all your image files are located (folder and file names) 
   and their embedded metadata (dates, tags (keywords), geotags, captions, comments, 
   ratings). This data is indexed for fast searching. Fotoxx also creates thumbnail 
   images so that the gallery windows (thumbnail pages) will work fast. Fotoxx does not 
   modify or copy your image files - it only reads them to make the index and thumbnails. 
   These are typically 2% as large as the JPEG files from a modern camera.

   The Index Files function runs whenever Fotoxx is started. This function will create 
   missing thumbnails, replace outdated ones, and refresh the metadata index using current 
   data from your image files. This may need significant time if you have many thousands 
   of new files. The speed can range from 500 to 10000 files per minute, depending on 
   computer speed, disk speed, and average file size. If there are few or no new files, 
   indexing completes quickly. Indexing can also be started manually from the Tools menu.

   NOTE about indexing speed: The rates stated above are for JPEG files around 3 MB. 
   Larger JPEGs and TIFFs are slower. RAW files and large PNG files may be very slow,
   200 per minute or less. You can find some benchmark data for indexing speed in the 
   |TECHNICAL NOTES| topic.
    
   Image files modified or moved within Fotoxx are taken care of automatically. The Index 
   function is used only for new image files created from outside Fotoxx (e.g. a new batch 
   of photos was added), and for files modified, moved or renamed from outside Fotoxx.
    
   Enter your top image folders (e.g. /home/<user>/Pictures). Use the [browse] button to 
   locate and add folders. These folders and any subfolders containing images will be 
   processed. It does not matter if other files are mixed with the images. The simplest 
   way is to use  /home/<user>  as the only top folder, but it is better to separate the 
   image files from the 100,000 other files that may be under /home/<user>. Delete an 
   entry by clicking the corresponding X.
    
   Enter the thumbnails folder where thumbnail files will be stored. Use the supplied 
   default  /home/<user>/.fotoxx/thumbnails  or set your own location. The folder name 
   must end with  /thumbnails, and this will be added to your selection if needed. The 
   folder is created if not already present. Indexing will run faster if this is on a 
   separate physical disk from the image files.
    
   If you have used folder or file names to classify your images, you can make immediate 
   use of these in the |SEARCH IMAGES| function. If you have saved dates, captions, tags, 
   geotags, titles, or ratings in your image metadata (using other applications), these 
   will also be searchable. After the images have been indexed, searching them by any of 
   these criteria is almost instantaneous. Other items in the image metadata can also be 
   searched, but at a slower speed. See |SEARCH IMAGES| for details.   

   \_Index Metadata Items
   +image: index-files2.jpg
   You may add up to 20 other metadata items to the image file index. These are in 
   addition to the standard items mentioned above. Metadata in this list can be searched 
   as fast as the standard items. You may not need this, but if you sometimes need to 
   search non-standard metadata items, you can add them here and the search speed will be 
   almost instantaneous. Press the [select] button for "extra metadata" to get the above 
   dialog. Click on items in the left list to add them to the right list - the items to 
   be added to the index. Click on an item in the right list to remove it. Press [done] 
   to commit the changes. If you make any changes to this list, your entire image 
   collection will need to be indexed again. This will proceed much faster than the 
   initial indexing, because the thumbnails are already there and do not need to be 
   created. Only the image file index will be refreshed.
    
   \_Fotoxx Startup Time
   If you have a huge image collection, the first startup after a reboot may need some
   time, even if there are no new image files. Subsequent startups are faster because 
   file folders are now cached in memory. If startup time is still a problem, you can 
   bypass the indexing. This may be especially useful if you use a file manager (like
   Nautilus) to start Fotoxx with a selected image file, and you want the image to open
   instantly. See the User Settings topic immediately below for more information.

   \_Accessing non-indexed Files and Folders
   A non-indexed image file or folder is one that is not included within your declared 
   top image folders (subfolders of your declared image folders are always included). 
   You can navigate to such a folder and view the thumbnails normally, and you can view 
   and edit such files normally. There are limitations that you should understand.
     • These files will be missing from any search results and map views.
     • Thumbnails are created at the time of viewing - gallery paging may be slow.
   If you use Fotoxx to access a portable USB storage device (e.g. a camera SD card), you 
   will have this situation and you will notice the balky performance. Thumbnails will be 
   created as needed, and they will remain after the device is removed. I recommend that 
   you first copy the files to a declared Fotoxx folder or subfolder, and do whatever 
   Fotoxx processing you need from this location. The performance will be much better.

   \_Removable Disks
   Run the Index function with the removable drive mounted, add the desired top image 
   folders from this drive, and let the indexing process run to completion. This is no 
   different from the procedure with permanent, fixed storage. After this, Fotoxx can be 
   used with the removable drive mounted or not mounted, and nothing will be lost. If you 
   operate Fotoxx without the drive mounted, the image files on this drive will disappear 
   from Fotoxx view. When the removable drive is mounted again, and Fotoxx is started 
   (or the index function is run manually), the last status is restored. If any image 
   files were modified in the interim, this is detected and the index data and thumbnails 
   are updated in the usual manner.

QUICK INDEX 
   Perform a quick incremental index in the current Fotoxx session with no user inputs.
   If image files are updated while Fotoxx is running, the Fotoxx index is no longer up 
   to date. The new or modified files may not appear in Gallery View, and are excluded 
   from reports and maps. If they appear in Gallery View, they are marked "not indexed". 
   Use Tools > Quick Index to update the Fotoxx index. The time needed will depend on 
   the number of new or modified files present within or underneath your top folders. 
   For 100 files or less, it should be a matter of a few seconds. 

MOVE FOTOXX HOME
   The default location for 'fotoxx home' is  /home/<user>/.fotoxx (like most Linux apps).
   This folder is where Fotoxx data is kept, including index data and user preferences and
   settings. If you have multiple Linux systems on your computer, and you want them to 
   share the same Fotoxx data, or if you want your Fotoxx data to be retained when you 
   make a "clean install" of Linux, you can use this function. 
   
   See |COMMAND PARAMETERS| -home parameter if you want multiple image collections that 
   are managed separately).

   Use the dialog to select or create a new folder for Fotoxx home. I suggest you use the 
   name /fotoxx or /.fotoxx as the lowest folder level. This folder would typically be on 
   a mounted volume to keep it isolated from Linux installs and shareable with multiple 
   Linux systems. Putting /home on a separate volume is a common method to do this, but 
   there are risks if multiple Linux systems share this same /home folder: applications 
   with different release versions may have data file and format differences, which can 
   lead to application failures and even crashes.

   All user data will be moved automatically. No new indexing of the image files is 
   required. A file is created in the user home folder: /home/<user>/.fotoxx-home. This 
   is a one-line text file which contains the file name of the new fotoxx home folder. 
   When fotoxx starts, fotoxx will look here first for its home folder. If there are 
   multiple Linux systems, this file needs to be duplicated in each of the /home/<user>  
   folders.

PREFERENCES
   +image: preferences.jpg
   Various user preferences and settings are collected in this dialog.
   They are also saved in the file  [fotoxx-home]/parameters.
      • Startup Display - initial display when Fotoxx is started:
         • Recent Files Gallery: the most recently seen image files
         • Newest Files Gallery: image files most recently added or modified
         • Specific Gallery: the specified folder gallery
         • Album Gallery: the specified album gallery
         • Previous Gallery: the gallery last used in the prior Fotoxx session
         • Previous Image File: the file last viewed in the prior Fotoxx session
         • Specific Image File: the specified image file
         • Blank Window: start with a blank window
         • Browse: dialog to browse for the starting folder, album, or image file
      • Background Colors - background colors for File and Gallery View windows
      • Menu Style - menu display style: icons, text, or both
      • Menu Colors - menu font color and background color
      • Dialog Font - font to use in menus and dialogs (Bold, Italic, etc. are ignored)
      • Image Zoom Speed - Choose 1-8 zooms (clicks or [+] keys) per 2x size increase
      • Image Pan Mode
         • Drag: image moves with the dragged mouse
         • Scroll: image moves against the dragged mouse (like invisible scroll bars)
         • Fast: movement is magnified - entire image can be scrolled with one drag
      • JPEG file save quality - quality/size tradeoff for image saved as a jpeg file
      • TIFF file compression method - select a libtiff compression method to use
      • PNG file compression level - 1-9 = no compression - max. compression
      • Curve Node Separation - minimum node separation for edit curves, % of scale
           The default is 5% of scale, allowing up to 20 nodes in a curve. 
           This is also the mouse capture threshold when a node is clicked or dragged.
           If you use a touchpad instead of a mouse, set this value higher.
           If you use a high DPI monitor, set this value higher.
      • Map Marker Size - pixel size of the red dots marking map image locations
      • Show Images - show all images or only the last version of each image
      • Image Position in Window - move to the right to maximize left margin for dialogs
      • Image Index Level - set the index level depending on how Fotoxx was started.
           The values in parentheses are suggestions. See below for a full explanation.
      • RAW File Loader - loader to use for RAW files. See |EDIT WORKFLOW|.
      • RAW Conversion Options:
         • extend dynamic range: auto enhance dark images - good starting point
         • use embedded image: match embedded image color space - good starting point
      • RAW File Types - customize this list to match the RAW files you actually have
      • Video File Types - customize to match the video files you actually have
      • Video File Play Command - choose or enter a command for playing video files
      • Anonymous Statistics - message to the Fotoxx web host for counting users.
                               Infrequent. Contains no data related to a person. 

   \_File Quality and Compression
   JPEG file quality level: should be 70 or higher for good image quality
   TIFF/PNG file compression: reduce file size at cost of longer time to save file

   \_Image Index Level
   These two parameters govern a tradeoff between fast Fotoxx startup time and the 
   completeness of the image index. A complete image index is required for accurate 
   results from image search and map functions. Building a complete image index when 
   Fotoxx starts can take from 0.1 seconds to 10+ hours (e.g. initial indexing of a 
   million image files on a slow computer). 
   
   Fotoxx startup time depends on the following factors:
      • If there are (new) image files that have never been indexed, they must be found 
        and added to the image index. New files are processed at 500-10000 per minute, 
        depending on computer and disk speed and average image file size.
      • The first startup after a reboot needs more time than subsequent startups. 
        Subsequent startups are faster because the index file and the image folders are 
        now cached in memory. First startup time with a 5400 rpm disk is roughly 1 second 
        per 10K image files. Subsequent times are roughly 5x faster. First startup with 
        an SSD disk is roughly 1 second per 40K image files (assuming a strong PC).
        These numbers assume no new (not yet indexed) image files.

   If you start Fotoxx by selecting a file from your file manager (e.g. click on a file 
   name in Nautilus), you may want to see the image immediately and not wait for indexing. 
   You can control this with the two parameters named 'Image Index Level'.
      • The first parameter controls how Fotoxx indexes when started from a menu, launcher
        or command. The 2nd parameter controls how Fotoxx indexes when started by clicking 
        on a file name displayed in Nautilus or other file manager.
      • A value of '0' means no indexing at all. Startup is very fast. Image search and 
        map functions are disabled. Viewing and editing images and metadata is normal.
      • A value of '1' means load the old index file but do not search for new image 
        files to update the index. Startup time is moderately fast. Image search and 
        map functions do work, but any new (not yet indexed) image files are excluded 
        from the outputs.
      • A value of '2' means full indexing: load the old index file, search for new 
        files (not yet indexed) and update the index file. Startup time depends on how 
        many new image files must be indexed and the speed of your computer. Image search 
        and map functions produce complete results.

   You can also start the index process manually (Tools > Index Files) if you want to 
   use search and map functions with complete results. You do not have to go back to 
   |PREFERENCES| and change the parameters.

KB SHORTCUTS
   +image: KB-shortcuts.jpg    +image: KB-shortcuts2.jpg
   This function is used to view or change custom keyboard shortcuts. The currently 
   assigned shortcuts are shown in the first window. If you press the [Edit] button, 
   the second dialog is shown, where you can add and change keyboard shortcuts. Enter 
   a new shortcut using the keyboard. You can use the keys A-Z, 0-9, F2-F9, and most 
   of the symbols (% $ & ^ < etc.). You can combine a key with one of Ctrl/Alt/Shift:  
   Press and hold ONE of Ctrl/Alt/Shift, then press the key, then release both. Select 
   one of the available menu assignments from the list on the right. Remove a shortcut
   by selecting it and pressing [Delete]. Press [Done] when you are finished. [Cancel] 
   will discard all changes.
 
   At the end of the list are shortcuts for the most common dialog completion buttons 
   (Done, Cancel, etc.). Always use  Ctrl+ or Alt+  for these keys, since single keys 
   are reserved for text inputs into dialog widgets.

RGB DISTRIBUTION
   +image: RGB-dist.jpg
   This function opens a small window that shows a brightness distribution graph of the 
   current image in File view, or the currently selected area of the image. This graph 
   updates immediately for new images or as edit functions change the image. There are 
   four graphs in four colors: red, green, blue graphs are for the respective colors. 
   The black graph is for overall brightness. Use the buttons [All] [Red] [Green] [Blue] 
   to select the colors to show.

MAGNIFY IMAGE
   +image: magnify-image.jpg
   This function magnifies the image in an area around the mouse pointer. Left-drag the 
   mouse around the image to magnify different areas, analogous to viewing a printed 
   image through a magnifying glass. Use the dialog to adjust the radius of the area and 
   the amount of magnification. A mouse click will end the magnify, and a new mouse drag 
   will start it again.

FIND DUPLICATES
   +image: find-dups.jpg
   Find duplicated image files anywhere within your image database. A duplicate image 
   file can be an image file that exactly duplicates another image file, or an image file 
   that "almost" duplicates another. For the sake of speed, thumbnail images are compared 
   in memory. Hence it is possible that identical thumbnails are found for which the main 
   images have some minor (likely invisible) differences that do not show up in the 
   thumbnails. An image copy that was reduced in size is likely be classified as a 
   duplicate. Thumbnail size can be set from 32 to 512 pixels (max. width or height). 
   A larger size reduces the probability of false positives. The thumbnail size greatly 
   affects the amount of main memory required - e.g. for 100K images, size 64 needs about 
   880 MB, whereas size 256 needs about 14 GB. 
      memory required, roughly: size x size x 0.75 x 3 x (image count)
   Press the calculate button to calculate the largest thumbnail size (for the shown file 
   count) that can fit within the free memory available. 
   
   Two parameters are used to set the sensitivity for detection of identical or nearly 
   identical images: pixel difference is the RGB value difference below which pixels are 
   considered equal. Set to 1 to detect any pixel difference. Pixel count is the number 
   of different pixels below which two images are classified as duplicates. 
      example: if pixel difference = 2 and pixel count = 10, then images are 
      classified as duplicates if fewer than 10 pixels are different by 2 or less.
      
   The output is a Gallery View, showing each set of duplicate images. If two images are 
   duplicates, the two images will appear in the output. The output gallery is saved as 
   album "Duplicate Images". You can use Batch Delete/Trash together with this album to 
   choose which duplicates to delete.

   \_Current Gallery option
   You can confine the search to image files in the current gallery. This can also be the 
   output of the |SEARCH IMAGES| function. Use this method to select some subset of your 
   image collection, using folder/file names, a photo date range, etc.

   Performance (measured with a 2.8 GHz computer)
      Find 114 duplicates from 13K images, SSD disk:  17 seconds
      Find 762 duplicates from 56K images, SSD disk:  1.1 minutes
      Find 12K duplicates from 215K images, 5400 rpm disk:  13 minutes

SHOW RGB
   +image: show-RGB.jpg
   When a point on the image is clicked, the RGB values are shown in a dialog window. 
   The last 9 clicked points are displayed. The values have the format xxx.dd, where xxx 
   is the upper 8 bits of the color value and .dd is the lower 8 bits. The range is 0.00 
   to 255.99. The lower 8 bits are zero unless the image is being edited or the image is 
   a 16-bit TIFF or PNG file. The outputs are updated immediately if the image is being 
   edited. If "labels" is checked, the points are labeled on the image with letters A-I, 
   corresponding to the letters A-I in the dialog window. If "delta" is checked and the 
   image is being edited, then RGB changes are shown instead of the absolute values.

   If you open another image (e.g. to compare with the prior image), the positions are 
   kept and updated if they are within the new image boundaries.

COLOR PROFILE
   Use this function to change the ICC color profile. If you have images with Adobe RGB 
   color, you can change to sRGB for better colors on a monitor, or for uploading to a 
   web site. Any EXIF embedded color profile is removed, and the EXIF key "ICCProfileName" 
   is set to the new profile. Because the relevant metadata is changed, a new file version 
   is created automatically, and the input file is left unchanged with the old color 
   profile. To view the color changes, use the KB arrow keys to switch back and forth 
   between the old and new images.
     
   You may need to install ICC color profiles. In Ubuntu, the package names are 
   icc-profiles and icc-profiles-free.

CALIBRATE PRINTER
   +image: printer-calibrate-chart.jpg
   This utility may be able to improve the color accuracy of printed images.

   \_How It Works
   A chart of colors is printed on the target printer. Some of the printed colors will be 
   slightly wrong due to printer imperfections. This printed page is scanned into a file, 
   and the colors in this file are compared to the original colors that were printed. 
   Any differences are errors that are now known. When an image file is printed, these 
   errors are subtracted from the image colors before printing. The printer adds the 
   errors back, leaving a result that is theoretically correct. My own result was a 
   modest improvement, detailed below.
    
   Hopeful Assumptions
      • Your scanner produces accurate colors. 
        Scanners are generally more accurate than printers.
      • The printer color errors are small enough that negating them before printing 
        will cancel most of the error. This is less likely if the errors are large.
      • The limited set of colors in the chart (1728) can be used to calculate all other 
        colors (each color adjustment is interpolated from nearby colors in the chart).

   Perform the following steps in sequence, as listed by the dialog window. 
   Each step has instructions to perform the step. All files normally reside in the 
   folder [fotoxx-home]/printer_color/.
      1. Generate and print the color chart file (printchart.png) on the printer to be 
         calibrated. Use a large paper size, vertical orientation, no margins.
      2. Scan the printed chart into a PNG file. Use 300 dpi or more to make a large file.
      3. Edit the PNG image to trim off margins left by the scanner. Save the edited image
         as <chosen-name>.png. The name should contain printer settings and paper type.
      4. Process the edited chart file to create a color map file <chosen-name>.dat.
         Use a name indicating the printer settings and type of paper used.
      5. Print a color-adjusted image. You are asked for the color map file from step 4.

   Once you have made the color map file, you can print any image using step 5 only.
   There is also menu function to do step 5 only: |PRINT CALIBRATED|. 

   Precautions For Best Results
      • Use a large paper size for printing the chart (A4 or US Letter) to make the color 
        tiles as big as possible.
      • Clean the scanner glass before scanning the color chart. Dust spots or smudges 
        will falsify the colors.
      • Scan with a high DPI setting (300+) to make a large chart file. This will make 
        the next step more accurate.
      • Scanners can skew a scanned image into a slightly non-rectangular form. If this 
        happens, you will notice it when trying to trim off the margins: the fat green 
        margin lines will not align perfectly with the trim rectangle, even after 
        slightly rotating the image for best fit. If this happens, use |PERSPECTIVE|
        to square the image first, then trim the margins.
      • When editing the scanned chart image, be sure the darkest row is at the top. 
        Trim off the margins surrounding the color tiles. Use the fat green margin line 
        surrounding the color tiles as a guide: cut off this line exactly, leaving only 
        the tiles. Work with 2x magnification while adjusting the trim rectangle. 
        Accurate trimming is critical. The tile positions are calculated from the final 
        image dimensions, assuming 35 equal columns and 50 equal rows. If some edge 
        tiles are cut short, or if margins are left, then the calculated tile positions 
        will be offset, and the measured colors will be wrong. A small error of 1-2 
        pixels is tolerated, because the outer 20% of each tile is not used to read the 
        tile color. You can use the keyboard arrow keys to make 1-pixel movements in the 
        trim rectangle. The last corner pulled with the mouse is the corner that the 
        arrow keys will move.
      • If you notice any black or white spots in the scanned chart image (from dust), 
        fix them with |COPY PIXELS 1|.
      • The output color map file can be used only for the paper, ink, and printer 
        settings used for the calibration. Any other combination needs its own 
        calibration and color map file. Use the name of the color map file to include 
        this information, e.g. cmyk-glossypaper.dat.

   \_Results (my Canon printer)   
   +image: printer-calibrate.jpg  +image: printer-cal-study.jpg
   The chart above is a photo of three images:
      upper left: a printout of a photo of a standard color chart
      upper right: a calibrated printout of the same photo
      bottom: the color chart itself
   Look for tiles in the upper left image that least match those in the bottom image.
   Look at these same tiles in the upper right image. The match is mostly better.

   You may be able to find a real ICC color profile for your printer and its proprietary 
   inks and photo paper. Using this would most likely produce better results. Check the 
   installation CD supplied with your printer, and the manufacturer's web site. There are 
   also professional services to generate an ICC color profile. The procedure is similar 
   to the one described above: you print a color chart supplied by the service, send the 
   printed chart back to them (along with some money), and receive an ICC profile, a file 
   which you can install. Try a web search for "icc profile service".

GRID LINES
   +image: grid-lines.jpg
   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-enable checkboxes can be used to enable and disable the vertical and horizontal lines 
   separately. A keyboard shortcut (default 'L') can be assigned to toggle the grid lines 
   on and off. If an image is printed with grid lines enabled, the grid lines are also 
   printed. The x- and y-offset controls can be used to shift the grid lines to intersect 
   a desired point in the image.

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

LINE COLOR
   Some functions draw lines over the image (Trim/Rotate, Select Area, others). You can 
   change the color of these lines to maximize contrast against the background image. 
   The small dialog can be left open while editing, to conveniently switch among the 
   available colors (black, white, red, green).

DARK/BRIGHT PIXELS
   This function is used to highlight the darkest and brightest pixels in an image. 
   Adjust the two sliders to set the brightness thresholds, which are initially 0 for 
   dark pixels and 255 for bright pixels. Pixels with a brightness less than the dark 
   threshold or greater than the bright threshold are highlighted on the image. The 
   image responds quickly to changes in the sliders. You can use this function in 
   parallel with edit functions to check for brightness clipping.

MAP DEAD PIXELS
   +image: dead-pixels.jpg
   Camera sensors may have defects causing isolated pixels to be 'stuck' at some color, 
   or dark. Dust specks on the camera sensor can also cause pixels to be darkened. This 
   function can find such pixels in a RAW image and save their locations in a file that 
   can be used by |BATCH RAW| to repair the dead pixels in converted output files. 
   Cameras normally repair their own dead pixels. These are mapped during manufacture 
   and saved in the camera's firmware. This Fotoxx function can be used to fix pixels 
   that have failed later, or pixels darkened by dust specks.
     
   The following describes how to make a map of defective pixels for a given camera. Make 
   a photograph of dark gray uniform surface that is badly out of focus. Use a normal ISO 
   level, e.g. 100. This image should be uniform in brightness and have low noise. One way 
   to do this: create a gray image using the Blank Image function. Show this image on your 
   monitor. Set your camera ISO. Focus on some far-away object and press the shutter 1/2 
   way. Place the camera within 1 cm of the gray image and press the shutter fully. A 
   uniform dark gray image should result. Move this image to your computer. The far-focus 
   trick is to stop the camera from trying to focus on the screen, and to minimize 
   vignette that can occur with very short focus. Vignette does not affect how this 
   function works, since each pixel is compared with its immediate surroundings.

   Select the gray RAW file and start the Map Dead Pixels function. Press [find] to search 
   for dead pixels. If found, these will have small circles drawn around them, and they 
   are listed in a popup report. Reduce threshold and press [find] to detect more dead 
   pixels. At some point many false dead pixels will appear, which are noise outliers. 
   You can zoom-in on a circled area to check if it is really a dead pixel or only noise. 
   A magnifying glass is convenient for this. The example above shows a dead pixel and 
   random noise. The mapping between camera sensors and pixels causes the "+" pattern. 
   Adjust threshold so that only real dead pixels are included. The popup list shows the 
   pixel with the greatest contrast, followed by adjacent pixels that seem to be related. 
   Each pixel is represented by two values - the x and y positions in the image. 
   Upper left is 0 0.

   The dead pixel list can be saved to a file by using the [save] button. The default file 
   name is the camera make and model, but you can change this.

MAP PIXEL BIAS
   +image: pixel-bias.jpg
   Camera sensors have a small variance in sensitivity which is reflected in image pixel 
   RGB values. This is typically much less than random photon and thermal noise. It can 
   still be measured by averaging many photos to minimize the influence of random noise. 
   This function measures pixel-level bias and saves the data in a file that can be used 
   in |BATCH RAW| to eliminate this bias. This benefit is small and likely not visible. 
   My camera shows an average bias of about 0.3 on a scale of 0-255. To compare, random 
   noise is generally more than 1.0. 

   Procedure: photograph a gray image 20 or more times. You can use the procedure 
   described above in Map Dead Pixels. The exposures should be as identical as possible: 
   same image brightness, ISO, aperture and shutter time. This is to insure that the only 
   differences in the photos come from random noise. Save all the RAW files in your 
   computer and start this function. Use the [Select Files] button to select the RAW 
   files (|SELECT IMAGE FILES|). Press the [Measure] button and wait. All the files are 
   read and averaged using the RAW loader specified in |PREFERENCES|. Remaining pixel 
   differences are taken as pixel-level bias. Each pixel is compared to a large sample 
   of neighbor pixels. The difference between a sample of 20 and a sample of 40 should 
   be small compared to the magnitude.

MONITOR COLOR
   +image: moncolor-small.png
   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
   +image: mongamma-small.jpg
   Gamma determines how RGB brightness values (0-255) are converted into brightness on 
   the monitor. The standard value is 2.2 and this should normally be used for image 
   editing. Adjust the dialog slider until the middle band has the same brightness as the 
   left and right bands at the scale position 2.2. Be far enough from the monitor that 
   you cannot see the fine lines in the chart. The chart only works at 100% size, so do 
   not zoom the chart. The command line utility "xgamma" is required (normally present).

   The chart image originates from Norman Koren. His web site has more information about 
   this chart. The chart here in the User Guide has been reduced.

CHANGE LANGUAGE
   This function allows you to change the GUI to one of the available languages. The new 
   setting is preserved across Fotoxx sessions, and this setting overrides the user 
   locale setting.

   If your language is not available, how about some help? See menu Help > Translations.
  
MISSING TRANSLATIONS
   This function lists all missing translations to a popup window. Translations left as 
   English are not reported, since this is often deliberate, e.g. words like "font" or 
   "icon". The translation file for the current locale can optionally be exported into 
   the Fotoxx home folder. Here it can be easily accessed for adding or revising 
   translations.

SHOW RESOURCES
   The following data is output to the log file (or terminal window):
      • process time: CPU time used, since the last time shown
      • current RAM memory in use by Fotoxx
 
APPIMAGE FILES
   If Fotoxx is an Appimage build, the files included in the Appimage container are 
   listed. Fotoxx files (e.g. /usr/share/fotoxx/* ) are excluded from the list.

ZAPPCRASH TEST
   This is a diagnostic tool to produce a crash report. A crash report is produced in a 
   text file on the desktop, and Fotoxx terminates. In the case of a real crash, this 
   report should be sent to me (mkornelix@gmail.com). If the utility program 'addr2line' 
   is installed, the crash report should include source code line numbers. Without this, 
   the report may be useless, but send it anyway.


HELP MENU
   +image: help.png
      • User Guide - The user guide (this document) is displayed.
      • Recent Changes - This is a summary of recent changes in the User Guide. 
        The intent is to enable reading the changes without reading the whole document.
      • Edit Functions Overview - Short descriptions of all edit functions in one place.
      • Change Log - Displays the change log file distributed with Fotoxx, containing 
        details about functional changes, additions, and bug fixes.
      • Log File - Display the current session log file, where some error messages may 
        appear. This is the same data visible if Fotoxx is started from a terminal.
      • Man Page - The Linux Man Page for Fotoxx (short description of functionality).
      • Command Params - Show Fotoxx command line parameters
      • Translations - Displays the Translations topic from the User Guide: how to make 
        or revise a translation.
      • Home Page - Shows the Fotoxx home page from the author's web site.
      • License - Shows the text of the Fotoxx usage and copy license (Gnu GPL3).
      • Privacy - Shows the Fotoxx privacy policy (Fotoxx collects no personal data).
      • About - Displays the Fotoxx version number, license, credits, and contact e-mail.


OTHER TOPICS

VIDEO FILES
   Video files (.mpeg, .mp4, etc.) may be mixed-in with your image files. They will show 
   as image files in both file and Gallery View. The image shown is the first frame of the 
   video. In File View, the keyboard is used to control the video. The 'P' key will start 
   the video, pause the video, resume the video, or replay a video that has ended. The 'Q' 
   key will quit the video and close the window. These keys cannot be customized.

WEB UPLOAD
   Most photo websites have the ability to upload multiple image files from a single 
   folder, using only a web browser. Use one of the Fotoxx functions listed below to 
   select and copy image files to the desktop or any other folder. From there, use the 
   photo website's native browser interface to upload the image files.
 
   |EXPORT FILES| - copy selected files from many locations to a single output folder
   |BATCH CONVERT| - same functionality plus many more options (see below)

   The first function is simple to use and can only downsize and copy image files.
   The second function can also downsize and copy, but it has many more features:
      • rename the files (combine old and new names, sequence numbers, photo dates)
      • convert to another file type
      • upright images turned 90 degrees
      • remove metadata
      • sharpen
      • add an overlay image (e.g. copyright text) at designated position
    
   \_Privacy Warning
   Photos contain metadata you may not want to make available to others.
   Please review the information at \_https://gitlab.com/fotoxx/fotoxx/wikis/privacy\_

ORGANIZING IMAGES
   The goal is to find all images for given criteria, e.g. photos of a given person at a 
   given place and/or time range, all photos of a given person, photos from a specified 
   location or event, etc. There are several ways to organize an image collection to 
   accomplish this, with advantages and disadvantages you need to understand. The methods 
   listed here (except for albums) are standards compliant and will work with other 
   programs that support the same methods. These are (1) searching based on metadata 
   (dates, ratings, tags (keywords), geotags (locations), captions and comments, and 
   (2) searching based on folder and file names or partial names.
    
   \_Relevant links
   |EDIT META|   |BATCH TAGS|   |BATCH RENAME TAGS|   |BATCH GEOTAGS|   |BATCH CONVERT|   
   |SEARCH IMAGES|   |PLACES/DATES|   |TIMELINE|   |INDEX FILES|   |MANAGE ALBUMS|   

   Fotoxx can search using the following image metadata: photo date, file date, rating 
   (stars), tags (keywords), geotags (location names and earth coordinates), and text 
   appearing in captions or comments. Searching based on file and folder names can also be 
   combined with metadata searching. Any other metadata can also be searched, although not 
   nearly as fast as the items listed, which are duplicated in a special index file for 
   fast searching. A strong computer can search for the listed metadata items and file 
   folders/names at a speed exceeding 50,000 images per second.

   All of the search methods described below can be used in combination. The output of a 
   search function can be the input of another search function (to further narrow the 
   search), and search outputs can be added to prior searches.
    
   The following is an overview of the different ways images can be made searchable.
    
   \_Folder and File Names
   These can be used as a basic organization that will enable you to find images even if 
   more effective organizations (tags, captions) are not used. The highest physical 
   organization should be by time, because this will naturally group photos together that 
   are related. I suggest using one subfolder per year named 2001, 2002, etc. This will 
   also prevent any one subfolder from getting too big. Optionally, image files may be 
   further organized in time sequence by using MM.DD as the start of the file name. The 
   rest of the name can be a topic or event, and a sequence number.
       Example:  /images/2011/08.20 Spitzbergen 23.jpg
   This very basic organization allows Fotoxx to find files by searching for years and 
   topics (file names). In the above example, a search for "spitzbergen" or even "spitz" 
   will produce all the images of Spitzbergen. Years can be also be searched and combined 
   with topic searches, e.g. "2012 Paris". The Batch Convert function lets you rename a 
   batch of photos taken at one location or event by specifying a template name like this:
      "$mm.$dd Spitzbergen $ss"
   Month and day (from the EXIF photo date) replace $mm and $dd. "Spitzbergen" replaces 
   the camera file name (P00123456), and a sequence number replaces $ss.
    
   \_Captions and Comments
   A simple method of organization is to use captions and comments. These are arbitrary 
   text strings that can be added to a series of images in rapid sequence: 
   Start Edit Meta, open an image, input text, press [apply], press [next], input text ... 
   Captions and comments are two separate inputs but treated logically the same. They are 
   searchable: words appearing in captions and comments can be searched. You can specify 
   persons, location, topic, etc. for each image and then find them again quickly.
    
   \_Tags (EXIF keywords)
   The most powerful tool is tags, but this is also the most demanding of organizational 
   care. You can go through your images sequentially and add tags by clicking on a list of 
   defined tags. New tags can be defined as needed. Images can have many tags, and can be 
   searched using AND/OR combinations of tags, also in combination with other criteria. 
   Tagging is generally fast, needing a few seconds per image. Fotoxx has two methods of 
   adding tags, a "managed" system and a "random" system. In the managed system, you 
   define tag category names and the tags within each category. When adding tags to 
   images, you can point and click from a list of tags organized by category and 
   alphabetically within category. In the random system, you simply create tags as needed 
   while you tag your images, following no particular system and without categories. When 
   you enter the first few characters of a tag, existing tags that match these characters 
   are shown in a pick-list which you can click to complete adding the tag. If there is 
   no match, a new tag is created. Recently used tags are also shown in a list that can 
   be clicked. Photos made at the same time will normally be tagged in sequence, and will 
   also share many of the same tags. The recent tags list helps to speed the tagging 
   process. Use Batch Add/Remove Tags to add the same tags to many images. Batch Rename 
   Tags can be used to rename tags in selected (or all) images. Tags can be searched in 
   any combination, combined with other search criteria such as a date range or 
   location(s).

   Note that images downloaded from the Internet may have many tags adhering to no system. 
   You will need to clean these out or redo them to stop them from cluttering your list of 
   defined tags. If you see undesired tags in your list of defined tags, it is easy to 
   find the offending image files and purge or change their tags: use the Search Images
   function to find the images, using the unwanted tags as search criteria, and feed this 
   list to Batch Add/Remove Tags or Batch Rename Tags. Tags from downloaded files will 
   have no category, which keeps them separate from tags you define (if you are using the 
   managed tags method). Still, you should avoid accumulating thousands of random tags, 
   and it is easy enough to get rid of them whenever they appear.
    
   \_Geotags
   Use geotags to assign a city or location and country to your images, and optionally 
   latitude/longitude. This enables all images for a location to be quickly found. If you 
   use a camera with a GPS receiver, geotags are added to the image EXIF data, and 
   location searching is available automatically. Since image dates are also automatic 
   (in EXIF), images can be searched by date range and location without you having to 
   enter any data for each image. You can leave it at this, or add some of the above 
   extras if you accept the extra effort required. My experience so far with in-camera 
   GPS is that the location names are chaotic and you may want to sanitize them (mixed 
   upper/lower case, with/without states or other subdivisions, mixed languages, etc.). 
   You can fix the mess with a little effort: search for the location name you want to 
   change (e.g. MUENCHEN, BAYERN, DEUTSCHLAND), then process the resulting images with the 
   Batch Geotags function to change the location name (e.g. Munich, Germany). Location 
   names can be searched in any combination.

   When you add geotags to an image manually, it is usually sufficient to enter just the 
   city or location name and then press [Find]. If the location has been entered sometime 
   in the past, it will be recalled and all geotag data will be filled-in automatically 
   (city/location name, country, latitude, longitude). This will also work if only a few 
   characters of the name is entered, e.g. "hono" will recall the data for Honolulu, if 
   available. When a location is entered for the first time, enter the city or location 
   name and the country, and press the [Web] button. A web service will usually find the 
   latitude and longitude automatically. If not, you can use Wikipedia or other web 
   services to find the location coordinates and enter them manually.

   Images with geotags are also searchable by clicking markers on a world map. The markers 
   are automatically added to the map for all images containing geotag coordinates. The 
   map can be zoomed to any scale from street-level to planet level.
    
   \_Albums
   Another method of organization is to use Albums. Choose a name for each album and 
   assign any desired images to the album by clicking thumbnails in gallery pages. The 
   images are not duplicated: the album is simply an ordered list of file names. Albums 
   can be selected by name and viewed as a gallery of thumbnails. These can be rearranged 
   via thumbnail drag and drop. The images can then be viewed sequentially using keyboard 
   arrow keys, randomly by clicking thumbnails, or as a slide show with animated 
   transitions between images. Albums are also implemented in some other photo management 
   apps, but each one is different and incompatible.

   The image search function can be used to find images to start a new album, and then 
   images can be added, removed, and rearranged as needed. Images can be added simply by 
   clicking gallery thumbnails as you browse your image collection.

   \_Summary
   The following is a summary of some ways to organize a large image collection, with 
   factors to consider when choosing which methods you want to use. In the list below, 
   "search by" specifies which search criteria can be used with each option. Many of the 
   methods below can be combined, and the possible search criteria increases accordingly. 
   Searching by folder and file name and by photo date (EXIF) is available with any 
   organization.

   Images Organized by Topic
      • images are in a topic-named folder (a very common practice)
      • e.g. /.../Susan 8th birthday/P0123456.jpg    (file names from camera)
      • e.g. /.../Paris 2014/Notre Dame 12.jpg       (meaningful file names)
      • fast implementation: no work if this is your starting point
      • Gallery View is by topic only (poor overview if very many topics)
      • search by: topic (using file names)
      • no overview of available search topics

   Images Organized by Year and Topic
      • e.g. /.../2014/Italy/Rome-12.jpg
      • e.g. /.../2014/Susan Wedding/P123456.jpg
      • fast implementation: move your topic folders into year folders
      • Gallery View by year and by topic within year
      • search by: topic (using file names)
      • no overview of available search topics

   Images Organized by Year, Month, Day and Topic
      • e.g. /.../2014/08.22 Rome-12.jpg
      • use Batch Convert to format new names from existing groups of image files
      • natural grouping of related images
      • gallery overview by year, in time order, with topics visible
      • search by: topic (using file names)
      • no overview of available search topics

   Image Folder and File Names Contain Topics
      • e.g. /.../travel/2014/Italy/Rome-Susan-Coliseum.jpg
      • many folks have done this, to search for images using a file search utility
      • you may end up with hundreds of galleries with a few images each
      • search by: topic (using folder and file names)
      • no overview of available search topics

   Captions and Comments
      • e.g. "Susan 2014, Coliseum in background"
      • simple and easy to use
      • moderately fast implementation: 10+ seconds per image
      • risk inconsistent names, unreliable search
        (e.g. search "Rome" would miss the example above)
      • search by: captions and comments (any contained word or words)
      • no overview of available search topics

   Managed Tags
      • e.g. "Rome, Italy, Susan, birthday"
      • point and click in a tag list to add tags to images
      • tags have categories for faster visual location of tags to click
      • typing a few characters is usually enough to retrieve a defined tag
      • recent tags are also available for easy re-use while tagging images
      • no inconsistent or redundant tags, no typos to make searches unreliable
      • requires careful planning of tags - later revisions are cumbersome
      • batch add/delete/rename is available for tag revisions
      • search by: tags in any combination
      • good overview of available search topics (tags organized by category)
      • tag categories are not standard and will not be visible in other applications

   Random Tags
      • no tag organizing system, tags created as needed while tagging images
      • legacy tags can be kept unchanged
      • typing a few characters can retrieve a tag that has been used before
      • recent tags are also available for easy re-use while tagging images
      • risk inconsistent tags (scenery/landscape, Susan/Susy) and typos (scnery) 
      • search by: tags in any combination
      • overview of available search topics: one large pile of tags in alphabetic order

   Geotags
      • e.g. Rome, Italy, 41.89 N, 12.48 E
      • cameras with GPS store this data automatically in images
      • you can manually add locations (5-10 seconds per image)
      • you can batch add geotags to many images at once
      • inconsistent location names from cameras (fixable using Search and Batch Tags)
      • map markers are generated automatically from image geotag data
      • search by: location (city, park, monument ...) and country
      • good overview of available search topics: clickable list of locations and dates
      • click on a map marker to show a gallery of images at location

   Albums
      • album names like this: favorites, best scenery, Italy 2014, Susan childhood
      • albums are a list of contained image files, which are not duplicated
      • make albums using any criteria, containing any images
      • images can be in multiple albums or multiple times within an album
      • images can be arranged in an album by dragging thumbnails to position
      • add images by selecting / dragging gallery thumbnails to album gallery
      • albums are the basis for the slide show function
      • overview of available albums - click on album name to view gallery
      • albums are only usable within Fotoxx (there is no standard for albums)

TRANSLATIONS
   Translations are contained in text files. There is one file per language, named 
   "translate-xx.po", where 'xx' is a locale code like 'fr' for French. These ".po" files 
   contain a list of English text phrases and their corresponding translations. The 
   English phrases are the ones used in the Fotoxx user interface: the menus, dialog 
   boxes, and popup messages. These files can be edited with any text editor, or with a 
   special program for this purpose named "poedit".

   |MISSING TRANSLATIONS| can be used to view a list of missing (untranslated) phrases 
   for any language having a .po file. There is also an option to export the .po file to 
   a place where it can be edited: the Fotoxx home folder. Once this is done, the exported 
   .po file will be used instead of the original file. Any edits made to this file are 
   immediately visible in the next Fotoxx session. For a language having no existing .po 
   file, you can use the English .po file as a template. This file translates English to 
   English, i.e. all translations are duplicates of the English text. Rename the file from 
   "translate-en.po" to "translate-xx.po" where 'xx' is your locale code.

   A translation in a .po file has a 'msgid' line with the English text and a 
   corresponding 'msgstr' line with the translation:
      msgid "The file name is: \n %s"
      msgstr "Der Dateiname ist: \n %s"

   The special codes "%s" and "\n" are for inserted text and formatting. A file name will 
   be inserted at "%s", and "\n" starts a new line. In the example above, the displayed 
   file name will start on a new line. In the translation (msgstr line), these codes must 
   match the English codes (msgid line) in both type and sequence.

   A missing translation looks like this:
      msgid "The file name is: %s \n"
      msgstr ""

   Revising an existing translation:
      1. Edit file "translate-xx.po" to add or update translations for language "xx".
      2. Option: compile the .po file to check for errors: 
         $ msgfmt -v --check-format -o /dev/null  translate-xx.po
      3. Run Fotoxx and check how the translations look. If the computer locale is not 
         "xx", start Fotoxx in language "xx" with the command:  $ fotoxx -l xx
      4. Send the modified .po file to me (mkornelix@gmail.com) so it can be included in 
         the next Fotoxx release.

   Step 2 is optional. The usual binary translation files (.mo) that are output by msgfmt 
   are not needed by Fotoxx. The translation source files (.po) are read directly, and 
   changes made to a .po file are effective the next time Fotoxx is started. Step 2 is 
   useful to find errors (e.g. missing or non-matching format codes, quote marks, etc.).

   Whenever Fotoxx is started from a terminal, missing translations are listed in the 
   terminal window.
    
   \_Problems with long translations
   English can be terse compared to other languages (e.g. "undo" is "Rückgängig machen" 
   in German), and this can cause an ugly or confusing appearance in the GUI layouts. 
   Therefore try to make dialog labels and buttons short, and look closely at the 
   resulting GUI layout.
    
   \_User Guide translation
   The English user guide (this document) is available with the menu Help > User Guide. 
   The file is a text file which may be edited with any editor. This is a large document, 
   over 100 pages.

RECENT CHANGES
   v.20.0  Jan 2020
   This section is provided to help review changes in the user guide.
   |USER GUIDE| - text file with navigation and search functions. 
   |INSTALLATION| - Support for iPhone .heic files and JPEG-2000 .jp2 files.
   |FIRST STARTUP| - initial user options about image indexing.
   |INDEX FILES| - support for removable drives (retain index and thumbnails).
   |QUICK INDEX| - fast incremental index with no user interaction.
   |FILE SAVE| - view and change permissions for created files.
   |PERMISSIONS| - view and change file permissions.
   |META VIEW| and |LIST VIEW| - new Gallery View options. 
   |SELECT FILES| - pre-select files for album/batch/script function.
   |MANAGE ALBUMS| - extended functionality, easier to use.
   |GALLERY TO ALBUM| - save current gallery with assigned album name.
   |SEARCH IMAGES| - option to select/include original + last version.
   |AUTOSEARCH| - shell scripts can use the Search function to select files.
   |CAPTIONS| - choose to display any/all of filename/caption/comment.
   |RETOUCH| - more tools in one place: added saturation, white balance ...
   |UPRIGHT| - automatic upright, but also manual [-90] [+90] buttons.
   |MARKUP| - draw on image: text, line/arrow, box, oval.
   |DENOISE| - new effective methods of noise reduction were added.
   |UNDO EDITS| - Undo previous edits gradually with mouse painting.
   |CHROMATIC 1| |CHROMATIC 2| - fix lateral/axial chromatic aberration.
   |ESCHER SPIRAL| - transform an image into an endless inward spiral.
   |STACK/SLIDER| - show two overlapped images with movable boundary.
   |MAP DEAD PIXELS| - find and compensate stuck sensor RGB channels.
   |MAP PIXEL BIAS| - find and compensate biased pixels (sensor variance).
   |PREFERENCES| - new options for RAW file conversion and edit.
   |PREFERENCES| - TIFF and PNG file compression settings.
   |PREFERENCES| - choose program for playing videos: totem, vlc ...
   |TECHNICAL NOTES|- how symbolic links are handled in Fotoxx.
    
    
TECHNICAL NOTES
   Additional technical topics can be found on the Fotoxx web site: kornelix.net

   \_Fotoxx Limitations
      • image files - Fotoxx has been tested with 500K image files and the 
        performance was good. See Benchmarks below.
      • image size = The max. supported image width or height is 30,000 pixels 
        The maximum image size is 500 megapixels (8 GB unpacked in memory). 
        Images edited in memory use 4 floats (16 bytes) per pixel (RGB + alpha).
      • image edits - 99 edit versions for undo/redo and file version naming.
      • image tags - 10K tags, 200K chars. for all tags, 1000 chars. for one image.
        These are compile time constants and could be easily increased.
    
   \_Running out of memory
   Fotoxx can require a huge amount of main memory to edit a large image. A 20 megapixel 
   image requires 640 megabytes for the simplest edits, and more for complex edits. 
   Images in memory are not compressed and each RGB pixel is represented by three 
   floating-point numbers and a transparency value (16 bytes total). HDR, Panorama and 
   other combine functions hold all images in memory during alignment and post-process 
   tuning. If you push the memory limits on a small PC, the Linux kernel may kill the 
   Fotoxx process without warning and with no message (this is to keep the operating 
   system itself from crashing). What you see is that the Fotoxx window vanishes.
    
   Fotoxx memory footprint
      • View 30 megapixel image              324 MB
      • Retouch 30 megapixel image           670 MB
      • Trim/Rotate 30 megapixel image       980 MB
      • Resize (down) 30 megapixel image     1.4 GB
      • Zonal Retinex 30 megapixel image     4.0 GB
      • Panorama, 50 megapixel output        4.8 GB
   
   Bottom line: If you edit large images, you need a minimum of 8 GB of main memory, and 
   16 GB is recommended. Extending memory with a swap partition or swap file makes the 
   performance unbearably slow.
    
   \_Running out of disk space
   During a series of image edits, each edit step is saved on disk, and the before/after 
   results can be viewed with the Undo/Redo button. These images use 32-bit floating point 
   numbers for color values and are not compressed. A 30 megapixel image makes a 480 MB 
   file. If there are 10 edit steps in the undo/redo stack, the required disk space is 
   4.8 GB. If disk space runs out during an edit session, the program terminates with a 
   message. To avoid this, be sure there is plenty of disk space wherever your Fotoxx home 
   folder resides. When you open a new image or quit Fotoxx, the disk space is recovered. 
   If Fotoxx crashes, the space is recovered the next time Fotoxx is started or when the 
   computer is rebooted.
    
   \_zappcrash\_ - backtrace dump after a fatal error
   If Fotoxx has a fatal error, it attempts to intercept the error and produce a backtrace 
   dump which is copied to the desktop. Please send this file to mkornelix@gmail.com so I 
   can fix the error. A description of what you did immediately before the crash would 
   also be helpful, since I may not be able to fix the error unless I can reproduce it.
   zappcrash uses the utility program 'addr2line' to add source code line numbers to the
   report. Please insure this program is installed. Otherwise the crash report is useless.
   
   \_Symbolic Links in Fotoxx
   Symbolic links are supported in a limited manner. Take the time to understand these
   limits if you are using symbolic links. This is complicated, and it is easy to make
   mistakes if you are not aware of the pitfalls. 
   
   The image index and thumbnail files are only created and maintained for the real path. 
   For a given image file, only one index entry and thumbnail can exist. If a symlink path 
   is used to access and modify an image file, the symlink is converted into a real path 
   before use. If a new file version is created, it will exist in the same real path as the
   original file. If there is a symlink to a parent folder of the original file, the new 
   file version will also exist in that same path, just like the original file. If the 
   symlink is direct to the file that was modified, and a new version is created, the new 
   file version will be only in the real path of the original file. No new parallel symlink 
   is created like the one that links to the original file. On that path, only the original 
   file is visible.

   The Image Search function finds real paths only. 
   
   Symlinks direct to an image file may have \_no extension or a misleading extension 
   (e.g. /.../filename.png links to /.../filename.jpg). Technically, this works because
   the real path is used to choose the library function to read and write the file.

   Good advice: never use symlinks direct to image files - use folder links only.
   
   \_Hard Links
   Fotoxx does not know about these and processes them like normal folders or files. The 
   result is that duplicate index entries and thumbnails are created. If an image file 
   having multiple hard links is modified in Fotoxx, only the index entry and thumbnail 
   for the access path that was used is updated. Others become invalid. If only one access
   path for a file is within the scope of your top image folders, and you use Fotoxx only 
   on this path, this should work OK.
    
   \_Preview Mode
   Some edit functions use a reduced image size for a faster interactive response time. 
   This is shown on the top panel as "(reduced)". When [done] is pressed, the full-size 
   image is then processed. This is why [done] sometimes takes noticeable time. An image
   sized for the monitor (2-4 megapixels) is much faster to process than a 20+ megapixel 
   image (the original camera file). This method is used whenever the preview edits can be 
   applied to the full-size image without visible impact (e.g. Trim/Rotate, Warp functions, 
   brightness and color related functions). It cannot be used for some other functions 
   (e.g. sharpen, Gradients) because the results cannot be scaled-up for a larger image.
    
   \_File Size
   The file size shown on the top panel while an image is being edited is the original 
   (unedited) file size. The file size for an edited image is not known until the image is 
   saved on disk. In memory the size is (pixels x 16). A 40 megapixel image uses 640 MB 
   in memory and typically less than 4 megabytes on disk (high quality JPEG). When the 
   edited image is saved, the correct file size is updated on the top panel.
    
   \_File Types Supported
   Fotoxx uses Linux library functions to support reading and writing of image files: 
   the GDK pixbuf library, libjpeg, libpng, libtiff. The file types that can be read and 
   written include JPG/JPEG, PNG, and TIF/TIFF. Three RGB colors with 8 bits per color 
   are supported for all types. PNG and TIFF also support 16 bits per color and an alpha 
   channel (transparency information). Fewer than 8 bits per color and grayscale images 
   are partly supported, and are converted to RGB internally.

   \_Index Files
   These can be found in the folder [fotoxx-home]/image_index/
   The file "index20" contains image file pathnames and metadata items that are indexed 
   for fast searching (dates, ratings, tags, caption, comments, geotags). The file 
   "top_folders" contains a list of the top image folders. These are searched for new 
   image files whenever Fotoxx starts up. The last entry is the thumbnails top folder.

   \_Color Depth
   8-bit color (256 brightness levels), as supported by JPEG files, is the norm for image 
   files and is generally adequate. A difference of one brightness step (0.4% of the 
   entire range) cannot be seen. A greater color depth than 8 bits can be useful if some 
   part of the brightness range within an image has been greatly expanded by editing. 
   This expansion can lead to visible "banding" or "posterization". If the RAW image is 
   edited instead of the JPEG (and if the RAW image really has more than 8 bits of 
   low-noise color), this problem can be reduced, even if the edited image is converted 
   back to JPEG for final storage. Currently (2019), only expensive cameras with large 
   sensors produce RAW files with more than 8 bits of low-noise color at normal exposure
   levels (ISO 100). 

   The image below changes gradually from black to white. The color depth is 6 bits 
   (64 brightness levels). Note that the brightness steps are barely visible.
   +image: brightness-steps.png

   \_Denoise Function - noise measurement
   An area of radius 10 pixels around the clicked position is sampled. The RGB brightness 
   levels reported (0-255) are the averages for this area. Within this area, every pixel 
   is measured and compared with the mean of the surrounding 5x5 block of pixels. The RGB 
   noise levels reported are the average differences. If the sampled area has a small 
   gradient in brightness, the measurement is not sensitive to this. If a RAW image is 
   measured, a 16-bit TIFF made from the RAW is used.

   \_RAW Image Noise
   You may be surprised at the typically high noise levels in RAW images. Cameras filter 
   out this noise when making a JPEG image. Expensive cameras with large sensors may have 
   more than 8 bits of low noise color, especially if the image is well exposed at low ISO 
   levels. The bit-depth claims are exaggerations, since noise will predominate at the 
   deeper bit levels. When you use Fotoxx or any other tool to filter noise from a RAW 
   image, you are competing with the camera maker's electronics and software used to 
   produce the camera JPEG. It might be a challenge to do better.

   \_Trim/Rotate Function
   Interactive rotations (via mouse drag or the [degrees] spin button) update the image
   20 times per second or more. Two special methods are used to make the image move faster
   and smoother: (1) a smaller image is used, which is scaled up to full size when the 
   [done] button is pressed. (2) a fast rotate method is used having lower image quality,
   followed by a high-quality method applied one second after all rotation has ceased. If 
   you zoom the image to 2x or more and use the spin button to rotate the image, you can 
   see pixelation on sharp feature edges which disappears after one second.
    
   \_Alignment Algorithm (HDR, HDF, Stack, Panorama)
   Relatively few high-contrast or "feature edge" pixels are used to control alignment. 
   The actual pixels used are shown in red during the alignment process, which is also 
   more entertaining. Each image in succession is systematically warped various small 
   amounts and the fit with other images 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 camera lenses are not geometrically perfect.

   \_Alpha Channels
   Images having alpha channels (transparency information) can be edited, and the alpha 
   channel is preserved if the image is saved as a PNG or TIFF file. JPEG files do not 
   support alpha channels.

   \_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 
   file is first processed, to minimize image deterioration (or go back to the original 
   if you still have this). Any function that changes image size or shape will reduce 
   resolution about 1/2 pixel. These are the resize, rotate, warp, and all of the combine 
   functions. Rotating 90 degrees does not affect resolution. When downsizing an image, 
   using the ratios 1/2, 1/3, 1/4 will give the best resolution. Functions that change 
   brightness and color do not affect resolution.
    
   \_JPEG Compression
   If a JPEG file from a digital camera is saved with Fotoxx, you will likely notice a 
   large reduction in file size, even if a high JPEG quality level is used. This is 
   because Fotoxx can afford to invest more processing power in the compression. A camera 
   CPU is not very fast and must save an image quickly to be ready for the next photo, so 
   the processing time available for compression is limited. The CPU of a typical PC is 
   much faster and has more time, so the compression level is higher. The smaller file 
   size does not mean that the quality is less.

   \_Image Deterioration From Repeated Saving of JPEG files
   Reading a compressed JPEG image and saving it again can lead to loss of detail and 
   increased image artifacts. The effect seems to be negligible if JPEG "quality" is set 
   to a high value when the image is saved. The image below was saved 10 times using 
   quality=90 (Fotoxx default), each time opening and saving the previous image file.
   Differences can be found if you look hard enough. The images are 2x size and the 
   insets are 5x.
   +image: jpeg-quality.jpg

   \_Metadata Errors
   Cameras (esp. older ones) do not always produce structurally correct metadata, and the 
   program exiftool (used by Fotoxx to manipulate metadata) may produce error messages. 
   I have been able to fix these cases by saving the image file on top of itself, which 
   replaces the metadata with whatever exiftool was able to read correctly. If desired
   metadata gets lost, you can restore it using the Edit Any Meta function.
    
   \_Newline characters in Comments and Captions
   When editing metadata 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 metadata, since newline characters are not allowed 
   (exiftool converts them to 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. 
   In this case, column alignment is not possible.
    
   \_Dialog Window Positioning
   For commonly used dialogs, Fotoxx saves the dialog window position (relative to the 
   main window) and tries to restore the same position the next time the dialog is used. 
   This works, mostly. Sometimes the window manager decides some other position.
    
   \_Uninstall Fotoxx
   Tarball: use the command:  $ sudo make uninstall
   Appimage package: navigate to the location of the executable file: fotoxx-N.N-appimage
                     and use the command: $ ./fotoxx-N.N-appimage -uninstall
   Debian package: $ sudo apt remove fotoxx
    
   \_Installed Files
   Fotoxx (Debian package) installs files in the following folders.
      /usr/bin/fotoxx            the executable program file
      /usr/share/fotoxx/*        user guide, translation files, icons, default data, etc.
      /usr/share/doc/fotoxx/*    change log, man page, README, license, copyright

   The appimage package is self-contained and does not install the above files.
   The only installed file is the appimage executable itself: fotoxx-N.N-appimage.
    
   Installed Files - optional fotoxx-maps (Debian package)
      /usr/share/fotoxx-maps/*         geographic maps data files (112 MB) 
      /usr/share/doc/fotoxx-maps/*     change log, man page, README, license, copyright

   The fotoxx-maps appimage package puts these files at 
      /home/<user>/.local/share/fotoxx-maps/
   Fotoxx can use the files at either location.
    
   Fotoxx Folders and Files
      • Fotoxx Home: folder for user preferences, settings and general Fotoxx memory
      • Default Fotoxx home location:  /home/<user>/.fotoxx/
      • If Fotoxx home was moved elsewhere by the Move Fotoxx Home function,
        the file  /home/<user>/.fotoxx-home  contains the location of Fotoxx home.
      • The files in Fotoxx home are preserved when a new release of Fotoxx is installed.
    
   The folder 'image_index' (within Fotoxx home) contains the following files:
      • index_config:  top image folders, thumbnails folder, custom metadata items
      • index20: a huge text file containing image file locations and indexed metadata
    
   Files in Fotoxx home
      • draw_line/         image lines and arrows saved from Draw Line/Arrow function
      • draw_text/         image text overlays saved from Draw Text function
      • albums/            image albums from Manage Albums function
      • custom_kernel/     saved custom kernel data files
      • custom scripts/    saved script files for custom edit functions or batch editing
      • favorites/         saved data for user-configuration of favorites menu
      • image_index/       top folders, thumbnail folder, image index file
      • mashup/            saved mashup project files
      • montage_maps/      saved image montage maps
      • palettes           color palettes used by the Dither function
      • patterns/          saved background patterns
      • printer_color/     saved printer color calibration files
      • pixel_maps         dead pixel maps and pixel bias maps
      • retouch/           saved settings for the Retouch function
      • saved_areas/       "cutout" files saved from the Select Area > Save dialog
      • saved_curves/      curve data saved from Retouch curve edit dialogs
      • search_images/     saved settings for the Search Images function
      • slideshows/        user preferences from Slide Show function
      • slideshow_trans/   saved slide show transition parameters
      • tempfiles-12345/   temporary files for current session - number is session PID
      • thumbnails/        thumbnail files (default location, user can change this)
      • user_maps/         custom map files made by the user
      • bookmarks          bookmark names and image file locations
      • colorwheel.jpg     color selection palette for Paint Image function
      • gallery_memory     saved sort order and position for gallery windows
      • KB-shortcuts20     user-defined or modified keyboard shortcuts
      • logfile            Fotoxx outputs that may be relevant for diagnosing problems
      • metadata_report    last metadata report - tabular text file
      • metadata_report_items    list of metadata items reported by Batch Report Meta
      • metadata_short_list      metadata key names for Batch Add/Change Metadata
      • metadata_view_extra      extra custom items for the metadata short report
      • netmap_locations         saved locations in net map view
      • pagesetup          saves page setup data for print function
      • parameters         setup parameters that are saved across Fotoxx sessions
      • plugins            saves the plugins menu contents
      • printsettings      saves print settings data for print function
      • README             text file - how to install Fotoxx from the source tarball
      • recent_files       list of the last 1000 files opened by Fotoxx
      • search_results     list of the last image files found with Search Images 
      • slideshow-tone.oga    a short music tone for slide show
      • tags_defined       list of all categories and tags currently used in all images
      • widgets.css        styling changes to standard GTK widgets
      • zdialog_geometry   saved dialog window positions (relative to main window)
      • zdialog_inputs     saved dialog data for dialogs that recall prior inputs
    
   \_Metadata used by Fotoxx
   The following metadata items (stored inside the image files) are used by Fotoxx. These 
   items (and any other metadata) can be viewed or edited using Fotoxx. Images can be 
   searched using these items (or any other metadata) as selection criteria. Those marked 
   "indexed" can be searched very fast, others more slowly (see benchmarks below).

      Metadata section and name        Usage                          Source   Indexed
       IPTC  Keywords                  tags (keywords)                 user      yes
       IPTC  Rating                    "star" rating                   user      yes
       EXIF  ImageSize                 pixel dimensions, 12345x6789    auto      yes
       EXIF  DateTimeOriginal          date/time photo was made        camera    yes
       EXIF  ImageHistory              history of edits using Fotoxx   Fotoxx    no
       EXIF  UserComment               comment text                    user      yes
       IPTC  Caption-Abstract          caption or abstract text        user      yes
       EXIF  FocalLengthIn35mmFormat*  focal length, 35mm equivalent   camera    no
       EXIF  City, Country             city/location and country       camera*   yes
       EXIF  GPSLatitude/Longitude     earth coordinates               camera*   yes
       EXIF  RollAngle                 camera tilt angle               camera    no

      (*) camera - camera GPS, or entered by user
      (*) FocalLengthIn35mmFormat - some cameras use 'FocalLength' for the same thing

   \_Fotoxx Benchmarks
   Conditions: Fotoxx 20.0, Intel Core i5, 3 GHz x 4 processor cores
    
   Image Index speed for large JPEG files (average 2.34 MB).
   Create both the metadata index file and thumbnail files.
      • 5400 rpm disk: 631 files / minute
      • 7200 rpm disk: 915 files / minute
      • SSD disk: 6849 files / minute
    
   Fotoxx Startup Time by Image Index Level (see |PREFERENCES|),
   measured with 109K old image files and zero new image files.

      Disk Type   Index     initial startup    subsequent
                  Level*    after reboot       startups
      5400 rpm      2        10.4 secs          2.8 secs
      5400 rpm      1         0.7               0.6
      5400 rpm      0         0.3               0.3
      7200 rpm      2         8.5               2.5
      7200 rpm      1         0.6               0.6
      7200 rpm      0         0.3               0.3
      SSD           2         2.9               1.8
      SSD           1         0.6               0.6
      SSD           0         0.3               0.3

      (*) Index level:
         0 = indexing disabled (search functions disabled)
         1 = use current index without updates for new image files
         2 = use current index + search and update for new image files
    
   Search speed for indexed metadata:       >10K files/sec.
   Non-indexed metadata, 7200 rpm disk:      3170/min.
   Non-indexed metadata, SSD disk:           4980/min.

   Benchmarks run on a laptop computer, Intel Core i5, 1.6 GHz x 4 cores:
   Image indexing speed is about 1/3 as fast as the desktop system shown above.
    
   \_Fotoxx Source Code
   The C++ source code is available at the web site \_https://kornelix.net. The code is 
   heavily commented in the hope that others can understand and use the code for their 
   own projects. If you have a technical question about how something works, or a better 
   idea to pass along, you may contact me (mkornelix@gmail.com). 
    
   \_Questions, Problems, Bugs
   If you have a question or a problem, you may contact me. If there is a traceback dump 
   (zappcrash file), please send this to me. Please explain how to produce the error, 
   if you can.

   \_Acknowledgements
   Algorithms for the following functions were adapted from "Introduction to Image 
   Processing and Analysis" by Russ and Russ: flatten brightness distribution, noise 
   reduction (median smoothing, top hat), sharpen (unsharp mask, kuwahara method), 
   emboss, RGB/HSL conversion. The wavelets method for noise reduction was adapted from 
   the program dcraw by Dave Coffin. Other libraries and utilities used by Fotoxx 
   include: libgtk, libjpeg, libtiff, libpng, liblcms, dcraw, RawTherapee, libchamplain,
   exiftool, and many other programs included in Gnu/Linux. Fotoxx coding was started
   in 2008. Many users have contributed ideas and helped with testing and debugging. 
   Translation credits are in Help > About.
   
   \_Fotoxx for Microsoft Windows 10
   This can be done with some effort. See the following web page:
     \_https://kornelix.net/fotoxx_topics/Fotoxx_for_Windows.html


ALL TOPICS INDEX
   |ADJUST HSL| - select and change colors using HSL colors 
   |ADJUST RGB| - adjust image colors using RGB or CMY colors
   |ALBUM MASS UPDATE| utilities for mass update of multiple album files
   |ALIEN COLORS| - add random strange colors to an image
   |ALL FOLDERS| - show all image file folders in a tree structure
   |APPIMAGE FILES| - list the files included in the Appimage container
   |AREA OVERIVEW| - select area - concepts and usage
   |AREA RESCALE| - rescale an image down, leaving selected area at full scale
   |AUTOSEARCH| - script files can use the Search function to screen files
   |BATCH CHANGE META| - add or revise metadata for selected or all images
   |BATCH CONVERT| - copy, move, resize, rename, convert, add text ...
   |BATCH DELETE/TRASH| - delete or trash selected images
   |BATCH GEOTAGS| - add or revise geotags for selected or all images
   |BATCH PHOTO DATE| - change photo dates or times, or shift time zone
   |BATCH PROCESSING| - overview of batch processing functions
   |BATCH RAW| - convert RAW files to JPEG/PNG/TIFF, 8 or 16 bit color
   |BATCH RENAME TAGS| - rename tags for selected or all images
   |BATCH REPORT META| - report metadata for selected or all images
   |BATCH SCRIPT| - execute script on all selected image files
   |BATCH TAGS| - add or remove tags for selected images
   |BATCH UPRIGHT| - scan for rotated images and upright them
   |BLANK IMAGE| - create a new blank image file with specified size and color
   |BLANK WINDOW| - blank or restore (toggle) the current image window
   |BLUR| - blur an image or image area, multiple methods
   |BOOKMARKS| - add bookmarks, view list of bookmarks, go to bookmark
   |BRITE DIST| - edit brightness distribution, rebalance dark and bright areas
   |BRITE RAMP| - add a brightness/color ramp across an image
   |BURN DVD/BRD| - create a DVD or BlueRay disc with selected image files
   |CALIBRATE PRINTER| - calibrate printer color - compensate for color shifts
   |CAPTIONS| - show file name, captions, comments in image corner
   |CARTOON| - convert an image to a cartoon-like drawing
   |CHANGE LANGUAGE| - change the language of the menus and dialogs
   |CHOOSE MAP| - choose from available maps (USA, France, NYC, etc.)
   |CHROMATIC 1| - fix chromatic aberration (color fringes, mainly image periphery)
   |CHROMATIC 2| - fix chromatic aberration (color bands along bright/dark edges)
   |CLEAR AREA| - remove an area
   |COLLECTION MANAGEMENT| - collection management and image searching
   |COLOR DEPTH| - reduce the number of colors (posterize)
   |COLOR MODE| - convert to black & white, color, negative, positive, sepia
   |COLOR PROFILE| - convert color profile (e.g. sRGB <--> Adobe RGB)
   |COMMAND PARAMETERS| - Fotoxx startup options using command line parameters
   |COPY/MOVE| - copy or move an image file to another folder
   |COPY/PASTE AREA| - copy an area and insert somewhere else later
   |COPY PIXELS 1| - mouse-paint area with pixels copied from the same image
   |COPY PIXELS 2| - mouse-paint area with pixels copied from another image
   |COPY TO CLIPBOARD| - copy an image file to the clipboard
   |COPY TO DESKTOP| - copy an image file to the desktop
   |CURVE EDITING| - how to manipulate curves used in edit functions
   |CUSTOM DIALOG WIDGETS| - how to use custom dialog widgets
   |CUSTOM KERNEL| - edit and apply a custom convolution kernel to an image
   |CYCLE 2| - cycle through the two most recently seen image files
   |CYCLE 3| - cycle through the three most recently seen image files
   |DARK/BRIGHT PIXELS| - tool to highlight clipping
   |DELETE META| - delete specified metadata or all metadata
   |DELETE/TRASH| - delete or trash an image files
   |DENOISE| - reduce image noise (small random specks, esp. in dark areas)
   |DIALOG BUTTONS| - dialog completion options
   |DITHER| - different ways to pixelize or posterize an image
   |DRAG AND DROP| - file drag and drop methods
   |DRAW BOX| - draw box on image (enclose emphasized area)
   |DRAW LINE| - draw line or arrow on image
   |DRAW OVAL| - draw oval on image (enclose emphasized area)
   |DRAW TEXT| - draw text on image with arty attributes
   |EDIT ANY META| - edit any metadata (add, change)
   |EDIT META| - edit commonly used metadata
   |EDIT PROCEDURES| - how to edit image files
   |EDIT SCRIPT| - record a series of edits in a script file, execute on many files
   |EDIT WORKFLOW| - alternative edit methods - simple and complex
   |EMBOSS| - convert an image to a simulated embossing (3D effect)
   |ENABLE/DISABLE AREA| - enable or disable an area for editing
   |ESCHER SPIRAL| - transform an image into an endless inward spiral
   |EXPORT FILE LIST| - create a list of selected files (e.g. for use in a shell script)
   |EXPORT FILES| - export selected files to a folder (e.g. for web upload)
   |FILE MAP| - use local map files
   |FILE SAVE| - save an image file (replace, new version, new file name)
   |FILE VIEW| - File View window (view single image file)
   |FIND AREA GAP| - find gap in hand-drawn area outline
   |FIND DUPLICATES| - find duplicate images in a gallery or the entire image collection
   |FIRST STARTUP| - information for when Fotoxx is started for the first time
   |FLATTEN BOOK| - flatten and straighten a photographed book page
   |FLATTEN| - flatten brightness within local zones to enhance details
   |FOTOXX CAPABILITIES| - summary of Fotoxx functions and tools
   |FOTOXX OVERVIEW| - description, prerequisites, license, downloads
   |GALLERY TO ALBUM| - save the current gallery as an album with assigned name
   |GALLERY VIEW| - Gallery View window (view thumbnails)
   |GLOBAL RETX| - rescale RGB brightness values to remove color cast and fog/haze
   |GOTO FIRST| - jump to gallery start
   |GOTO LAST| - jump to gallery end
   |GRADIENTS| - increase local contrast to enhance details
   |GRID LINES| - show or remove grid lines, set line count or spacing
   |HDF| - combine images with varying focus depth for extended depth of field
   |HDR| - combine images with varying ISO for an extended brightness range
   |IMAGE DIFFS| - subtract two images (with offsets) for artistic effect
   |INDEX FILES| - 1-time job to find and index all image files
   |INDEX FUNCTION| - locating and indexing image files for fast searching
   |INSIDE-OUT| - invert the center-edge distance of each pixel
   |INSTALLATION| - Fotoxx software installation, dependencies
   |INVERT AREA| - invert an area (exchange outside/inside areas)
   |KB SHORTCUTS| - show and revise keyboard shortcuts for menu functions
   |KEYBOARD ENTER KEY| - functions of Enter key
   |KEYBOARD ESCAPE KEY| - functions of the Escape key
   |KEYBOARD SHORTCUTS| - keyboard shortcuts for file/gallery/map views
   |LINE COLOR| - set color for select area outlines
   |LINE DRAWING| - convert an image to a simulated line drawing
   |LIST VIEW| - compact Gallery View with tiny thumbnails and file names only
   |LOAD/SAVE AREA| - load an area from a file or save an area to a file
   |MAGNIFY IMAGE| - turn mouse into a magnifying glass over image
   |MAKE WAVES| - warp an image with a wave pattern
   |MANAGE ALBUMS| - create and arrange user-defined image collections
   |MANAGE TAGS| - manage user-defined tags
   |MAP DEAD PIXELS| - map dead pixels from camera sensor defects or dust specks
   |MAP PIXEL BIAS| - map pixel RGB level variances from camera sensor variances
   |MAP VIEW| - map view window (view map with location markers)
   |MARKERS| - show map markers for all images or only current gallery
   |MARKUP| - draw on image: text, line/arrow, box, oval
   |MASHUP| - arrange multiple images and formatted text in a custom layout
   |MATCH COLORS| - match the colors in one image to those in another image
   |MENU SHORTCUTS| - popup menus, keyboard shortcuts, favorites menu
   |MENU SUMMARY| - outline of menu groups and contents
   |META VIEW| - Gallery View with thumbnail and basic metadata used by Fotoxx
   |MIRROR| - mirror (or flip) an image horizontally or vertically
   |MISSING TRANSLATIONS| - list missing translations for the current language
   |MONITOR COLOR| - tool to adjust monitor brightness and contrast
   |MONITOR GAMMA| - tool to adjust monitor gamma
   |MONTAGE| - join many images into a compact tablular format
   |MOSAIC| - convert an image into a mosaic using tiles made from all images
   |MOUSE FUNCTIONS| - mouse functions for file/gallery/map views
   |MOUSE OWNERSHIP| - dialog-mouse control and interaction
   |MOVE FOTOXX HOME| - move fotoxx home folder to a new location
   |NET LOCS| - define or go to named map location (position and scale)
   |NET MAP| - use internet map source
   |NET SOURCE| - set internet source for map
   |NEWEST| - open Gallery View of newest images in the collection
   |NEW SESSION| - start new Fotoxx session in a separate window
   |ORGANIZING IMAGES| - options for image organization and efficient searching
   |PAINT EDITS| - mouse-paint an edit function locally and gradually
   |PAINT IMAGE| - mouse-paint with a color, brush size, and opacity
   |PAINTING| - convert an image into a simulated painting
   |PAINT TRANSP| - paint increasing transparency using the mouse
   |PANORAMA| - stitch together a series of images horizontally
   |PATTERN| - add a background pattern to an image
   |PERMISSIONS| - view and set permissions for an image file
   |PERSPECTIVE| - straighten an object photographed from an obtuse angle
   |PLACES/DATES| - list image locations and date groups, click for gallery
   |PLUGINS| - use another image edit application as a Fotoxx edit function
   |POPUP REPORTS| - keyboard navigation for text-based popup reports
   |PREFERENCES| - user preferences and settings
   |PREV/NEXT| - show the previous or next image file in the current gallery
   |PRINT CALIBRATED| - print an image file using printer color calibration data
   |PRINT| - print an image file
   |PT PANORAMA| - stitch together a series of images using Panorama Tools
   |QUICK INDEX| - quick incremental index with no user interaction
   |RAW THERAPEE| - (RAW files only) start special RAW edit program
   |RECENT CHANGES| - list of recent user guide changes
   |RECENT CHANGES| - recent changes to this document
   |RECENT| - open Gallery View of most recently seen images
   |RED EYES| - remove red eyes from flash photos
   |REMOVE DUST| - remove dust spots on images scanned from old photos
   |RENAME| - rename an image file
   |RESIZE| - change the image pixel dimensions
   |RETOUCH| - edit brightness, contrast, color, saturation
   |RGB DISTRIBUTION| - show a brightness distribution graph for the current image file
   |RIGHT-CLICK MENUS| - popup menu functions for File View and Gallery View
   |RUN SCRIPT| - execute script on current image file (a custom edit function) 
   |SCRIPT FILES| - script files (macros) overview
   |SEARCH IMAGES| - search images using any metadata or file name data
   |SELECT AREA| - selecting an image feature or area for separate editing
   |SELECT FILES| - select files for an album, or input to batch or script function
   |SELECT HAIRY| - select a complex area, such as hair or foliage
   |SELECT IMAGE FILES| - image file selection procedure used for many functions
   |SET WALLPAPER| - set the desktop wallpaper from the current image file (Gnome)
   |SHARPEN| - sharpen a blurred image, multiple methods
   |SHIFT COLORS| - gradually shift RGB colors to GBR or BRG
   |SHOW/HIDE AREA| - show or hide area outlines
   |SHOW ON MAP| - show an image file position in Net Map View
   |SHOW RESOURCES| - show CPU time and current memory usage
   |SHOW RGB| - show RGB values at mouse position or for selected points
   |SKETCH| - convert an image into a simulated sketch
   |SLIDE SHOW| - create a slide show with animated transitions and zooms
   |SMART ERASE| - remove power lines, trash, signs, other small image spoilers
   |SORT GALLERY| - change the sort order of a gallery
   |SOURCE FOLDER (2)| - open corresponding Gallery View from current File View image
   |SOURCE FOLDER| - open corresponding Gallery View from current File View image
   |SPHERE| - curve an image into a spheroid shape
   |STACK/LAYER| - combine images, select/paint which image to show in each area
   |STACK/NOISE| - combine images to reduce noise by averaging
   |STACK/PAINT| - combine images to remove transient cars, tourists, etc
   |STACK/SLIDER| - show two images overlapped with a movable boundary line
   |STRETCH| - increase the image scale from the middle outwards
   |TAGS OVERVIEW| - image tags (keywords) used for image searching
   |TECHNICAL NOTES| - some technical information about Fotoxx
   |TEXTURE| - add texture to an image or selected area
   |THUMB VIEW| - Gallery View with large thumbnails and file names only
   |TILES| - convert an image into simulated square tiles
   |TIMELINE| - table of image counts by year and month, click for gallery
   |TINY PLANET| - wrap a panorama image around a circle
   |TOP PANEL DATA| - details of information in the File View top panel
   |TRANSLATIONS| - adding or updating a translation
   |TRIM/ROTATE| - trim margins, rotate or level an image
   |TWIST| - twist an image around a chosen center point
   |UNBEND| - straighten images having curved lines, esp. panoramas 
   |UNDO EDITS| - mouse-paint to undo previous edits locally and gradually
   |UNDO/REDO BUTTON| - sequential undo or redo edits to current image
   |UNWARP CLOSEUP| - remove distortions of a close-up face photo (e.g. big nose)
   |UPDATE ALBUMS| - update album files for updated image files (new versions)
   |UPRIGHT| - upright a rotated image (automatic or ±90 degrees)
   |USER GUIDE| - comprehensive Fotoxx usage guide (this document)
   |VERT. PANORAMA| - stitch together a series of images vertically
   |VIDEO FILES| - show and play video clips included in image collection
   |VIEW 360° PANO| - view a 360° panorama with a rotating viewpoint and wrap-around
   |VIEW ALL META| - list all image metadata
   |VIEW META| - list main image metadata
   |VIGNETTE| - change brightness or color radially around a chosen center
   |VOODOO 1| - automatic 1-click enhancement that may work
   |VOODOO 2| - automatic 1-click enhancement that may work
   |WARP AFFINE| - warp image by pulling with the mouse - parallel lines preserved
   |WARP AREA| - warp a selected image area by pulling with the mouse
   |WARP CURVED| - warp entire image or area using the mouse - curvy warp
   |WARP LINEAR| - warp image by pulling with the mouse - straight lines preserved
   |WEB UPLOAD| - how to select and upload a batch of images to Flickr, etc.
   |WINDOW VIEWS AND MENUS| - top-level windows and associated menus
   |ZAPPCRASH TEST| - test crash report with source code line numbers
   |ZONAL RETX| - rescale RGB brightness values to remove color cast and fog/haze
   |[+-]| - increase/decrease image/thumbnail size, |FILE VIEW|, |GALLERY VIEW|

EOF   (nothing shows beyond this point)

==========================================================================================
   
   following are tests for validate_docfile() function 
   run test as follows: $ fotoxx -m "validate user guide" 

   |BAD TOPIC 1| xxxxxx |BAD TOPIC 2|           deliberate bad topic links
   +image: badfile1.png  +image: badfile2.jpg   deliberate bad image links 


F1 topics from Fotoxx source files
----------------------------------
file: /home2/mico/programs/fotoxx-20.0-test/f.file.cc 
topic: |CYCLE 2| 
topic: |CYCLE 3| 
topic: |VIEW 360° PANO| 
topic: |RENAME| 
topic: |PERMISSIONS| 
topic: |PREV/NEXT| 
topic: |PREV/NEXT| 
topic: |PREV/NEXT| 
topic: |[+-]| 
topic: |BLANK IMAGE| 
topic: |BLANK WINDOW| 
topic: |COPY/MOVE| 
topic: |COPY TO DESKTOP| 
topic: |COPY TO CLIPBOARD| 
topic: |SET WALLPAPER| 
topic: |DELETE/TRASH| 
topic: |PRINT| 
topic: |FILE SAVE| 
file: /home2/mico/programs/fotoxx-20.0-test/f.widgets.cc 
topic: |FAVORITES| 
file: /home2/mico/programs/fotoxx-20.0-test/fotoxx.cc 
topic: |FIRST STARTUP| 
topic: |UNDO/REDO BUTTON| 
file: /home2/mico/programs/fotoxx-20.0-test/f.tools.cc 
topic: |INDEX FILES| 
topic: |QUICK INDEX| 
topic: |MOVE FOTOXX HOME| 
topic: |PREFERENCES| 
topic: |KB SHORTCUTS| 
topic: |RGB DISTRIBUTION| 
topic: |MAGNIFY IMAGE| 
topic: |FIND DUPLICATES| 
topic: |SHOW RGB| 
topic: |COLOR PROFILE| 
topic: |CALIBRATE PRINTER| 
topic: |CALIBRATE PRINTER| 
topic: |PRINT CALIBRATED| 
topic: |GRID LINES| 
topic: |LINE COLOR| 
topic: |DARK/BRIGHT PIXELS| 
topic: |MAP PIXEL BIAS| 
topic: |MAP DEAD PIXELS| 
topic: |MONITOR COLOR| 
topic: |MONITOR GAMMA| 
topic: |CHANGE LANGUAGE| 
topic: |MISSING TRANSLATIONS| 
topic: |SHOW RESOURCES| 
topic: |APPIMAGE FILES| 
file: /home2/mico/programs/fotoxx-20.0-test/f.effects.cc 
topic: |SKETCH| 
topic: |CARTOON| 
topic: |LINE DRAWING| 
topic: |EMBOSS| 
topic: |TILES| 
topic: |DITHER| 
topic: |DITHER| 
topic: |DITHER| 
topic: |DITHER| 
topic: |DITHER| 
topic: |PAINTING| 
topic: |TEXTURE| 
topic: |PATTERN| 
topic: |MOSAIC| 
topic: |COLOR MODE| 
topic: |COLOR DEPTH| 
topic: |SHIFT COLORS| 
topic: |ALIEN COLORS| 
topic: |BRITE RAMP| 
topic: |PAINT TRANSP| 
topic: |MIRROR| 
topic: |CUSTOM KERNEL| 
file: /home2/mico/programs/fotoxx-20.0-test/f.gallery.cc 
topic: |BOOKMARKS| 
topic: |SORT GALLERY| 
topic: |THUMB VIEW| 
topic: |META VIEW| 
topic: |LIST VIEW| 
topic: |RECENT| 
topic: |NEWEST| 
topic: |SELECT IMAGE FILES| 
topic: |BOOKMARKS| 
topic: |BOOKMARKS| 
topic: |ALL FOLDERS| 
topic: |SOURCE FOLDER| 
file: /home2/mico/programs/fotoxx-20.0-test/f.edit.cc 
topic: |TRIM/ROTATE| 
topic: |UPRIGHT| 
topic: |RETOUCH| 
topic: |RESIZE| 
topic: |ADJUST RGB| 
topic: |ADJUST HSL| 
topic: |MARKUP| 
topic: |DRAW TEXT| 
topic: |DRAW LINE| 
topic: |DRAW BOX| 
topic: |DRAW OVAL| 
topic: |PAINT IMAGE| 
topic: |COPY PIXELS 1| 
topic: |COPY PIXELS 2| 
topic: |COPY PIXELS 2| 
topic: |PAINT EDITS| 
topic: |UNDO EDITS| 
topic: |PLUGINS| 
topic: |PLUGINS| 
topic: |PLUGINS| 
topic: |RAW THERAPEE| 
file: /home2/mico/programs/fotoxx-20.0-test/f.area.cc 
topic: |SELECT AREA| 
topic: |SELECT HAIRY| 
topic: |FIND AREA GAP| 
topic: |SHOW/HIDE AREA| 
topic: |SHOW/HIDE AREA| 
topic: |ENABLE/DISABLE AREA| 
topic: |ENABLE/DISABLE AREA| 
topic: |INVERT AREA| 
topic: |CLEAR AREA| 
topic: |COPY/PASTE AREA| 
topic: |LOAD/SAVE AREA| 
topic: |LOAD/SAVE AREA| 
topic: |COPY/PASTE AREA| 
file: /home2/mico/programs/fotoxx-20.0-test/f.pixmap.cc 
file: /home2/mico/programs/fotoxx-20.0-test/f.combine.cc 
topic: |HDR| 
topic: |HDF| 
topic: |STACK/PAINT| 
topic: |STACK/NOISE| 
topic: |STACK/LAYER| 
topic: |STACK/SLIDER| 
topic: |IMAGE DIFFS| 
topic: |PANORAMA| 
topic: |VERT. PANORAMA| 
topic: |PT PANORAMA| 
file: /home2/mico/programs/fotoxx-20.0-test/f.albums.cc 
topic: |MANAGE ALBUMS| 
topic: |UPDATE ALBUMS| 
topic: |ALBUM MASS UPDATE| 
topic: |GALLERY TO ALBUM| 
topic: |SLIDE SHOW| 
file: /home2/mico/programs/fotoxx-20.0-test/f.warp.cc 
topic: |UNBEND| 
topic: |PERSPECTIVE| 
topic: |WARP AREA| 
topic: |WARP CURVED| 
topic: |WARP LINEAR| 
topic: |WARP AFFINE| 
topic: |UNWARP CLOSEUP| 
topic: |FLATTEN BOOK| 
topic: |AREA RESCALE| 
topic: |MAKE WAVES| 
topic: |TWIST| 
topic: |SPHERE| 
topic: |STRETCH| 
topic: |INSIDE-OUT| 
topic: |TINY PLANET| 
topic: |ESCHER SPIRAL| 
file: /home2/mico/programs/fotoxx-20.0-test/f.process.cc 
topic: |BATCH CONVERT| 
topic: |BATCH UPRIGHT| 
topic: |BATCH DELETE/TRASH| 
topic: |BATCH RAW| 
topic: |BURN DVD/BRD| 
topic: |EXPORT FILE LIST| 
topic: |EXPORT FILES| 
topic: |SCRIPT FILES| 
topic: |SCRIPT FILES| 
topic: |SCRIPT FILES| 
topic: |SCRIPT FILES| 
file: /home2/mico/programs/fotoxx-20.0-test/f.meta.cc 
topic: |VIEW META| 
topic: |VIEW META| 
topic: |EDIT META| 
topic: |MANAGE TAGS| 
topic: |EDIT ANY META| 
topic: |DELETE META| 
topic: |CAPTIONS| 
topic: |BATCH TAGS| 
topic: |BATCH RENAME TAGS| 
topic: |BATCH PHOTO DATE| 
topic: |BATCH CHANGE META| 
topic: |BATCH REPORT META| 
topic: |BATCH GEOTAGS| 
topic: |PLACES/DATES| 
topic: |TIMELINE| 
topic: |SEARCH IMAGES| 
topic: |MARKERS| 
topic: |FILE MAP| 
topic: |CHOOSE MAP| 
topic: |NET SOURCE| 
topic: |NET MAP| 
topic: |SHOW ON MAP| 
topic: |NET LOCS| 
file: /home2/mico/programs/fotoxx-20.0-test/f.enhance.cc 
topic: |VOODOO 1| 
topic: |VOODOO 2| 
topic: |BRITE DIST| 
topic: |GRADIENTS| 
topic: |FLATTEN| 
topic: |GLOBAL RETX| 
topic: |ZONAL RETX| 
topic: |SHARPEN| 
topic: |BLUR| 
topic: |DENOISE| 
topic: |RED EYES| 
topic: |MATCH COLORS| 
topic: |SMART ERASE| 
topic: |CHROMATIC 1| 
topic: |CHROMATIC 2| 
topic: |VIGNETTE| 
topic: |REMOVE DUST| 
file: /home2/mico/programs/fotoxx-20.0-test/f.mashup.cc 
topic: |MASHUP| 
topic: |MONTAGE| 


