Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 07:40, 22 August 2007.

How to retrieve image thumbnails in S60 3rd Edition?

From Forum Nokia Wiki

Description

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.

Solution

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 Nseries 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 a different extension. For example, if the image file name is some_picture.jpg, then the thumbnail will be named some_picture.jpg_170x128.

RFs fs;
 
        User::LeaveIfError(fs.Connect());
 
        CleanupClosePushL(fs);              
 
        // 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 *.*        
 
        _LIT(KImageName,"some_picture.jpg*");         
 
        CDirScan* scan = CDirScan::NewLC( fs );        
 
        scan->SetScanDataL( KImagesPath, 
 
                            KEntryAttNormal|KEntryAttHidden, 
 
                            ESortNone, 
 
                            CDirScan::EScanDownTree );    
 
        FOREVER
 
            {
 
            CDir* dirlis = 0;
 
            TRAPD(error, scan->NextL(dirlis));
 
            if (error || !dirlis)
 
                {            
 
                break;
 
                }
 
            delete dirlis;
 
            FindFile( fs, scan->FullPath(), KImageName );
 
            };            
 
        CleanupStack::PopAndDestroy(2); // scan, fs        
 
    void FindFile( RFs& aFs, const TDesC& aDir, const TDesC& aImageWild )
 
        {
 
        CDir* dirList;
 
        TFindFile FindObj( aFs );
 
        TInt j = FindObj.FindWildByDir( aImageWild, aDir, dirList );                
 
        if( j == KErrNone )
 
            {
 
            for ( TInt i = 0; i < dirList->Count() ; i++ )
 
                {
 
                TFileName fullname(aDir);             
 
                fullname.Append((*dirList)[i].iName);                
 
                // fullname now contains path and name of image/thumbnail           
 
                }
 
            }
 
        }
Related Discussions
Thread Thread Starter Forum Replies Last Post
S60 2nd OR 3rd edition for new software development patil_ruturaj Symbian Tools & SDKs 1 2006-06-30 09:30
S60 2nd OR 3rd edition for new software development patil_ruturaj Mobile Java Tools & SDKs 3 2006-06-30 08:57
Problem Testing Midlet On s60 3rd Edition Emulator CaptainBucky Mobile Java Tools & SDKs 4 2008-03-20 21:51
SIS files and Emulators aymanshamma Python 14 2006-03-24 08:26
Does S60 3rd Edition SDK FP2 supports RTP through CRtpAPI on emulator? nidhigupta Symbian Tools & SDKs 1 2008-05-01 08:08
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtopicQUqfnTopicZseriesE5f60Q
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX