Each image in the current collection is represented by a thumbnail in the lighttable view and filmstrip module. A cache of the most recently used thumbnails is stored in a file on disk and loaded into memory at startup. The size of this cache can be adjusted in Preferences > Processing > CPU, GPU, Memory.
thumbnail creation
A thumbnail is created when an image is imported into Ansel for the first time, after an image has been modified in the darkroom, or when revisiting an image whose thumbnail is no longer available.
When an image is imported for the first time Ansel can either try to extract an embedded thumbnail from the input image (most raw files contain these, usually in JPEG format) or process the raw image itself using default settings. You can define how Ansel obtains its thumbnails in preferences > lighttable > thumbnails.
Extracting an embedded thumbnail from the input image is usually very fast. However, these thumbnails have been generated by the raw converter of the camera and do not represent Ansel’s “view” of that image. You will notice the difference as soon as you open the image in the darkroom mode, at which point Ansel replaces the thumbnail with its own internally processed version.
After import Ansel automatically generates thumbnails for new images as they are needed. When importing a large set of new images, thumbnail generation can slow down navigation in the lighttable view. Alternatively you may terminate Ansel and generate the thumbnail cache separately by running ansel-generate-cache
. This program will generate all missing thumbnails in one go.
As the thumbnail cache has a pre-defined maximum size it will eventually get filled up. If new thumbnails are subsequently added, old thumbnails are dropped from the cache. However, Ansel will keep all thumbnails on disk if the corresponding disk backend option is activated in Preferences > Processing > CPU, GPU, Memory. Access to the thumbnails in this secondary cache is slower than the primary cache, but still much faster than reprocessing thumbnails from scratch. The size of the secondary cache is limited only by the available disk space.
Thumbnails are never removed from the secondary cache. You can manually clean the secondary cache by recursively deleting all images in the $HOME/.cache/Ansel/mipmaps-xyz.d
folder (where xyz
denotes an alphanumeric identifier of the cache). After clearing the secondary cache you can simply allow Ansel to re-generate thumbnails as needed, or you can generate all thumbnails in one go with ansel-generate-cache
.
If you choose not to activate the disk backend and select too small a cache size, Ansel may become unresponsive, you may experience continuous regeneration of thumbnails when you navigate your collection or flickering of thumbnail images. A good choice of cache size is 512MB or higher (see Memory and performance tuning for more information).
All thumbnails are fully color managed. Colors are rendered accurately on screen as long as your system is properly set up to hand over the right monitor profile to Ansel. For more information see the color management section.
skulls
If for some reason Ansel is unable to generate a thumbnail, it displays an image of a skullinstead. Don’t panic!
There are three main reasons this could happen:
Missing image file: Ansel remembers all images it has ever imported, as long as they have not been removed from your database. If Ansel wants to create a thumbnail but is not able to open the input file, a skull is displayed instead. Users are advised to remove images from the database using the selected images module before physically removing them from disk. Alternatively you may occasionally run the script
purge_non_existing_images.sh
from Ansel’s toolset to clean-up your database.Invalid image format: While the extension of an image may seem to be supported by Ansel, its contents could be either an unsupported image format or a corrupt file.
Low memory: If Ansel runs out of memory while generating a thumbnail, it will warn you and display a skull. This can happen if Ansel is run with sub-optimal settings, especially on a 32-bit system. See memory and performance tuning for more information.