现在的位置: 首页 > 综合 > 正文

symbian BMP 旋转90”

2013年10月09日 ⁄ 综合 ⁄ 共 954字 ⁄ 字号 评论关闭

 

  1. CFbsBitmap* CameraManager::rotateBitmap90 (CFbsBitmap& src)   
  2. {   
  3.     CFbsBitmap* pDstBmp = new (ELeave) CFbsBitmap ();   
  4.     TSize srcSize = src.SizeInPixels();   
  5.     TDisplayMode mode = src.DisplayMode();   
  6.     User::LeaveIfError(pDstBmp->Create(TSize(srcSize.iHeight,srcSize.iWidth), src.DisplayMode()));   
  7.        
  8.     TBitmapUtil srcUtil ( &src );   
  9.     TBitmapUtil dstUtil ( pDstBmp );   
  10.        
  11.     srcUtil.Begin(TPoint(0,0));   
  12.     dstUtil.Begin(TPoint(0,0));   
  13.     if ( mode == EColor16MU )   
  14.     {   
  15.         TUint32* pDataSrc = src.DataAddress();   
  16.         TUint32* pDataDst = pDstBmp->DataAddress();   
  17.         for (TInt32 j = 0 ; j < srcSize.iWidth ; j++)   
  18.         {   
  19.             for ( TInt32 i = 0; i < srcSize.iHeight; i++ )   
  20.             {   
  21.                 pDataDst [ j* srcSize.iHeight + i ] =  pDataSrc [ ( srcSize.iHeight - i - 1 ) * srcSize.iWidth + j ];   
  22.             }   
  23.         }   
  24.     }   
  25.     srcUtil.End();   
  26.     dstUtil.End();     
  27.     return pDstBmp;   
  28. }  

抱歉!评论已关闭.