class CImageDecoder : public CBase |
Provides access to the Image Conversion Library decoders.
This class provides functions to decode images held in files or descriptors. To decode buffered images use the buffered version of this class CBufferedImageDecoder.
Regarding DRM: Note that intent is evaluated when a CImageDecoder instance is being constructed by one of the FileNewL() methods. It is executed after at least one frame of the image has been successfully decoded. Subsequent converts using the same CImageDecoder instance will not execute intent.
Protected Member Functions | |
---|---|
CImageDecoder() | |
IMPORT_C void | CustomAsync(TRequestStatus *, TInt) |
IMPORT_C void | CustomSyncL(TInt) |
IMPORT_C CImageDecoderPlugin * | Plugin() |
Public Member Enumerations | |
---|---|
enum | TImageType { EImageTypeThumbnail = 0x01, EImageTypeMain = 0x02 } |
enum | TOptions { EOptionNone = 0x00, EOptionNoDither = 0x01, EOptionAlwaysThread = 0x02, EOptionAllowZeroFrameOpen = 0x04, EAllowGeneratedMask = 0x08, EPreferFastDecode = 0x10, EOptionMngSubframesNoLoops = 0x20, EOptionUseFrameSizeInPixels = 0x40, EOptionIgnoreExifMetaData = 0x80, EOptionExtCrop = 0x0100, EOptionExtStream = 0x0200, EOptionExtRotation = 0x0400, EOptionExtMirrorHorizontalAxis = 0x0800, EOptionExtMirrorVerticalAxis = 0x1000, EOptionExtScaling = 0x2000, EOptionExtReserved7 = 0x4000, EOptionExtReserved8 = 0x8000, EOptionPngMissingiENDFail = 0x010000, EOptionWmfIgnoreViewportMetaData = 0x020000, EOptionAutoRotate = 0x040000 } |
Private Attributes | |
---|---|
MImageDecoderRelay * | iRelay |
IMPORT_C void | ContinueConvert | ( | TRequestStatus * | aRequestStatus | ) | [virtual] |
TRequestStatus * aRequestStatus |
IMPORT_C void | Convert | ( | TRequestStatus * | aRequestStatus, |
CFbsBitmap & | aDestination, | |||
TInt | aFrameNumber = 0 | |||
) | [virtual] |
TRequestStatus * aRequestStatus | |
CFbsBitmap & aDestination | |
TInt aFrameNumber = 0 |
IMPORT_C void | Convert | ( | TRequestStatus * | aRequestStatus, |
CFbsBitmap & | aDestination, | |||
CFbsBitmap & | aDestinationMask, | |||
TInt | aFrameNumber = 0 | |||
) | [virtual] |
TRequestStatus * aRequestStatus | |
CFbsBitmap & aDestination | |
CFbsBitmap & aDestinationMask | |
TInt aFrameNumber = 0 |
IMPORT_C void | CustomAsync | ( | TRequestStatus * | aRequestStatus, |
TInt | aParam | |||
) | [protected] |
TRequestStatus * aRequestStatus | |
TInt aParam |
CImageDecoder * | DataDecoderNewL | ( | const CImplementationInformation & | aDecoderInfo, |
RFs & | aFs, | |||
const TDesC8 & | aSourceData, | |||
const TOptions | aOptions | |||
) | [private, static] |
const CImplementationInformation & aDecoderInfo | |
RFs & aFs | |
const TDesC8 & aSourceData | |
const TOptions aOptions |
CImageDecoder * | DataFindDecoderNewL | ( | const RImplInfoPtrArray & | aDecoderList, |
RFs & | aFs, | |||
const TDesC8 & | aSourceData, | |||
const TOptions | aOptions | |||
) | [private, static] |
const RImplInfoPtrArray & aDecoderList | |
RFs & aFs | |
const TDesC8 & aSourceData | |
const TOptions aOptions |
IMPORT_C CImageDecoder * | DataNewL | ( | RFs & | aFs, |
const TDesC8 & | aSourceData, | |||
const TDesC8 & | aMIMEType, | |||
const TOptions | aOptions = EOptionNone | |||
) | [static] |
IMPORT_C CImageDecoder * | DataNewL | ( | RFs & | aFs, |
const TDesC8 & | aSourceData, | |||
const TOptions | aOptions = EOptionNone, | |||
const TUid | aImageType = KNullUid, | |||
const TUid | aImageSubType = KNullUid, | |||
const TUid | aDecoderUid = KNullUid | |||
) | [static] |
void | DoGetMimeTypeL | ( | const TDesC & | aFileName, |
const TDesC8 & | aMatchString, | |||
TDes8 & | aMimeType | |||
) | [private, static] |
CImageDecoder * | FileDecoderNewL | ( | const CImplementationInformation & | aDecoderInfo, |
RFs & | aFs, | |||
const TDesC & | aSourceFilename, | |||
const TOptions | aOptions, | |||
const TDesC & | aUniqueId | |||
) | [private, static] |
const CImplementationInformation & aDecoderInfo | |
RFs & aFs | |
const TDesC & aSourceFilename | |
const TOptions aOptions | |
const TDesC & aUniqueId |
CImageDecoder * | FileDecoderNewL | ( | const CImplementationInformation & | aDecoderInfo, |
RFile & | aFile, | |||
const TOptions | aOptions, | |||
const TDesC & | aUniqueId | |||
) | [private, static] |
const CImplementationInformation & aDecoderInfo | |
RFile & aFile | |
const TOptions aOptions | |
const TDesC & aUniqueId |
CImageDecoder * | FileFindDecoderNewL | ( | const RImplInfoPtrArray & | aDecoderList, |
RFs & | aFs, | |||
const TDesC & | aSourceFilename, | |||
const TOptions | aOptions, | |||
const TDesC & | aUniqueId | |||
) | [private, static] |
const RImplInfoPtrArray & aDecoderList | |
RFs & aFs | |
const TDesC & aSourceFilename | |
const TOptions aOptions | |
const TDesC & aUniqueId |
CImageDecoder * | FileFindDecoderNewL | ( | const RImplInfoPtrArray & | aDecoderList, |
RFile & | aFile, | |||
const TOptions | aOptions, | |||
const TDesC & | aUniqueId | |||
) | [private, static] |
const RImplInfoPtrArray & aDecoderList | |
RFile & aFile | |
const TOptions aOptions | |
const TDesC & aUniqueId |
CImageDecoder * | FileNewImplL | ( | RFs & | aFs, |
const TDesC & | aSourceFilename, | |||
const TDesC8 & | aMIMEType, | |||
const TDesC & | aUniqueId, | |||
const ContentAccess::TIntent | aIntent, | |||
const TOptions | aOptions = EOptionNone | |||
) | [private, static] |
CImageDecoder * | FileNewImplL | ( | RFs & | aFs, |
const TDesC & | aSourceFilename, | |||
const TDesC & | aUniqueId, | |||
const ContentAccess::TIntent | aIntent, | |||
const TOptions | aOptions = EOptionNone, | |||
const TUid | aImageType = KNullUid, | |||
const TUid | aImageSubType = KNullUid, | |||
const TUid | aDecoderUid = KNullUid | |||
) | [private, static] |
CImageDecoder * | FileNewImplL | ( | RFile & | aFile, |
const TDesC8 & | aMIMEType, | |||
const TDesC & | aUniqueId, | |||
const ContentAccess::TIntent | aIntent, | |||
const TOptions | aOptions = EOptionNone | |||
) | [private, static] |
RFile & aFile | |
const TDesC8 & aMIMEType | |
const TDesC & aUniqueId | |
const ContentAccess::TIntent aIntent | |
const TOptions aOptions = EOptionNone |
CImageDecoder * | FileNewImplL | ( | RFile & | aFile, |
const TDesC & | aUniqueId, | |||
const ContentAccess::TIntent | aIntent, | |||
const TOptions | aOptions = EOptionNone, | |||
const TUid | aImageType = KNullUid, | |||
const TUid | aImageSubType = KNullUid, | |||
const TUid | aDecoderUid = KNullUid | |||
) | [private, static] |
IMPORT_C CImageDecoder * | FileNewL | ( | RFs & | aFs, |
const TDesC & | aSourceFilename, | |||
const TDesC8 & | aMIMEType, | |||
const TOptions | aOptions = EOptionNone | |||
) | [static] |
IMPORT_C CImageDecoder * | FileNewL | ( | RFs & | aFs, |
const TDesC & | aSourceFilename, | |||
const TOptions | aOptions = EOptionNone, | |||
const TUid | aImageType = KNullUid, | |||
const TUid | aImageSubType = KNullUid, | |||
const TUid | aDecoderUid = KNullUid | |||
) | [static] |
IMPORT_C CImageDecoder * | FileNewL | ( | RFs & | aFs, |
const TDesC & | aSourceFilename, | |||
const TDesC8 & | aMIMEType, | |||
ContentAccess::TIntent | aIntent, | |||
const TOptions | aOptions = EOptionNone | |||
) | [static] |
RFs & aFs | |
const TDesC & aSourceFilename | |
const TDesC8 & aMIMEType | |
ContentAccess::TIntent aIntent | |
const TOptions aOptions = EOptionNone |
IMPORT_C CImageDecoder * | FileNewL | ( | RFs & | aFs, |
const TDesC & | aSourceFilename, | |||
ContentAccess::TIntent | aIntent, | |||
const TOptions | aOptions = EOptionNone, | |||
const TUid | aImageType = KNullUid, | |||
const TUid | aImageSubType = KNullUid, | |||
const TUid | aDecoderUid = KNullUid | |||
) | [static] |
IMPORT_C CImageDecoder * | FileNewL | ( | RFile & | aFile, |
const TDesC8 & | aMIMEType, | |||
ContentAccess::TIntent | aIntent, | |||
const TOptions | aOptions = EOptionNone | |||
) | [static] |
RFile & aFile | |
const TDesC8 & aMIMEType | |
ContentAccess::TIntent aIntent | |
const TOptions aOptions = EOptionNone |
IMPORT_C CImageDecoder * | FileNewL | ( | RFile & | aFile, |
ContentAccess::TIntent | aIntent, | |||
const TOptions | aOptions = EOptionNone, | |||
const TUid | aImageType = KNullUid, | |||
const TUid | aImageSubType = KNullUid, | |||
const TUid | aDecoderUid = KNullUid | |||
) | [static] |
IMPORT_C CImageDecoder * | FileNewL | ( | RFs & | aFs, |
const TMMSource & | aFileSource, | |||
const TDesC8 & | aMIMEType, | |||
const TOptions | aOptions = EOptionNone | |||
) | [static] |
IMPORT_C CImageDecoder * | FileNewL | ( | RFs & | aFs, |
const TMMSource & | aFileSource, | |||
const TOptions | aOptions = EOptionNone, | |||
const TUid | aImageType = KNullUid, | |||
const TUid | aImageSubType = KNullUid, | |||
const TUid | aDecoderUid = KNullUid | |||
) | [static] |
IMPORT_C const CFrameImageData & | FrameData | ( | TInt | aFrameNumber = 0 | ) | const |
TInt aFrameNumber = 0 |
IMPORT_C const TFrameInfo & | FrameInfo | ( | TInt | aFrameNumber = 0 | ) | const |
TInt aFrameNumber = 0 |
IMPORT_C CFrameInfoStrings * | FrameInfoStringsL | ( | TInt | aFrameNumber = 0 | ) |
TInt aFrameNumber = 0 |
IMPORT_C CFrameInfoStrings * | FrameInfoStringsLC | ( | TInt | aFrameNumber = 0 | ) |
TInt aFrameNumber = 0 |
ContentAccess::CContent * | GetContentLC | ( | const TDesC & | aSourceFilename | ) | [private, static] |
const TDesC & aSourceFilename |
IMPORT_C TInt | GetDestinationSize | ( | TSize & | aSize, |
TInt | aFrameNumber = 0 | |||
) |
IMPORT_C void | GetFileTypesL | ( | RFileExtensionMIMETypeArray & | aFileExtensionArray | ) | [static] |
RFileExtensionMIMETypeArray & aFileExtensionArray |
IMPORT_C void | GetImageSubTypesL | ( | const TUid | aImageType, |
RImageTypeDescriptionArray & | aSubTypeArray | |||
) | [static] |
const TUid aImageType | |
RImageTypeDescriptionArray & aSubTypeArray |
IMPORT_C void | GetImageTypesL | ( | RImageTypeDescriptionArray & | aImageTypeArray | ) | [static] |
RImageTypeDescriptionArray & aImageTypeArray |
IMPORT_C CImplementationInformationType * | GetImplementationInformationL | ( | TUid | aImplementationUid | ) | [static] |
TUid aImplementationUid |
IMPORT_C void | GetInterfaceImplementationsL | ( | const RUidDataArray & | aRequiredUids, |
RUidDataArray & | aImplArray | |||
) | [static] |
const RUidDataArray & aRequiredUids | |
RUidDataArray & aImplArray |
IMPORT_C void | GetInterfaceImplementationsL | ( | const TUid * | aRequiredUids, |
const TInt | aLength, | |||
RUidDataArray & | aImplArray | |||
) | [static] |
const TUid * aRequiredUids | |
const TInt aLength | |
RUidDataArray & aImplArray |
IMPORT_C void | GetMimeTypeDataL | ( | const TDesC8 & | aImageData, |
TDes8 & | aMimeType | |||
) | [static] |
IMPORT_C void | GetMimeTypeFileL | ( | RFs & | aFs, |
const TDesC & | aFileName, | |||
TDes8 & | aMimeType | |||
) | [static] |
IMPORT_C void | GetPluginPropertiesL | ( | const TUid | aImplementationUid, |
RUidDataArray & | aPropertiesArray | |||
) | [static] |
const TUid aImplementationUid | |
RUidDataArray & aPropertiesArray |
IMPORT_C HBufC * | ImageCommentL | ( | TInt | aCommentNumber | ) | const |
TInt aCommentNumber |
IMPORT_C void | ImageType | ( | TInt | aFrameNumber, |
TUid & | aImageType, | |||
TUid & | aImageSubType | |||
) | const |
void | ImageTypeGetDecoderListL | ( | RImplInfoPtrArray & | aDecoderList, |
const TDesC8 & | aImageHeader, | |||
const TUid | aImageType, | |||
const TUid | aImageSubType, | |||
const TUid | aDecoderUid, | |||
const TOptions | aOptions = EOptionNone | |||
) | [private, static] |
void | MimeTypeGetDecoderListL | ( | RImplInfoPtrArray & | aDecoderList, |
const TDesC8 & | aMIMEType, | |||
const TOptions | aOptions = EOptionNone | |||
) | [private, static] |
RImplInfoPtrArray & aDecoderList | |
const TDesC8 & aMIMEType | |
const TOptions aOptions = EOptionNone |
CImageDecodeConstruct * | NewDecodeConstructL | ( | const CImplementationInformation & | aDecoderInfo, |
const TOptions | aOptions = EOptionNone | |||
) | [private, static] |
const CImplementationInformation & aDecoderInfo | |
const TOptions aOptions = EOptionNone |
CImageDecoder * | NewL | ( | CImageDecodeConstruct * | aConstruct, |
TOptions | aOptions | |||
) | [private, static] |
CImageDecodeConstruct * aConstruct | |
TOptions aOptions |
IMPORT_C TInt | NumberOfFrameComments | ( | TInt | aFrameNumber | ) | const |
TInt aFrameNumber |
IMPORT_C void | Prepare | ( | TRequestStatus * | aRequestStatus | ) |
TRequestStatus * aRequestStatus |
IMPORT_C TInt | ReducedSize | ( | const TSize & | aOriginalSize, |
TInt | aReductionFactor, | |||
TSize & | aReducedSize | |||
) | const |
IMPORT_C TInt | ReductionFactor | ( | const TSize & | aOriginalSize, |
const TSize & | aReducedSize | |||
) | const |
IMPORT_C TInt | SetAgentProperty | ( | ContentAccess::TAgentProperty | aProperty, |
TInt | aValue | |||
) |
ContentAccess::TAgentProperty aProperty | |
TInt aValue |
IMPORT_C void | SetClippingRectL | ( | const TRect * | aClipRect | ) |
const TRect * aClipRect |
IMPORT_C TInt | SetDecoderThreadPriority | ( | TThreadPriority | aPriority | ) |
TThreadPriority aPriority |
void | SuffixTypeGetDecoderListL | ( | RImplInfoPtrArray & | aDecoderList, |
const TDesC & | aFileName, | |||
const TOptions | aOptions = EOptionNone | |||
) | [private, static] |
RImplInfoPtrArray & aDecoderList | |
const TDesC & aFileName | |
const TOptions aOptions = EOptionNone |
Flags to control which image is decoded. This can be used when the source file or descriptor contains multiple distinct image sources.
EImageTypeThumbnail = 0x01 |
Use the thumbnail as source image |
EImageTypeMain = 0x02 |
Use the main image |
Flags to control how the image is decoded. These can be combined using an OR operation.
EOptionNone = 0x00 |
No flag set |
EOptionNoDither = 0x01 |
Do not dither the decoded image |
EOptionAlwaysThread = 0x02 |
Perform the decoding in a separate thread |
EOptionAllowZeroFrameOpen = 0x04 |
Allow Opens to complete with no error if there is less than one frame available. This should be set for streaming. |
EAllowGeneratedMask = 0x08 |
Setting this flag requests that the plugin generate a mask during decoding. Note: This option is only relevant to image formats that do not already contain mask information. The client must check that TFrameInfo::ETransparencyPossible is set before attempting to obtain the mask, because not all plugins support mask generation. |
EPreferFastDecode = 0x10 |
Use the highest possible image decoding speed; this may result in lower image quality. This flag is more applicable to formats which use "lossy" compression algorithms, such as JPEG. Decoders that do not support fast decoding will ignore it. |
EOptionMngSubframesNoLoops = 0x20 |
Prevent MNG ImageDecoder from unwinding all the loops |
EOptionUseFrameSizeInPixels = 0x40 |
Setting this flag requests that the plugin use the frame size rather than the overall size when calculating its reduction factor |
EOptionIgnoreExifMetaData = 0x80 |
When specified, this flag indicates that the decoder must ignore the EXIF meta-data, if present. In this case, the ExifMetaData() should return NULL. This option value is also used to indicate the requirement to ignore the EXIF meta-data when doing the image transformation. |
EOptionExtCrop = 0x0100 |
Codec must support crop. |
EOptionExtStream = 0x0200 |
Codec must support block streaming extension. |
EOptionExtRotation = 0x0400 |
Codec must support rotation through the operation extension. |
EOptionExtMirrorHorizontalAxis = 0x0800 |
Codec must support horizontal mirror through the operation extension. |
EOptionExtMirrorVerticalAxis = 0x1000 |
Codec must support vertical mirror through the operation extension. |
EOptionExtScaling = 0x2000 |
Codec must support the scaling extension. |
EOptionExtReserved7 = 0x4000 |
Reserved. |
EOptionExtReserved8 = 0x8000 |
Reserved. |
EOptionPngMissingiENDFail = 0x010000 |
Requests that decode always fails for Png images without an iEND chunk. |
EOptionWmfIgnoreViewportMetaData = 0x020000 |
Allows WMF codec to ignore any SETVIEWPORTORG, SETVIEWPORTEXT, SCALEVIEWPORTEXT or OFFSETVIEWPORTORG commands in the metafile and allows scaling to destination bitmap. |
EOptionAutoRotate = 0x040000 |
Requests that codec applies the auto rotation when decoding according to the orientation tag in the image Exif header. |