Archived:Displaying image information using Symbian C++
Archived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.
Remove from Archive?: This article has been marked for removal from archive, for the following reasons:
I believe the information is still accurate in current versions.
I believe the information is still accurate in current versions.
Article Metadata
Tested with
Devices(s): Nokia E61i
Nokia E90 Communicator
Nokia N95 8GB
Nokia E90 Communicator
Nokia N95 8GB
Compatibility
Platform(s): S60 3rd Edition, MR
S60 3rd Edition, FP1
S60 3rd Edition, FP2 Beta
S60 3rd Edition, FP1
S60 3rd Edition, FP2 Beta
Article
Keywords: CFrameInfoStrings, CImageDecoder::FileNewL(), CImageDecoder::FrameInfoStringsL()
Created: tapiolaitinen
(20 Mar 2008)
Last edited: hamishwillee
(06 Aug 2012)
Contents |
Overview
This code snippet demonstrates how to obtain and display the following information about an image:
- Decoder
- Format
- Dimensions
- Color depth
- Details
MMP file
The following libraries are required:
LIBRARY imageconversion.lib
Header file
/**
* Obtains the image info
* @param aFs a reference to the file server session
* @param aFilename the filename of the image
* @return image info as CFrameInfoStrings*
*/
CFrameInfoStrings* CApp::GetImageInfoL(RFs& aFs, const HBufC& aFilename);
Source file
#include <ImageConversion.h>
const TInt KMaxInfoDescriptorLength = 80;
// Obtains the image info from the image referenced by the aFilename
CFrameInfoStrings* CApp::GetImageInfoL(RFs& aFs, const HBufC& aFilename)
{
CImageDecoder* decoder = CImageDecoder::FileNewL(aFs, aFilename);
CleanupStack::PushL(decoder);
CFrameInfoStrings* info = decoder->FrameInfoStringsL();
CleanupStack::PopAndDestroy(decoder);
return info;
}
// Connect a client process to the fileserver
RFs fsSession;
User::LeaveIfError(fsSession.Connect());
CleanupClosePushL(fsSession);
// Obtain the image info
_LIT(KLITFilename, "C:\\Data\\Images\\image.jpg");
const HBufC* KFilename = KLITFilename().Alloc();
CFrameInfoStrings* info = GetImageInfoL(fsSession, *KFilename);
CleanupStack::PushL(info);
// Display the info items one by one
for (TInt i = 0; i < info->Count(); i++)
{
TBuf<KMaxInfoDescriptorLength> infoItem;
infoItem.Append(info->String(i));
CAknInformationNote* note = new (ELeave) CAknInformationNote(ETrue);
note->ExecuteLD(infoItem);
}
// Clean up
CleanupStack::PopAndDestroy(2); // info, fsSession
fsSession.Close();
Postconditions
Image information is displayed.


(no comments yet)