class ImageProcessor::CImgProcessor : public CBase |
effects.
geometrical operations.
Good examples of effects could be the Sepia effect applying shades of brown to an image, or the solarize effect that consists in reversing the tones of a picture and make it look like a negative. Good examples of geometrical operations could be Rotation or Flip.
The image processor will decode and render an image:
compressed images (JPEG, GIF, PNG etc)
uncompressed images (CFbsBitmap and general pixel buffers e.g. YUV 4:2:0 Interleaved etc)
compressed images (JPEG, GIF, PNG etc)
uncompressed images (CFbsBitmap and general pixel buffers e.g. YUV 4:2:0 Interleaved etc)
An intermediate generally low resolution uncompressed image providing a preview representation of the output of the processing is provided allowing applications to display the results of the operations applied without needing to fully render the image. Multiple previews are allowed.
Images may be overlaid onto the main source image.
The source image can be changed and the current effects and geometric oprations will be re-applied to the new image. The previews will be updated.
Private Member Functions | |
---|---|
CImgProcessor() | |
void | ConstructL(RFs &, MImgProcessorObserver &, TUid) |
Public Member Enumerations | |
---|---|
enum | TEvent { EEventInitializing = 0, EEventInitializingComplete, EEventProcessing, EEventProcessingComplete, EEventRendering, EEventRenderingComplete, EEventPreviewInitializing, EEventPreviewInitializingComplete, EEventPreviewRendering, EEventPreviewRenderingComplete } |
enum | TOperation { EOperationNone = 0x0, EOperationRotate90 = 0x1, EOperationRotate180 = 0x2, EOperationRotate270 = 0x4, EOperationMirrorHorizontalAxis = 0x8, EOperationMirrorHorizontalAxisRotate90 = 0x10, EOperationMirrorVerticalAxis = 0x20, EOperationMirrorVerticalAxisRotate90 = 0x40 } |
enum | TOptions { EOptionNone = 0x00, EOptionSyncProcessing = 0x01, EOptionExifMetadataProcessing = 0x02 } |
enum | TState { EUninitialized = 0, EInitializing, EInitialized, EEffectActive, EProcessing, EPreviewInitializing, EPreviewRendering, EStatesCount } |
Private Attributes | |
---|---|
CImageProcessorImpl * | iImplementation |
IMPORT_C void | ApplyOperationL | ( | CImgProcessor::TOperation | aOperation | ) |
Applies a geometrical operation to the image. The image processor needs to be in an initialized state.
CImgProcessor::TOperation aOperation | The geometrical operation to be applied. |
IMPORT_C TRgb | BackgroundColorL | ( | ) | const |
Retrieves the current background color.
IMPORT_C TInt | CalculatePixelBufferSizeL | ( | TSize | aSizeInPixels, |
TDisplayMode | aDisplayMode, | |||
TUint32 | aScanLineLength = 0 | |||
) | const |
Calculates the required pixel buffer size in bytes for the destination image given display mode and scan line length.
TSize aSizeInPixels | The size in pixels of the image to calculate buffer size for. |
TDisplayMode aDisplayMode | The display mode of the destination image to calculate buffer size for. section for details. |
TUint32 aScanLineLength = 0 | Number of bytes per image row. |
IMPORT_C TInt | CalculatePixelBufferSizeL | ( | TSize | aSizeInPixels, |
const TUid & | aFormat, | |||
TUint32 | aScanLineLength = 0 | |||
) | const |
Calculates the required pixel buffer size in bytes for the destination image given destination uncompressed image format and scan line length.
IMPORT_C TBool | CanRedoL | ( | ) | const |
Determines if there are operations on the operation stack which can be re-applied.
IMPORT_C TBool | CanUndoL | ( | ) | const |
Determines if there are operations on the operation stack which can be 'undone'.
IMPORT_C void | Cancel | ( | ) |
Cancels any current asynchronous operation, for example preview or output rendering. Ignored if no asynchronous operation is in progress.
void | ConstructL | ( | RFs & | aFileServerSession, |
MImgProcessorObserver & | aObserver, | |||
TUid | aPluginUid | |||
) | [private] |
RFs & aFileServerSession | |
MImgProcessorObserver & aObserver | |
TUid aPluginUid |
IMPORT_C void | ConvertFileExtensionToUidL | ( | const TDesC & | aFileExtension, |
TUid & | aFormat, | |||
TUid & | aSubFormat | |||
) | const |
Converts a given file extension to format and sub-format UIDs.
IMPORT_C void | ConvertMimeTypeToUidL | ( | const TDesC8 & | aMimeType, |
TUid & | aFormat, | |||
TUid & | aSubFormat | |||
) | const |
Converts a given mime type to format and sub-format UIDs.
IMPORT_C void | ConvertUidToFileExtensionL | ( | TDes & | aFileExtension, |
const TUid & | aFormat, | |||
const TUid & | aSubFormat | |||
) | const |
Converts a format and sub-format UIDs to a file extension.
IMPORT_C void | ConvertUidToMimeTypeL | ( | TDes8 & | aMimeType, |
const TUid & | aFormat, | |||
const TUid & | aSubFormat | |||
) | const |
Converts a format and sub-format UID to a mime type.
IMPORT_C void | CreateInputL | ( | CFbsBitmap & | aBitmap | ) |
Creates internal pixel buffer for the input and copies data from source bitmap to internal buffer
CFbsBitmap & aBitmap | The bitmap to copy. |
IMPORT_C void | CreateInputL | ( | CImageFrame & | aPixelBuffer | ) |
Creates internal pixel buffer the for the source image and copies data from the image frame to the internal buffer
CImageFrame & aPixelBuffer | The image frame to copy. |
IMPORT_C void | CreateInputL | ( | const TSize & | aSize, |
const TRgb & | aColor | |||
) |
Creates internal pixel buffer for the source image using the given size and initializes source image with the given color.
IMPORT_C TSize | CurrentSizeL | ( | ) | const |
Retrieves the size of the current source image.
IMPORT_C TEffect * | EffectL | ( | TUid | aEffect | ) |
Retrieves the interface to an specific effect (e.g. Sepia effect) given an effect UID.
TUid aEffect |
IMPORT_C TAny * | Extension | ( | TUid | aExtension | ) |
Retrieves a non-standard extension on the image processor.
TUid aExtension | The UID of the extension to be retrieved |
IMPORT_C void | InitializeL | ( | ) |
Initializes the image processor asynchronously. After this asynchronous call completes,the image processor's state should normally be EInitialized.
IMPORT_C void | InitializeL | ( | TUint64 | aOptions | ) |
Initializes the image processor. After the initialization completes, the image processor's state should normally be EInitialized.
TUint64 aOptions | The options to set to this image processor with the initialization. |
IMPORT_C TInputInfo * | InputInfoL | ( | ) |
Retrieves information about the current source image.
IMPORT_C void | InputUpdatedL | ( | ) |
This method needs to be called when the input image source data has been updated externally.
IMPORT_C CImgProcessor * | NewL | ( | RFs & | aFileServerSession, |
MImgProcessorObserver & | aObserver, | |||
TUid | aImageProcessorPluginUid = KNullUid | |||
) | [static] |
Constructs a new image processor object.
RFs & aFileServerSession | A file server session for the image processor to use. |
MImgProcessorObserver & aObserver | The image processor observer to recieve callbacks. |
TUid aImageProcessorPluginUid = KNullUid | The UID of the image processor plugin to load. Can be set to KUidNull which will load the highest version of the plugin. |
IMPORT_C TOutputInfo * | OutputInfoL | ( | ) |
Retrieves information about the output image.
IMPORT_C TPreview * | PreviewL | ( | TInt | aPreviewId | ) |
Displays a low resolution preview of the output image with the effects and/or operations applied before rendering to a high resolution output image. Multiple previews are possible.
If the requested preview already exists, it will be returned, otherwise a new preview with id aPreviewId will be created and returned.
TInt aPreviewId | The unique id for preview image. It is not the index of the preview of Image Processor. Instead any value can be given here to either return an preview previously created or will create a new one with that id. |
IMPORT_C void | ProcessL | ( | ) |
All operations and effects are performed on the source image which is then rendered to the output specified. The size for the output image being rendered is the same as the size for the input image. Aspect ratio is maintained.
The image processor behaves differently according to if ImageProcessor::EOptionSyncProcessing is set or not ImageProcessor::CImgProcessor::SetOptionsL. In the asynchronous case the call leaves with KErrNorReady immediately if the image processor is not initialised. If an error occurs during asynchronous processing then the error is reported back to the client via the observer ImageProcessor::MImgProcessorObserver.In the synchronous case i.e. when ImageProcessor::EOptionSyncProcessing is set then the same errors are reported except this time by leaving with the error code directly from ProcessL. In this case no callback is made to the observer.
IMPORT_C void | ProcessL | ( | const TSize & | aSize, |
TBool | aMaintainAspectRatio | |||
) |
All operations and effects are performed on the source image which is then rendered to the output specified. The aspect ratio can be controlled.
IMPORT_C TProgressInfo * | ProgressInfoL | ( | ) |
The progress infomation of the rendering function which is executed iteratively to enable asynchronous operation. This gives the possibility to show a progress bar in the GUI when performing time consuming renderings. Rendering functions are synchronous if EOptionSyncProcessing option is set on CImgProcessor.
Retrieves the available progress information in a TProgressInfo obect.
IMPORT_C void | RedoAllL | ( | ) |
Re-applies all re-doable operations previously undone.
IMPORT_C void | RedoL | ( | ) |
Re-applies the most recent redoable operation.
IMPORT_C void | ResetL | ( | ) |
Resets the image processor. image processor's input is reset and image processor's state is set to EInitialized.
IMPORT_C void | SetBackgroundColorL | ( | const TRgb & | aColor | ) |
Sets the background color to use for the output image. Any area of the output image which is not rendered to is set to this colour.
const TRgb & aColor | The background color to set. |
IMPORT_C void | SetInputL | ( | const TDesC & | aFilename, |
const TUid & | aFormat = KNullUid, | |||
const TUid & | aSubFormat = KNullUid | |||
) |
Sets or updates the source image to the specified file name.
const TDesC & aFilename | The filename of the new source image to use. |
const TUid & aFormat = KNullUid | The format of the new source image to use. If KNullUid is passed then an attempt is made to recognize its format. |
const TUid & aSubFormat = KNullUid | The sub-format of the new source image to use. If KNullUid is passed then an attempt is made to recognize its sub-format. |
IMPORT_C void | SetInputL | ( | RFile & | aFile, |
const TUid & | aFormat = KNullUid, | |||
const TUid & | aSubFormat = KNullUid | |||
) |
The source image is set or updated to the given file.
IMPORT_C void | SetInputL | ( | TMMSource & | aDrmFile, |
const TUid & | aFormat = KNullUid, | |||
const TUid & | aSubFormat = KNullUid | |||
) |
The source image is set or updated. The source image may be DRM protected.
IMPORT_C void | SetInputL | ( | const TDesC8 & | aBuffer, |
const TUid & | aFormat = KNullUid, | |||
const TUid & | aSubFormat = KNullUid | |||
) |
The source image is set or updated to the content of the buffer provided.
IMPORT_C void | SetInputL | ( | const CFbsBitmap & | aBitmap, |
const CFbsBitmap * | aMask = NULL | |||
) |
The source image is set or updated to the bitmap provided.
const CFbsBitmap & aBitmap | The bitmap of the new source image to use. |
const CFbsBitmap * aMask = NULL | The bitmap mask of the new source image to use. |
IMPORT_C void | SetInputL | ( | const CImageFrame & | aPixelBuffer | ) |
The source image is set or updated to the image frame provided.
const CImageFrame & aPixelBuffer | The image frame of the new source image to use. |
IMPORT_C void | SetInputL | ( | CImagePanorama & | aPanorama | ) |
The input is set or updated to the panorama object provided. Any existing options are reset.
CImagePanorama & aPanorama | The panorama object to use. |
IMPORT_C void | SetInputRectL | ( | const TRect & | aRect | ) |
Sets the area of interest of the source image to be used for processing.
const TRect & aRect | A reference to a TRect that specifies the location and size of the region to be used for the source image. |
IMPORT_C void | SetOptionsL | ( | TUint64 | aOptions | ) |
Sets the desired options. Options can be combined using bitwise inclusive OR.
TUint64 aOptions | The new options to set to this image processor. |
IMPORT_C void | SetOutputL | ( | const TDesC & | aFilename, |
const TUid & | aFormat = KImageTypeJPGUid , | |||
const TUid & | aSubFormat = KNullUid | |||
) |
Changes the output image to the image specified in the file given. Rendering is not performed.
const TDesC & aFilename | The filename of the new output image to use. |
const TUid & aFormat = KImageTypeJPGUid | The format of the new output image to use. |
const TUid & aSubFormat = KNullUid | The sub-format of the new output image to use. |
IMPORT_C void | SetOutputL | ( | RFile & | aFile, |
const TUid & | aFormat = KImageTypeJPGUid , | |||
const TUid & | aSubFormat = KNullUid | |||
) |
Changes the output image to the image specified in the file given. Rendering is not performed.
RFile & aFile | The file handle of the new output image to use. |
const TUid & aFormat = KImageTypeJPGUid | The format of the new output image to use. |
const TUid & aSubFormat = KNullUid | The sub-format of the new output image to use. |
IMPORT_C void | SetOutputL | ( | RBuf8 & | aBuffer, |
const TUid & | aFormat = KImageTypeJPGUid , | |||
const TUid & | aSubFormat = KNullUid | |||
) |
Changes the output image to the image specified in the buffer given. Rendering is not performed.
RBuf8 & aBuffer | The buffer containing the new output image to use. This may be re-allocated when rendering is performed if more memory is required. |
const TUid & aFormat = KImageTypeJPGUid | The format of the new output image to use. |
const TUid & aSubFormat = KNullUid | The sub-format of the new output image to use. |
IMPORT_C void | SetOutputL | ( | CImageFrame & | aPixelBuffer | ) |
Changes the output image to the image specified in the buffer given. Rendering is not performed.
CImageFrame & aPixelBuffer | The image frame of the new output image to use. |
IMPORT_C void | SetOutputL | ( | CFbsBitmap & | aBitmap, |
CFbsBitmap * | aMask = NULL | |||
) |
Changes the output image to the image specified in the bitmap given. Rendering is not performed.
CFbsBitmap & aBitmap | The bitmap of the new output image to use. |
CFbsBitmap * aMask = NULL | The bitmap mask of the new output image to use. |
IMPORT_C void | SupportedEffectsL | ( | RArray< TUid > & | aEffects | ) | const |
Returns a list of effect UIDs which can be applied by this image processor.
IMPORT_C void | SupportedInputDisplayModesL | ( | RArray< TDisplayMode > & | aDisplayModes | ) | const |
Returns a list of supported input display modes (e.g. EColor16M).
RArray< TDisplayMode > & aDisplayModes | Array to be filled in by the list of the supported input display modes. |
IMPORT_C void | SupportedInputFormatsL | ( | RArray< TUid > & | aFormats | ) | const |
Returns a list of compressed image formats which are supported (e.g. KImageTypeJPGUid etc).
IMPORT_C void | SupportedInputImageFrameFormatsL | ( | RArray< TUid > & | aFormats | ) | const |
Returns a list of supported image frame formats (e.g. KUidFormat32BitRGB888Interleaved).
IMPORT_C void | SupportedInputSubFormatsL | ( | TUid | aFormat, |
RArray< TUid > & | aSubFormats | |||
) | const |
Returns a list of the input sub-formats supported.
IMPORT_C TUint | SupportedOperations | ( | ) | const |
Gets the set of operations supported.
IMPORT_C TUint64 | SupportedOptions | ( | ) | const |
Returns the options supported by this image processor as a set of flags.
IMPORT_C void | SupportedOutputDisplayModesL | ( | RArray< TDisplayMode > & | aDisplayModes | ) | const |
Returns a list of supported output display modes (e.g. EColor16M).
RArray< TDisplayMode > & aDisplayModes | Array to be filled in by the list of the supported output display modes. |
IMPORT_C void | SupportedOutputFormatsL | ( | RArray< TUid > & | aFormats | ) | const |
Returns a list of supported compressed output image formats (e.g. KImageTypeJPGUid etc.).
IMPORT_C void | SupportedOutputImageFrameFormatsL | ( | RArray< TUid > & | aFormats | ) | const |
Returns a list of image frame formats to which the output can be rendered (e.g. KUidFormat32BitRGB888Interleaved).
IMPORT_C void | SupportedOutputSubFormatsL | ( | TUid | aFormat, |
RArray< TUid > & | aSubFormats | |||
) | const |
Returns a list of the output sub-formats supported.
IMPORT_C void | UndoAllL | ( | ) |
Reverts all operations which can be undone.
IMPORT_C void | UndoL | ( | ) |
Reverts the most recent operation which can be undone.
Events occurring during processing.
EEventInitializing = 0 |
The image processor is initializing. |
EEventInitializingComplete |
The image processor has finished initializing. |
EEventProcessing |
Processing is in progress. |
EEventProcessingComplete |
Processing is complete. |
EEventRendering |
Rendering is in progress. |
EEventRenderingComplete |
Event rendering is complete. |
EEventPreviewInitializing |
The preview is initializing. |
EEventPreviewInitializingComplete |
The preview has finished initializing. |
EEventPreviewRendering |
The preview rendering is in progress. |
EEventPreviewRenderingComplete |
The preview rendering is complete. |
Flags to control the operations or transforms on an image.
EOperationNone = 0x0 |
No operation. |
EOperationRotate90 = 0x1 |
Rotate 90 degrees clockwise. |
EOperationRotate180 = 0x2 |
Rotate 180 degrees clockwise. |
EOperationRotate270 = 0x4 |
Rotate 270 degrees clockwise. |
EOperationMirrorHorizontalAxis = 0x8 |
Horizontal flip (mirror over horizontal axis). |
EOperationMirrorHorizontalAxisRotate90 = 0x10 |
Horizontal flip (mirror over horizontal axis) then rotate 90 degrees clockwise. |
EOperationMirrorVerticalAxis = 0x20 |
Vertical flip (mirror over vertical axis). |
EOperationMirrorVerticalAxisRotate90 = 0x40 |
Vertical flip (mirror over vertical axis) then rotate 90 degrees clockwise. |
Flags to control how the image is processed.
EOptionNone = 0x00 |
No flag set |
EOptionSyncProcessing = 0x01 |
Effects, geometric operations and rendering are applied synchronously. The default is asynchronously. |
EOptionExifMetadataProcessing = 0x02 |
The Exif data from the source image is parsed and transferred to the destination image. |
Possible states for the image processor.
EUninitialized = 0 |
Image processor not initalized. |
EInitializing |
Image processor initalizing. |
EInitialized |
Image processor initalized. |
EEffectActive |
Effect active. |
EProcessing |
Image processor processing an image. |
EPreviewInitializing |
Preview initializing. |
EPreviewRendering |
Preview Rendering. |
EStatesCount |
Count of valid states (boundary marker - not a true state). |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.