Namespaces
Variants
Actions

Utilizando transparência em bitmaps

Jump to: navigation, search
Dados do artigo

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.
82 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved