- delete ibitmapMask;
- ibitmapMask = new ( ELeave ) CFbsBitmap();
- TInt err = ibitmapMask->Create(imgToBrighten->SizeInPixels(), EGray256);
- if (err == KErrNone)
- {
- CFbsBitmapDevice *aGD = CFbsBitmapDevice::NewL(ibitmapMask);
- CleanupStack::PushL(aGD);
- CFbsBitGc *aGC = NULL;
- User::LeaveIfError(aGD->CreateContext(aGC));
- aGC->SetPenStyle(CGraphicsContext::ENullPen);
- aGC->SetBrushColor(aColor); // color 的颜色随意,会影响透明度
- aGC->SetBrushStyle(CGraphicsContext::ESolidBrush);
- aGC->DrawRect(TRect(TPoint(0, 0), imgToBrighten->SizeInPixels()));
- aGC->SetBrushStyle(CGraphicsContext::ENullBrush);
- delete aGC;
- CleanupStack::PopAndDestroy(aGD);
- }
gc.DrawBitmapMasked(aRect, ibitmap, TRect(TPoint(0,0), ibitmap->SizeInPixels()) , ibitmapMask, ETrue);