📄 imageengine.h
字号:
#ifndef _CGAIMAGEENGINE_H_
#define _CGAIMAGEENGINE_H_
#include<e32base.h>
class CActive;
class RFs;
class CFbsBitmap;
class CImageDecoder;
class CBitmapScaler;
class CFrameImageData;
class CGulIcon;
class CGAImageEngine;
class CPAlbImageUtil;
class MImageEngineObserver
{
public:
virtual void OkToGetImage(TInt aState,TInt aItemIndex,CGAImageEngine* aEngine) = 0;
};
class CGAImageEngine : public CActive
{
private:
enum EImageState
{
EImageDecoding = 0,
EImageDecoded,
EImageScaling,
EImageScaled,
EImageUninit,
EImageAllCompleted,
EError
};
private:
//判断给出的文件是否符合这个引擎的要求,文件类型为:bmp,jpg,png,gif
TBool ValidFileType(const TDesC& fileExtent);
private:
CGAImageEngine(MImageEngineObserver* aObserver);
public:
static CGAImageEngine* NewL(MImageEngineObserver* aObserver);
public:
virtual ~CGAImageEngine();
void ConstructL();
//设置文件解码时的状态
void SetState(EImageState aState);
//拉伸图片
void ImageScale();
//把指定的图片文件转换为图标
void GenerateIconByFilePathL(const TDesC& aFilePath,TInt aItemIndex);
//返回转换成功后的缩略图,取走图片后,取图者要把这个设为空,因为此时取图者已获得
//图片的所有权
CFbsBitmap* GetImage();
//如果转换后的图片给取走,把图片设置为空
void MakeImageEmpty();
private: // From CActive
// Handle completion
void RunL();
TInt RunError(TInt aError);
// How to cancel me
void DoCancel();
private:
RFs iFsSession; //文件服务器
CFbsBitmap* iImage; //Image文件夹下的某一个文件
CImageDecoder* iDecoder; //图像解码器
CBitmapScaler* iScaler; //图像拉伸器
EImageState iState; //图片解码时的状态
TInt iItemIndex; //制作Listbox哪一个item的缩略图
MImageEngineObserver* iObserver; //图片转换时的观察器
TFileName iThumbNailPath; //图片的路径
TBool iNeedCreate; //是否要产生一个thumbnail
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -