×
Namespaces

Variants
Actions
Revision as of 07:56, 9 December 2011 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Utilizando transparência em bitmaps

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Artigo
Criado por cabezonxdg em Cabezonxdg
Última alteração feita por hamishwillee em 09 Dec 2011

É possível utilizar transparência através do uso de máscaras (Masks), permitindo escolher qual região do bitmap você deseja exibir na tela. Na verdade você escolhe quais pixels não deseja exibir sendo eles correspodentes as cores preta ou branca.

Veja um exemplo:

SmileyMasks.gif

O uso é simples, você utiliza o bitmap a ser exibido e a sua máscara, na máscara é definida a região que não será exibida na tela (no exemplo acima a região preta mas como mencionado antes pode-se definir a cor branca como inválida).

A função responsável por exibir o bitmap já com sua máscara é a CBitmapContext::BitBltMasked().

Exemplo encontrado nos documentos sdk do Symbian:

//Carrega o bitmap máscara , como qualquer outro bitmap
CFbsBitmap* maskBitmap = new (ELeave) CFbsBitmap();
CleanupStack::PushL(maskBitmap);
User::LeaveIfError(maskBitmap->
Load(multiBitmapFile,EMbmGrbmap2Smilmask));
 
// Cálcula o retângulo da área onde será utilizada a máscara
TRect bmpPieceRect(TPoint(0,0),bitmap->SizeInPixels());
 
// Exibe na tela utilizando máscara e sem inversão
gc.BitBltMasked(TPoint(50,50),bitmap,bmpPieceRect,maskBitmap,EFalse);
 
...
// Limpa da memória
CleanupStack::PopAndDestroy();

Veja o termo "inversão" , caso o último argumento seja definido como ETrue os pixels em branco é que não serão exibidos.

This page was last modified on 9 December 2011, at 07:56.
74 page views in the last 30 days.