epoc32/include/imageprocessor/imageprocessoreffect.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@4
     2
// All rights reserved.
williamr@4
     3
// This component and the accompanying materials are made available
williamr@4
     4
// under the terms of "Eclipse Public License v1.0"
williamr@4
     5
// which accompanies this distribution, and is available
williamr@4
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@4
     7
//
williamr@4
     8
// Initial Contributors:
williamr@4
     9
// Nokia Corporation - initial contribution.
williamr@4
    10
//
williamr@4
    11
// Contributors:
williamr@4
    12
//
williamr@4
    13
// Description:
williamr@4
    14
//
williamr@4
    15
williamr@4
    16
/**
williamr@4
    17
 @file
williamr@4
    18
 @publishedAll 
williamr@4
    19
 @released 
williamr@4
    20
*/
williamr@4
    21
williamr@4
    22
#ifndef __IMAGE_PROCESSOR_EFFECT_H__
williamr@4
    23
#define __IMAGE_PROCESSOR_EFFECT_H__
williamr@4
    24
williamr@4
    25
#include <e32base.h>
williamr@4
    26
#include <imageprocessor/imageprocessor_uids.hrh>
williamr@4
    27
#include <imageprocessor/imageprocessor.h>
williamr@4
    28
williamr@4
    29
namespace ImageProcessor
williamr@4
    30
	{
williamr@4
    31
	class CImageProcessorImpl;
williamr@4
    32
	
williamr@4
    33
	namespace Plugin
williamr@4
    34
		{
williamr@4
    35
		class MEffect;
williamr@4
    36
		}
williamr@4
    37
   	
williamr@4
    38
   	//Effects Uids
williamr@4
    39
	/** 
williamr@4
    40
	Uid used to gain access to the Sepia effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    41
	*/
williamr@4
    42
	const TUid KEffectSepiaUid = {KEffectSepiaUidValue};
williamr@4
    43
	/** 
williamr@4
    44
	Uid used to gain access to the Grayscale effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    45
	*/
williamr@4
    46
	const TUid KEffectGrayscaleUid = {KEffectGrayscaleUidValue};
williamr@4
    47
	/** 
williamr@4
    48
	Uid used to gain access to the Negative effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    49
	*/
williamr@4
    50
	const TUid KEffectNegativeUid = {KEffectNegativeUidValue};
williamr@4
    51
	/** 
williamr@4
    52
	Uid used to gain access to the GrayscaleNegative effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    53
	*/
williamr@4
    54
	const TUid KEffectGrayscaleNegativeUid = {KEffectGrayscaleNegativeUidValue};
williamr@4
    55
	/** 
williamr@4
    56
	Uid used to gain access to the Oily effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    57
	*/
williamr@4
    58
	const TUid KEffectOilyUid = {KEffectOilyUidValue};
williamr@4
    59
	/** 
williamr@4
    60
	Uid used to gain access to the Paint effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    61
	*/
williamr@4
    62
	const TUid KEffectPaintUid = {KEffectPaintUidValue};
williamr@4
    63
	/** 
williamr@4
    64
	Uid used to gain access to the Milky effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    65
	*/
williamr@4
    66
	const TUid KEffectMilkyUid = {KEffectMilkyUidValue};
williamr@4
    67
	/** 
williamr@4
    68
	Uid used to gain access to the Fog effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    69
	*/
williamr@4
    70
	const TUid KEffectFogUid = {KEffectFogUidValue};
williamr@4
    71
	/** 
williamr@4
    72
	Uid used to gain access to the MirrorLeftToRight effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    73
	*/
williamr@4
    74
	const TUid KEffectMirrorLeftToRightUid = {KEffectMirrorLeftToRightUidValue};
williamr@4
    75
	/** 
williamr@4
    76
	Uid used to gain access to the MagicPen effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    77
	*/
williamr@4
    78
	const TUid KEffectMagicPenUid = {KEffectMagicPenUidValue};
williamr@4
    79
	/** 
williamr@4
    80
	Uid used to gain access to the Brightness effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    81
	*/
williamr@4
    82
	const TUid KEffectBrightnessUid = {KEffectBrightnessUidValue};
williamr@4
    83
	/** 
williamr@4
    84
	Uid used to gain access to the Sharpness effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    85
	*/
williamr@4
    86
	const TUid KEffectSharpnessUid = {KEffectSharpnessUidValue};
williamr@4
    87
	/** 
williamr@4
    88
	Uid used to gain access to the Rotation effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    89
	*/
williamr@4
    90
	const TUid KEffectRotationUid = {KEffectRotationUidValue};
williamr@4
    91
	/** 
williamr@4
    92
	Uid used to gain access to the Contrast effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    93
	*/
williamr@4
    94
	const TUid KEffectContrastUid = {KEffectContrastUidValue};
williamr@4
    95
	/** 
williamr@4
    96
	Uid used to gain access to the RgbColorAdjust effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
    97
	*/
williamr@4
    98
	const TUid KEffectRgbColorAdjustUid = {KEffectRgbColorAdjustUidValue};
williamr@4
    99
	/** 
williamr@4
   100
	Uid used to gain access to the Emboss effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   101
	*/
williamr@4
   102
	const TUid KEffectEmbossUid = {KEffectEmbossUidValue};
williamr@4
   103
	/** 
williamr@4
   104
	Uid used to gain access to the Solarize effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   105
	*/
williamr@4
   106
	const TUid KEffectSolarizeUid = {KEffectSolarizeUidValue};
williamr@4
   107
	/** 
williamr@4
   108
	Uid used to gain access to the Posterize effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   109
	*/
williamr@4
   110
	const TUid KEffectPosterizeUid = {KEffectPosterizeUidValue};
williamr@4
   111
	/** 
williamr@4
   112
	Uid used to gain access to the Stamp effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   113
	*/
williamr@4
   114
	const TUid KEffectStampUid = {KEffectStampUidValue};
williamr@4
   115
	/** 
williamr@4
   116
	Uid used to gain access to the Sketch effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   117
	*/
williamr@4
   118
	const TUid KEffectSketchUid = {KEffectSketchUidValue};
williamr@4
   119
	/** 
williamr@4
   120
	Uid used to gain access to the Noise effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   121
	*/
williamr@4
   122
	const TUid KEffectNoiseUid = {KEffectNoiseUidValue};
williamr@4
   123
	/** 
williamr@4
   124
	Uid used to gain access to the Moonlight effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   125
	*/
williamr@4
   126
	const TUid KEffectMoonlightUid = {KEffectMoonlightUidValue};
williamr@4
   127
	/** 
williamr@4
   128
	Uid used to gain access to the FrostedGlass effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   129
	*/
williamr@4
   130
	const TUid KEffectFrostedGlassUid = {KEffectFrostedGlassUidValue};
williamr@4
   131
	/** 
williamr@4
   132
	Uid used to gain access to the Despeckle effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   133
	*/
williamr@4
   134
	const TUid KEffectDespeckleUid = {KEffectDespeckleUidValue};
williamr@4
   135
	/** 
williamr@4
   136
	Uid used to gain access to the Blur effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   137
	*/
williamr@4
   138
	const TUid KEffectBlurUid = {KEffectBlurUidValue};
williamr@4
   139
	/** 
williamr@4
   140
	Uid used to gain access to the Colorization effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   141
	*/
williamr@4
   142
	const TUid KEffectColorizationUid = {KEffectColorizationUidValue};
williamr@4
   143
	/** 
williamr@4
   144
	Uid used to gain access to the Cartoon effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   145
	*/
williamr@4
   146
	const TUid KEffectCartoonUid = {KEffectCartoonUidValue};
williamr@4
   147
	/** 
williamr@4
   148
	Uid used to gain access to the LocalBoost effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   149
	*/
williamr@4
   150
	const TUid KEffectLocalBoostUid = {KEffectLocalBoostUidValue};
williamr@4
   151
	/** 
williamr@4
   152
	Uid used to gain access to the ColorBoost effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   153
	*/
williamr@4
   154
	const TUid KEffectColorBoostUid = {KEffectColorBoostUidValue};
williamr@4
   155
	/** 
williamr@4
   156
	Uid used to gain access to the WhiteBalance effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   157
	*/
williamr@4
   158
	const TUid KEffectWhiteBalanceUid = {KEffectWhiteBalanceUidValue};
williamr@4
   159
	/** 
williamr@4
   160
	Uid used to gain access to the AutoLevels effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   161
	*/
williamr@4
   162
	const TUid KEffectAutoLevelsUid = {KEffectAutoLevelsUidValue};
williamr@4
   163
	/** 
williamr@4
   164
	Uid used to gain access to the Levels effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   165
	*/
williamr@4
   166
	const TUid KEffectLevelsUid = {KEffectLevelsUidValue};
williamr@4
   167
	/** 
williamr@4
   168
	Uid used to gain access to the Exposure effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   169
	*/
williamr@4
   170
	const TUid KEffectExposureUid = {KEffectExposureUidValue};
williamr@4
   171
	/** 
williamr@4
   172
	Uid used to gain access to the SpotLight effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   173
	*/
williamr@4
   174
	const TUid KEffectSpotLightUid = {KEffectSpotLightUidValue};
williamr@4
   175
	/** 
williamr@4
   176
	Uid used to gain access to the CustomTransformation effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   177
	*/
williamr@4
   178
	const TUid KEffectCustomTransformationUid = {KEffectCustomTransformationUidValue};
williamr@4
   179
	/** 
williamr@4
   180
	Uid used to gain access to the Antique effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   181
	*/
williamr@4
   182
	const TUid KEffectAntiqueUid = {KEffectAntiqueUidValue};
williamr@4
   183
	
williamr@4
   184
	//Others
williamr@4
   185
	/** 
williamr@4
   186
	Uid used to gain access to the GeometricalOperation effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   187
	*/
williamr@4
   188
	const TUid KGeometricalOperationUid = {KGeometricalOperationUidValue};
williamr@4
   189
	/** 
williamr@4
   190
	Uid used to gain access to the Border effect. @see ImageProcessor::CImgProcessor::EffectL
williamr@4
   191
	*/
williamr@4
   192
	const TUid KEffectBorderUid = {KEffectBorderUidValue};
williamr@4
   193
	   
williamr@4
   194
/**
williamr@4
   195
The class is the parent class of all effects.
williamr@4
   196
The extended class should implement three stages/functions: "begin -> set -> end" 
williamr@4
   197
williamr@4
   198
@publishedAll
williamr@4
   199
@released
williamr@4
   200
*/
williamr@4
   201
class TEffect
williamr@4
   202
	{
williamr@4
   203
public:
williamr@4
   204
	/** Describes the type of the effect in terms of the type of parameter input to adjust levels. */
williamr@4
   205
	enum TEffectInputType
williamr@4
   206
		{
williamr@4
   207
		EEffectInputTypeInt,
williamr@4
   208
		EEffectInputTypeReal32,
williamr@4
   209
		EEffectInputTypeCustom
williamr@4
   210
		};
williamr@4
   211
williamr@4
   212
public:
williamr@4
   213
	inline TUid Type() const;
williamr@4
   214
	inline Plugin::MEffect& PluginEffect() const;
williamr@4
   215
	inline TBool IsActive() const;
williamr@4
   216
	
williamr@4
   217
	IMPORT_C void BeginL();
williamr@4
   218
	IMPORT_C void EndL();
williamr@4
   219
	
williamr@4
   220
	IMPORT_C TEffectInputType InputType() const;
williamr@4
   221
	
williamr@4
   222
	IMPORT_C void SetLevelL(TInt aLevel);
williamr@4
   223
	IMPORT_C void LevelL(TInt& aLevel) const;
williamr@4
   224
	IMPORT_C void LevelSettings(TInt& aMinimumLevel, TInt& aMaximumLevel, TInt& aLevelStep) const;
williamr@4
   225
	
williamr@4
   226
	IMPORT_C void SetLevelL(TReal32 aLevel);
williamr@4
   227
	IMPORT_C void LevelL(TReal32& aLevel) const ;
williamr@4
   228
	IMPORT_C void LevelSettings(TReal32& aMinimumLevel, TReal32& aMaximumLevel, TReal32& aLevelStep) const;
williamr@4
   229
			
williamr@4
   230
	IMPORT_C void ResetL();
williamr@4
   231
	IMPORT_C TAny* Extension(TUid aExtension);
williamr@4
   232
williamr@4
   233
protected:
williamr@4
   234
	friend class CImageProcessorImpl;
williamr@4
   235
	/**
williamr@4
   236
	@internalComponent
williamr@4
   237
	*/
williamr@4
   238
	TEffect(const TUid& aUid, Plugin::MEffect& aPluginEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   239
	Plugin::MEffect& iPluginEffect;
williamr@4
   240
	TUid iUid;
williamr@4
   241
	TBool iIsActive;
williamr@4
   242
	CImageProcessorImpl& iImageProcessorImpl;
williamr@4
   243
	
williamr@4
   244
	TAny* iReserved;
williamr@4
   245
	};
williamr@4
   246
williamr@4
   247
/**
williamr@4
   248
Gets the effect type.
williamr@4
   249
williamr@4
   250
@return The UID of the effect.
williamr@4
   251
*/
williamr@4
   252
TUid TEffect::Type() const 
williamr@4
   253
	{	
williamr@4
   254
	return iUid;
williamr@4
   255
	}
williamr@4
   256
williamr@4
   257
/**
williamr@4
   258
Gets associated plugin of the effect.
williamr@4
   259
williamr@4
   260
@return A pointer to the related plugin effect instance.
williamr@4
   261
*/
williamr@4
   262
Plugin::MEffect& TEffect::PluginEffect() const 
williamr@4
   263
	{	
williamr@4
   264
	return iPluginEffect;
williamr@4
   265
	}
williamr@4
   266
williamr@4
   267
/**
williamr@4
   268
Gets the state of the effect.
williamr@4
   269
williamr@4
   270
@return	ETrue if the effect is active.
williamr@4
   271
*/
williamr@4
   272
TBool TEffect::IsActive() const 
williamr@4
   273
	{	
williamr@4
   274
	return iIsActive;
williamr@4
   275
	}
williamr@4
   276
williamr@4
   277
/**
williamr@4
   278
The class provides functions to apply sepia effect to an image.
williamr@4
   279
williamr@4
   280
@publishedAll
williamr@4
   281
@released
williamr@4
   282
*/
williamr@4
   283
class TEffectSepia : public TEffect
williamr@4
   284
	{
williamr@4
   285
private:
williamr@4
   286
	friend class CImageProcessorImpl;
williamr@4
   287
	TEffectSepia(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   288
	};
williamr@4
   289
williamr@4
   290
/**
williamr@4
   291
The class provides functions to convert an image to grayscale.
williamr@4
   292
williamr@4
   293
@publishedAll
williamr@4
   294
@released
williamr@4
   295
*/
williamr@4
   296
class TEffectGrayscale : public TEffect
williamr@4
   297
	{
williamr@4
   298
private:
williamr@4
   299
	friend class CImageProcessorImpl;
williamr@4
   300
	TEffectGrayscale(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   301
	};
williamr@4
   302
williamr@4
   303
/**
williamr@4
   304
The class provides functions to convert an image similar to a photographic negative.
williamr@4
   305
williamr@4
   306
@publishedAll
williamr@4
   307
@released
williamr@4
   308
*/
williamr@4
   309
class TEffectNegative : public TEffect
williamr@4
   310
	{
williamr@4
   311
private:
williamr@4
   312
	friend class CImageProcessorImpl;
williamr@4
   313
	TEffectNegative(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   314
	};
williamr@4
   315
williamr@4
   316
/**
williamr@4
   317
The class provides functions to convert an image to combined grayscale and negative. (Consider removing this effect)
williamr@4
   318
williamr@4
   319
@publishedAll
williamr@4
   320
@released
williamr@4
   321
*/
williamr@4
   322
class TEffectGrayscaleNegative : public TEffect
williamr@4
   323
	{
williamr@4
   324
private:
williamr@4
   325
	friend class CImageProcessorImpl;
williamr@4
   326
	TEffectGrayscaleNegative(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   327
	};
williamr@4
   328
williamr@4
   329
/**
williamr@4
   330
The class provides functions to make an image look like an oil painting. 
williamr@4
   331
williamr@4
   332
@publishedAll
williamr@4
   333
@released
williamr@4
   334
*/
williamr@4
   335
class TEffectOily : public TEffect
williamr@4
   336
	{
williamr@4
   337
private:
williamr@4
   338
	friend class CImageProcessorImpl;
williamr@4
   339
	TEffectOily(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   340
	};
williamr@4
   341
williamr@4
   342
/**
williamr@4
   343
The class provides functions to make an image look like a painting (how is this distinct from an oil painting effect?). 
williamr@4
   344
williamr@4
   345
@publishedAll
williamr@4
   346
@released
williamr@4
   347
*/
williamr@4
   348
class TEffectPaint : public TEffect
williamr@4
   349
	{
williamr@4
   350
private:
williamr@4
   351
	friend class CImageProcessorImpl;
williamr@4
   352
	TEffectPaint(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   353
	};
williamr@4
   354
williamr@4
   355
/**
williamr@4
   356
The class provides functions to apply a "milky" surface effect to an image. 
williamr@4
   357
williamr@4
   358
@publishedAll
williamr@4
   359
@released
williamr@4
   360
*/
williamr@4
   361
class TEffectMilky : public TEffect
williamr@4
   362
	{
williamr@4
   363
private:
williamr@4
   364
	friend class CImageProcessorImpl;
williamr@4
   365
	TEffectMilky(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   366
	};
williamr@4
   367
williamr@4
   368
/**
williamr@4
   369
The class provides functions to apply a fog effect to an image. 
williamr@4
   370
williamr@4
   371
@publishedAll
williamr@4
   372
@released
williamr@4
   373
*/
williamr@4
   374
class TEffectFog : public TEffect
williamr@4
   375
	{
williamr@4
   376
private:
williamr@4
   377
	friend class CImageProcessorImpl;
williamr@4
   378
	TEffectFog(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   379
	};
williamr@4
   380
williamr@4
   381
/**
williamr@4
   382
The class provides functions to apply Antique effect to an image. 
williamr@4
   383
williamr@4
   384
@publishedAll
williamr@4
   385
@released
williamr@4
   386
*/
williamr@4
   387
class TEffectAntique : public TEffect
williamr@4
   388
	{
williamr@4
   389
private:
williamr@4
   390
	friend class CImageProcessorImpl;
williamr@4
   391
	TEffectAntique(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   392
	};
williamr@4
   393
williamr@4
   394
/**
williamr@4
   395
The class provides functions to apply a mirror effect to an image. 
williamr@4
   396
Mirrors the left side of the image on the right side of the image. 
williamr@4
   397
williamr@4
   398
@publishedAll
williamr@4
   399
@released
williamr@4
   400
*/
williamr@4
   401
class TEffectMirrorLeftToRight : public TEffect
williamr@4
   402
	{
williamr@4
   403
private:
williamr@4
   404
	friend class CImageProcessorImpl;
williamr@4
   405
	TEffectMirrorLeftToRight(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   406
	};
williamr@4
   407
williamr@4
   408
/**
williamr@4
   409
The class provides functions to apply a mix of edge distinction and color manipulation to an image.
williamr@4
   410
williamr@4
   411
@publishedAll
williamr@4
   412
@released
williamr@4
   413
*/
williamr@4
   414
class TEffectMagicPen : public TEffect
williamr@4
   415
	{
williamr@4
   416
private:
williamr@4
   417
	friend class CImageProcessorImpl;
williamr@4
   418
	TEffectMagicPen(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   419
	};
williamr@4
   420
williamr@4
   421
/**
williamr@4
   422
The class provides functions to adjust the brightness level of an image.
williamr@4
   423
williamr@4
   424
@publishedAll
williamr@4
   425
@released
williamr@4
   426
*/
williamr@4
   427
class TEffectBrightness : public TEffect
williamr@4
   428
	{
williamr@4
   429
private:
williamr@4
   430
	friend class CImageProcessorImpl;
williamr@4
   431
	TEffectBrightness(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   432
	};
williamr@4
   433
williamr@4
   434
/**
williamr@4
   435
The class provides functions to adjust the sharpness level of an image.
williamr@4
   436
williamr@4
   437
@publishedAll
williamr@4
   438
@released
williamr@4
   439
*/
williamr@4
   440
class TEffectSharpness : public TEffect
williamr@4
   441
	{
williamr@4
   442
private:
williamr@4
   443
	friend class CImageProcessorImpl;
williamr@4
   444
	TEffectSharpness(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   445
	};
williamr@4
   446
williamr@4
   447
/**
williamr@4
   448
The class provides functions to rotate an image through an arbitrary angle.
williamr@4
   449
williamr@4
   450
@publishedAll
williamr@4
   451
@released
williamr@4
   452
*/
williamr@4
   453
class TEffectRotation : public TEffect
williamr@4
   454
	{
williamr@4
   455
public:	
williamr@4
   456
	/**
williamr@4
   457
	Parameters to control the scale of the image when rotation is applied
williamr@4
   458
	*/
williamr@4
   459
	enum TRotationScaleMode 
williamr@4
   460
		{
williamr@4
   461
		/** The image is not scaled when rotation is applied, which is the default mode*/
williamr@4
   462
		ERotationScaleModeIgnore,
williamr@4
   463
		/** The image will be rotated, and scaled to fit inside the margins of the original image*/
williamr@4
   464
		ERotationScaleModeFitInside,
williamr@4
   465
		/** The image will be rotated, and scaled to fully enclose the margins of the original image*/ 
williamr@4
   466
		ERotationScaleModeFitOutside
williamr@4
   467
		};
williamr@4
   468
williamr@4
   469
	IMPORT_C TRotationScaleMode ScaleModeL() const;
williamr@4
   470
	IMPORT_C TReal32 AngleL() const;
williamr@4
   471
	IMPORT_C void SetRotationL(TRotationScaleMode aScaleMode, TReal32 aAngle);
williamr@4
   472
williamr@4
   473
private:
williamr@4
   474
	friend class CImageProcessorImpl;
williamr@4
   475
	TEffectRotation(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   476
	};
williamr@4
   477
williamr@4
   478
/**
williamr@4
   479
The class provides functions to apply contrast adjustment to an image.
williamr@4
   480
williamr@4
   481
@publishedAll
williamr@4
   482
@released
williamr@4
   483
*/
williamr@4
   484
class TEffectContrast : public TEffect
williamr@4
   485
	{
williamr@4
   486
private:
williamr@4
   487
	friend class CImageProcessorImpl;
williamr@4
   488
	TEffectContrast(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   489
	};
williamr@4
   490
williamr@4
   491
/**
williamr@4
   492
The class provides functions to adjust the RGB color composition of an image 
williamr@4
   493
williamr@4
   494
@publishedAll
williamr@4
   495
@released
williamr@4
   496
*/
williamr@4
   497
class TEffectRgbColorAdjust : public TEffect
williamr@4
   498
	{
williamr@4
   499
public:	
williamr@4
   500
	IMPORT_C TReal32 RedLevelL() const;
williamr@4
   501
	IMPORT_C TReal32 GreenLevelL() const;
williamr@4
   502
	IMPORT_C TReal32 BlueLevelL() const;
williamr@4
   503
	IMPORT_C void SetRGBLevelL(TReal32 aRedLevel, TReal32 aGreenLevel, TReal32 aBlueLevel);
williamr@4
   504
williamr@4
   505
private:
williamr@4
   506
	friend class CImageProcessorImpl;
williamr@4
   507
	TEffectRgbColorAdjust(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   508
	};
williamr@4
   509
williamr@4
   510
/**
williamr@4
   511
The class provides functions to apply an emboss effect in grayscale to an image.
williamr@4
   512
williamr@4
   513
@publishedAll
williamr@4
   514
@released
williamr@4
   515
*/
williamr@4
   516
class TEffectEmboss : public TEffect
williamr@4
   517
	{
williamr@4
   518
private:
williamr@4
   519
	friend class CImageProcessorImpl;
williamr@4
   520
	TEffectEmboss(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   521
	};
williamr@4
   522
williamr@4
   523
/**
williamr@4
   524
The class provides functions to apply a solarize look to an image.
williamr@4
   525
williamr@4
   526
@publishedAll
williamr@4
   527
@released
williamr@4
   528
*/
williamr@4
   529
class TEffectSolarize : public TEffect
williamr@4
   530
	{
williamr@4
   531
private:
williamr@4
   532
	friend class CImageProcessorImpl;
williamr@4
   533
	TEffectSolarize(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   534
	};
williamr@4
   535
williamr@4
   536
/**
williamr@4
   537
The class provides functions to apply a posterize effect to an image. The number of colors is reduced.
williamr@4
   538
williamr@4
   539
@publishedAll
williamr@4
   540
@released
williamr@4
   541
*/
williamr@4
   542
class TEffectPosterize : public TEffect
williamr@4
   543
	{
williamr@4
   544
private:
williamr@4
   545
	friend class CImageProcessorImpl;
williamr@4
   546
	TEffectPosterize(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   547
	};
williamr@4
   548
williamr@4
   549
/**
williamr@4
   550
The class provides functions to apply a rubber stamp effect. Result is a black/white image.
williamr@4
   551
williamr@4
   552
@publishedAll
williamr@4
   553
@released
williamr@4
   554
*/
williamr@4
   555
class TEffectStamp : public TEffect
williamr@4
   556
	{
williamr@4
   557
public:	
williamr@4
   558
	IMPORT_C TInt SmoothnessLevelL() const;
williamr@4
   559
	IMPORT_C TInt ThresholdLevelL() const;
williamr@4
   560
	IMPORT_C void SetStampLevelL(TInt aSmoothnessLevel, TInt aThresholdLevel);
williamr@4
   561
williamr@4
   562
private:
williamr@4
   563
	friend class CImageProcessorImpl;
williamr@4
   564
	TEffectStamp(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   565
	};
williamr@4
   566
/**
williamr@4
   567
The class provides functions to create a sketched representation of an image.
williamr@4
   568
williamr@4
   569
@publishedAll
williamr@4
   570
@released
williamr@4
   571
*/
williamr@4
   572
class TEffectSketch : public TEffect
williamr@4
   573
	{
williamr@4
   574
public:
williamr@4
   575
	/**
williamr@4
   576
	Parameters to control the sketch mode.
williamr@4
   577
	*/
williamr@4
   578
	enum TSketchMode
williamr@4
   579
		{
williamr@4
   580
		/** Sketch the image in gray, which is the default mode*/
williamr@4
   581
		ESketchModeGray,
williamr@4
   582
		/** Sketch the image in color.*/
williamr@4
   583
		ESketchColor
williamr@4
   584
		};
williamr@4
   585
public:	
williamr@4
   586
	IMPORT_C TSketchMode SketchModeL() const;
williamr@4
   587
	IMPORT_C void SetSketchModeL(TSketchMode aLevel);
williamr@4
   588
williamr@4
   589
private:
williamr@4
   590
	friend class CImageProcessorImpl;
williamr@4
   591
	TEffectSketch(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   592
	};
williamr@4
   593
williamr@4
   594
/**
williamr@4
   595
The class provides functions to apply noise to an image
williamr@4
   596
williamr@4
   597
@publishedAll
williamr@4
   598
@released
williamr@4
   599
*/
williamr@4
   600
class TEffectNoise : public TEffect
williamr@4
   601
	{
williamr@4
   602
private:
williamr@4
   603
	friend class CImageProcessorImpl;
williamr@4
   604
	TEffectNoise(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   605
	};
williamr@4
   606
williamr@4
   607
/**
williamr@4
   608
The class provides functions to apply a Moonlight effect to an image.
williamr@4
   609
williamr@4
   610
@publishedAll
williamr@4
   611
@released
williamr@4
   612
*/
williamr@4
   613
class TEffectMoonlight : public TEffect
williamr@4
   614
	{
williamr@4
   615
	TInt16 ClockL();
williamr@4
   616
	void SetClockL(TInt16 aClock);
williamr@4
   617
williamr@4
   618
private:
williamr@4
   619
	friend class CImageProcessorImpl;
williamr@4
   620
	TEffectMoonlight(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   621
	};
williamr@4
   622
williamr@4
   623
/**
williamr@4
   624
The class provides functions to apply a "frosted glass" surface effect to an image.
williamr@4
   625
williamr@4
   626
@publishedAll
williamr@4
   627
@released
williamr@4
   628
*/
williamr@4
   629
class TEffectFrostedGlass : public TEffect
williamr@4
   630
	{
williamr@4
   631
private:
williamr@4
   632
	friend class CImageProcessorImpl;
williamr@4
   633
	TEffectFrostedGlass(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   634
	};
williamr@4
   635
williamr@4
   636
/**
williamr@4
   637
The class provides functions to apply a "despeckle" surface effect to an image, which means to 
williamr@4
   638
remove noise from images without blurring edges.
williamr@4
   639
williamr@4
   640
@publishedAll
williamr@4
   641
@released
williamr@4
   642
*/
williamr@4
   643
class TEffectDespeckle : public TEffect
williamr@4
   644
	{
williamr@4
   645
private:
williamr@4
   646
	friend class CImageProcessorImpl;
williamr@4
   647
	TEffectDespeckle(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   648
	};
williamr@4
   649
williamr@4
   650
/**
williamr@4
   651
The class provides functions to blur an area of the image.
williamr@4
   652
williamr@4
   653
@publishedAll
williamr@4
   654
@released
williamr@4
   655
*/
williamr@4
   656
class TEffectBlur : public TEffect
williamr@4
   657
	{
williamr@4
   658
public:	
williamr@4
   659
	IMPORT_C TRect RectL() const;
williamr@4
   660
	IMPORT_C void SetRectL(TRect aRect);
williamr@4
   661
williamr@4
   662
private:
williamr@4
   663
	friend class CImageProcessorImpl;
williamr@4
   664
	TEffectBlur(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   665
	};
williamr@4
   666
williamr@4
   667
/**
williamr@4
   668
The class provides functions to adjust color tone and luminance/chrominance levels. 
williamr@4
   669
williamr@4
   670
@publishedAll
williamr@4
   671
@released
williamr@4
   672
*/
williamr@4
   673
class TEffectColorization : public TEffect
williamr@4
   674
	{
williamr@4
   675
public:	
williamr@4
   676
	IMPORT_C TRgb ReferenceColorL() const;
williamr@4
   677
	IMPORT_C TInt LuminanceStrengthL() const;
williamr@4
   678
	IMPORT_C TInt ChrominanceStrengthL() const;
williamr@4
   679
	IMPORT_C void SetColorizationL(TRgb aReferenceColor, TInt aLuminanceStrength, TInt aChrominanceStrength);
williamr@4
   680
williamr@4
   681
private:
williamr@4
   682
	friend class CImageProcessorImpl;
williamr@4
   683
	TEffectColorization(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   684
	};
williamr@4
   685
williamr@4
   686
/**
williamr@4
   687
The class provides functions to transform an image to typical cartoon graphics style.
williamr@4
   688
williamr@4
   689
@publishedAll
williamr@4
   690
@released
williamr@4
   691
*/
williamr@4
   692
class TEffectCartoon : public TEffect
williamr@4
   693
	{
williamr@4
   694
public:	
williamr@4
   695
	IMPORT_C TBool DistinctEdgesL() const;
williamr@4
   696
	IMPORT_C void SetDistinctEdgesL(TBool aDistinctEdges);
williamr@4
   697
williamr@4
   698
private:
williamr@4
   699
	friend class CImageProcessorImpl;
williamr@4
   700
	TEffectCartoon(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   701
	};
williamr@4
   702
williamr@4
   703
/**
williamr@4
   704
The class provides functions to automatically boost and enhance images with unequal illumination. 
williamr@4
   705
williamr@4
   706
@publishedAll
williamr@4
   707
@released
williamr@4
   708
*/
williamr@4
   709
class TEffectLocalBoost : public TEffect
williamr@4
   710
	{
williamr@4
   711
private:
williamr@4
   712
	friend class CImageProcessorImpl;
williamr@4
   713
	TEffectLocalBoost(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   714
	};
williamr@4
   715
williamr@4
   716
/**
williamr@4
   717
The class provides functions to amplify the colors of an image.
williamr@4
   718
williamr@4
   719
@publishedAll
williamr@4
   720
@released
williamr@4
   721
*/
williamr@4
   722
class TEffectColorBoost : public TEffect
williamr@4
   723
	{
williamr@4
   724
private:
williamr@4
   725
	friend class CImageProcessorImpl;
williamr@4
   726
	TEffectColorBoost(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   727
	};
williamr@4
   728
williamr@4
   729
/**
williamr@4
   730
The class provides functions to perform white balance adjustment on an image.
williamr@4
   731
williamr@4
   732
@publishedAll
williamr@4
   733
@released
williamr@4
   734
*/
williamr@4
   735
class TEffectWhiteBalance : public TEffect
williamr@4
   736
	{
williamr@4
   737
public:	
williamr@4
   738
	/**
williamr@4
   739
	Parameters to define the white balance modes.
williamr@4
   740
	*/
williamr@4
   741
	enum TWhiteBalanceMode
williamr@4
   742
		{
williamr@4
   743
		/**Uses the estimated mean gray for the color correction, which is the default mode.*/
williamr@4
   744
		EWhiteBalanceMeanMode,
williamr@4
   745
		/**Uses the estimated maximum intensity color.*/
williamr@4
   746
		EWhiteBalanceMaxMode,
williamr@4
   747
		/**Uses a white reference color. */
williamr@4
   748
		EWhiteBalanceManualMode,
williamr@4
   749
		/**Calulates the reference from the mean value of the 256-bin distribution.*/  
williamr@4
   750
 		EWhiteBalanceClusterMode
williamr@4
   751
		};	
williamr@4
   752
		
williamr@4
   753
public:	
williamr@4
   754
	IMPORT_C TWhiteBalanceMode WhiteBalanceModeL() const;
williamr@4
   755
	IMPORT_C TRgb ReferenceWhiteColorL() const;
williamr@4
   756
	IMPORT_C void SetWhiteBalanceL(TWhiteBalanceMode aWhiteBalanceMode, TRgb aReferenceWhiteColor);
williamr@4
   757
	
williamr@4
   758
private:
williamr@4
   759
	friend class CImageProcessorImpl;
williamr@4
   760
	TEffectWhiteBalance(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   761
	};
williamr@4
   762
williamr@4
   763
/**
williamr@4
   764
The class provides functions to apply auto level adjustment to an image.
williamr@4
   765
Auto level adjustment balances the intensity level of the image, for example making dark images lighter and vice versa.
williamr@4
   766
williamr@4
   767
@publishedAll
williamr@4
   768
@released
williamr@4
   769
*/
williamr@4
   770
class TEffectAutoLevels : public TEffect
williamr@4
   771
	{
williamr@4
   772
private:
williamr@4
   773
	friend class CImageProcessorImpl;
williamr@4
   774
	TEffectAutoLevels(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   775
	};
williamr@4
   776
williamr@4
   777
/**
williamr@4
   778
The class provides functions to apply white, gray and black level adjustment to an image.
williamr@4
   779
williamr@4
   780
@publishedAll
williamr@4
   781
@released
williamr@4
   782
*/
williamr@4
   783
class TEffectLevels : public TEffect
williamr@4
   784
	{
williamr@4
   785
public:	
williamr@4
   786
	IMPORT_C TReal32 WhiteLevelL() const;
williamr@4
   787
	IMPORT_C TReal32 GrayLevelL() const;
williamr@4
   788
	IMPORT_C TReal32 BlackLevelL() const;
williamr@4
   789
	IMPORT_C void SetWGBLevelL(TReal32 aWhiteLevel, TReal32 aGrayLevel, TReal32 aBlackLevel);
williamr@4
   790
williamr@4
   791
private:
williamr@4
   792
	friend class CImageProcessorImpl;
williamr@4
   793
	TEffectLevels(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   794
	};
williamr@4
   795
williamr@4
   796
/**
williamr@4
   797
The class provides functions to control the exposure of an image.
williamr@4
   798
williamr@4
   799
@publishedAll
williamr@4
   800
@released
williamr@4
   801
*/
williamr@4
   802
class TEffectExposure : public TEffect
williamr@4
   803
	{
williamr@4
   804
private:
williamr@4
   805
	friend class CImageProcessorImpl;
williamr@4
   806
	TEffectExposure(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   807
	};
williamr@4
   808
williamr@4
   809
/**
williamr@4
   810
The class provides functions to create a spotlight on an image.
williamr@4
   811
williamr@4
   812
@publishedAll
williamr@4
   813
@released
williamr@4
   814
*/
williamr@4
   815
class TEffectSpotLight : public TEffect
williamr@4
   816
	{
williamr@4
   817
public:	
williamr@4
   818
	IMPORT_C void SpotLightOrientationL(TPoint &aPosition, TUint32& aRadius, TReal32& aTransitionSize) const;
williamr@4
   819
	IMPORT_C void SetSpotLightOrientationL(const TPoint& aPosition, TUint32 aRadius, TReal32 aTransitionSize);
williamr@4
   820
williamr@4
   821
private:
williamr@4
   822
	friend class CImageProcessorImpl;
williamr@4
   823
	TEffectSpotLight(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   824
	};
williamr@4
   825
williamr@4
   826
/**
williamr@4
   827
The class provides functions to make a custom transformation with an image.
williamr@4
   828
williamr@4
   829
@publishedAll
williamr@4
   830
@released
williamr@4
   831
*/
williamr@4
   832
class TEffectCustomTransformation : public TEffect
williamr@4
   833
	{
williamr@4
   834
public:	
williamr@4
   835
	IMPORT_C void SetInputL(const TDesC& aFilename);
williamr@4
   836
	IMPORT_C void SetInputL(const TDesC8& aBuffer);
williamr@4
   837
williamr@4
   838
private:
williamr@4
   839
	friend class CImageProcessorImpl;
williamr@4
   840
	TEffectCustomTransformation(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   841
	};
williamr@4
   842
williamr@4
   843
/**
williamr@4
   844
The class provides functions to geometrically control an image.
williamr@4
   845
williamr@4
   846
@publishedAll
williamr@4
   847
@released
williamr@4
   848
*/
williamr@4
   849
class TGeometricalOperation : public TEffect
williamr@4
   850
	{
williamr@4
   851
public:	
williamr@4
   852
	IMPORT_C CImgProcessor::TOperation Operation() const;
williamr@4
   853
	IMPORT_C void SetOperationL(CImgProcessor::TOperation aOperation);
williamr@4
   854
williamr@4
   855
private:
williamr@4
   856
	friend class CImageProcessorImpl;
williamr@4
   857
	TGeometricalOperation(Plugin::MEffect& aEffect,CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   858
	};
williamr@4
   859
williamr@4
   860
/**
williamr@4
   861
The class provides functions to insert a border to an image. 
williamr@4
   862
The border file can be input as File, Buffer or Bitmap. 
williamr@4
   863
williamr@4
   864
@publishedAll
williamr@4
   865
@released
williamr@4
   866
*/
williamr@4
   867
class TEffectBorder : public TEffect
williamr@4
   868
	{
williamr@4
   869
public:	
williamr@4
   870
	IMPORT_C void SetInputL(const TDesC& aFilename);
williamr@4
   871
	IMPORT_C void SetInputL(const TDesC8& aBuffer);
williamr@4
   872
	IMPORT_C void SetInputL(const CFbsBitmap& aBitmap);
williamr@4
   873
	
williamr@4
   874
private:
williamr@4
   875
	friend class CImageProcessorImpl;
williamr@4
   876
	TEffectBorder(Plugin::MEffect& aEffect, CImageProcessorImpl& aImageProcessorImpl);
williamr@4
   877
	};
williamr@4
   878
williamr@4
   879
	}//namespace ImageProcessor
williamr@4
   880
williamr@4
   881
#endif //__IMAGE_PROCESSOR_EFFECT_H__