How to retrieve image thumbnails in S60 3rd Edition?
In S60 2nd Edition, CAPAlbImageUtil class provides GetThumbnailL() method to get thumbnails for images saved in the Gallery. In S60 3rd Edition, the Photo Album API has been removed and is replaced by the Media Gallery API, which does not provide any method for directly accessing image thumbnails.
As a workaround, it is possible to scan the Images folder for thumbnails.
The directory path for thumbnails is in the following format:
<DRIVE>:\ Data \ Images \ _PAlbTN \
In Nokia N series devices, the directory structure used for Gallery is different from other devices:
<DRIVE>:\ Data \ Images \ <YearMonth> \ _PAlbTN \ <R1XR2> \
where R1 and R2 are device-specific resolutions. There may be multiple versions (resolutions) of the same thumbnail.
Note: The _PAlbTN directory is marked as hidden.
To make the code work in all S60 3rd Edition devices, you have to do a recursive search in all the subfolders of the image folder to find the thumbnail of the image.
Usually, thumbnails will use the same file name as the main image file, but with a different extension. For example, if the image file name is some_picture.jpg, then the thumbnail will be named some_picture.jpg_170x128.
// assumes phone memory is used for storing images
_LIT( KImagesPath, "C:\\Data\\Images\\" );
// to list known image file(s) and thumbnail(s), use imagename.ext*
// to list thumbnail(s) only for a known image, use imagename.ext_*
// to list all available images and thumbnails, use *.*
CDirScan* scan = CDirScan::NewLC( fs );
CDir* dirlis = 0;
if (error || !dirlis)
FindFile( fs, scan->FullPath(), KImageName );
CleanupStack::PopAndDestroy(2); // scan, fs
void FindFile( RFs& aFs, const TDesC& aDir, const TDesC& aImageWild )
TFindFile FindObj( aFs );
TInt j = FindObj.FindWildByDir( aImageWild, aDir, dirList );
if( j == KErrNone )
for ( TInt i = 0; i < dirList->Count() ; i++ )
// fullname now contains path and name of image/thumbnail