📄 imagesaverengine.cpp
字号:
/*
* ============================================================================
* Name : CImageSaverEngine from ImageSaverEngine.cpp
* Part of : ImageSaver
* Created : 30.01.2006 by ToBeReplacedByAuthor
* Implementation notes:
*
* Version :
* Copyright: ToBeReplacedByCopyright
* ============================================================================
*/
// INCLUDE FILES
#include <coemain.h>
#include "ImageSaverEngine.h"
// ================= MEMBER FUNCTIONS =======================
// Two-phased constructor.
CImageSaverEngine* CImageSaverEngine::NewL(MObserver& aObserver)
{
CImageSaverEngine* self = new(ELeave) CImageSaverEngine(aObserver);
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop();
return self;
}
// destructor
CImageSaverEngine::~CImageSaverEngine()
{
DoCancel();
}
// constructor
CImageSaverEngine::CImageSaverEngine(MObserver& aObserver ) :
CActive(EPriorityStandard), iObserver(aObserver)
{
}
// EPOC default constructor can leave.
void CImageSaverEngine::ConstructL()
{
CActiveScheduler::Add( this );
}
void CImageSaverEngine::RunL()
{
iObserver.OnCompleteL(iStatus.Int());
DoCancel();
}
void CImageSaverEngine::DoCancel()
{
if(iImageEncoder!=NULL)
{
iImageEncoder->Cancel();
}
delete iImageEncoder;
iImageEncoder = NULL;
delete iFrameImageData;
iFrameImageData = NULL;
}
void CImageSaverEngine::SaveL(CFbsBitmap& aBitmap, const TFileName& aFileName)
{
DoCancel();
_LIT8(KJpgMime, "image/jpeg");
iImageEncoder = CImageEncoder::FileNewL(CCoeEnv::Static()->FsSession(), aFileName, KJpgMime());
// Setup the jpg saving information that is required.
TJpegImageData* jpegImageData = new (ELeave) TJpegImageData;
CleanupStack::PushL(jpegImageData);
// Set specific format data
jpegImageData->iQualityFactor = 95;
jpegImageData->iSampleScheme = TJpegImageData::EColor444;
iFrameImageData = CFrameImageData::NewL();
// Ownership passed to iFrameImageData after AppendImageData
User::LeaveIfError(iFrameImageData->AppendImageData(jpegImageData));
CleanupStack::Pop(jpegImageData);
// Convert
iImageEncoder->Convert(&iStatus, aBitmap, iFrameImageData);
SetActive();
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -