View a printable version of the current page.
  Wiki > Symbian Developer Network Public Wiki > ... > Example source code > Copy CFbsBitmap object
  Copy CFbsBitmap object
Added by alie, last edited by rodders on Feb 15, 2008  (view change)
Labels: 
(None)

With BitBlt
CFbsBitmap* bitmap = new (ELeave) CFbsBitmap();
TSize picSize = aSourceBitmap->SizeInPixels();
bitmap->Create(picSize, aSourceBitmap->DisplayMode());
CFbsBitmap* src = const_cast<CFbsBitmap*>(aSourceBitmap);
CFbsBitmapDevice* device = CFbsBitmapDevice::NewL(bitmap);
CleanupStack::PushL(device);
CFbsBitGc* gc = NULL;
User::LeaveIfError(device->CreateContext(gc));
CleanupStack::PushL(gc);
gc->BitBlt(TPoint(0, 0), src);
CleanupStack::PopAndDestroy(2);
 
With TBitmapUtil class 
void CMyClass::CopyFbsBitmapL(CFbsBitmap * orig, CFbsBitmap * dest)
    {
    TSize s = orig->SizeInPixels();
    User::LeaveIfError(dest->Create(s, orig->DisplayMode()));
   
    TBitmapUtil orig_util(orig);
    TBitmapUtil dest_util(dest);
    orig_util.Begin(TPoint(0,0));
    dest_util.Begin(TPoint(0,0), orig_util);
   
    TInt xPos;
    for (TInt yPos=0;yPos<s.iHeight;yPos++)
        {
        orig_util.SetPos(TPoint(0,yPos));
        dest_util.SetPos(TPoint(0,yPos));
        for (xPos=0;xPos<s.iWidth;xPos++)
            {
            dest_util.SetPixel(orig_util);
            orig_util.IncXPos();
            dest_util.IncXPos();
            }
        }
    orig_util.End();
    dest_util.End();
    }
Interactive Services Terms & Conditions of use | Terms of use | Privacy policy | Media Center | Contact us | © 2008 Symbian