| 
                   | 
               
                  
                   | 
            |
The following example code shows how to the use the pixel
            manipulation functions in TBitmapUtil  here they are used
            to create a bitmap which is a rotated version of an existing bitmap.
         
/* create a new bitmap (iBitmap4), with the same size as an existing bitmap (iBitmap1), but with the height and width swapped */
iBitmap4 = new (ELeave) CFbsBitmap();
TSize inSize = iBitmap1->SizeInPixels();
User::LeaveIfError(iBitmap4->Create(TSize(inSize.iHeight,inSize.iWidth), iBitmap1->DisplayMode());
// create the bitmap utils
TBitmapUtil bitmap1Util(iBitmap1);
TBitmapUtil bitmap4Util(iBitmap4);
// Begin manipulation with bitmap1Util, setting initial pixel to 0,0 
bitmap1Util.Begin(TPoint(0,0)); 
// Begin manipulation with bitmap4Util, setting initial pixel to 0,0
bitmap4Util.Begin(TPoint(0,0),bitmap1Util); 
// set the bits of iBitmap4 as iBitmap1, rotated through 90 degrees
TInt xPos;
for (TInt yPos=0;yPos<inSize.iHeight;yPos++)
 {
 bitmap1Util.SetPos(TPoint(0,yPos));
 bitmap4Util.SetPos(TPoint(yPos,0));
 for (xPos=0;xPos<inSize.iWidth;xPos++) 
  {
  bitmap4Util.SetPixel(bitmap1Util);
  bitmap1Util.IncXPos();
  bitmap4Util.IncYPos();
  }
 }
// each Begin() must have a corresponding End()
bitmap1Util.End();
bitmap4Util.End();
Begin() and End() calls must surround
                  the other TBitmapUtil function calls. They tell the font and
                  bitmap server when to lock (that is, not to attempt to compress) the heap where
                  bitmaps are stored, as operations are in progress. 
               
The second call to Begin() specifies that the heap
                  has already been locked by bitmap1Util.