//************************************
// Method:    InitGifImage
// FullName:  CGifAnimUI::InitGifImage
// Access:    private 
// Returns:   void
// Qualifier:
// Note:	  
//************************************
void CGifAnimUI::InitGifImage()
{
	try
	{
		CStdString sImageName	=	GetBkImage();
		CStdString sImagePath	=	CPaintManagerUI::GetResourcePath();
		sImagePath += sImageName;
		if ( NULL == sImagePath ) return;
		m_pGifImage = Image::FromFile( sImagePath );
		if ( NULL == m_pGifImage ) return;
		UINT nCount	= 0;
		nCount	=	m_pGifImage->GetFrameDimensionsCount();
		GUID* pDimensionIDs	=	new GUID[ nCount ];
		m_pGifImage->GetFrameDimensionsList( pDimensionIDs, nCount );
		m_nFrameCount	=	m_pGifImage->GetFrameCount( &pDimensionIDs[0] );
		int nSize		=	m_pGifImage->GetPropertyItemSize( PropertyTagFrameDelay );
		m_pPropertyItem	=	(PropertyItem*) malloc( nSize );
		m_pGifImage->GetPropertyItem( PropertyTagFrameDelay, nSize, m_pPropertyItem );
		delete  pDimensionIDs;
		pDimensionIDs = NULL;

		long lPause = ((long*) m_pPropertyItem->value)[m_nFramePosition] * 10;
		if ( lPause == 0 ) lPause = 100;
		m_pManager->SetTimer( this, EVENT_TIEM_ID, lPause );
	}
	catch (...)
	{
		throw "CGifAnimUI::InitGifImage";
	}
}
Exemple #2
0
	void CGifAnimUI::InitGifImage()
	{
		m_pGifImage = CRenderEngine::GdiplusLoadImage(GetBkImage());
		if ( NULL == m_pGifImage ) return;
		UINT nCount	= 0;
		nCount	=	m_pGifImage->GetFrameDimensionsCount();
		GUID* pDimensionIDs	=	new GUID[ nCount ];
		m_pGifImage->GetFrameDimensionsList( pDimensionIDs, nCount );
		m_nFrameCount	=	m_pGifImage->GetFrameCount( &pDimensionIDs[0] );
		if (m_nFrameCount > 1)
		{
			int nSize = m_pGifImage->GetPropertyItemSize(PropertyTagFrameDelay);
			m_pPropertyItem = (Gdiplus::PropertyItem*) malloc(nSize);
			m_pGifImage->GetPropertyItem(PropertyTagFrameDelay, nSize, m_pPropertyItem);
		}
		delete[]  pDimensionIDs;
		pDimensionIDs = NULL;

		if (m_bIsAutoSize)
		{
			SetFixedWidth(m_pGifImage->GetWidth());
			SetFixedHeight(m_pGifImage->GetHeight());
		}
		if (m_bIsAutoPlay)
		{
			PlayGif();
		}
	}