⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imageengine.h

📁 symbian 的文件保密软件,可以把文件设置为私有或者还原为公共,私有时,别人没有权限是看不到的,还可以参照您的需求或建议为您定制软件.
💻 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 + -