Descodificando um valor do RGB


  Share  
|


Você quer extrair os componentes vermelhos, verdes, e azuis de um valor do RGB retornado por Color.getRGB().

Use a direita do bitshift e bitwise E operadores.

Você pode extrair os componentes vermelhos, verdes, e azuis do único valor do RGB retornado por Color.getRGB() que usa a direita do bitshift (> >) e bitwise E (&) operadores. Você pode extrair uma ou mais das cores individualmente como segue:

//críe o my_color do objeto da cor = Color(myMovieClip) 
novo;
//comece a cor atual do RGB rgb = my_color.getRGB();
//rgb contem um valor da cor do RGB no formulário 
decimal, tal como 14501017 (cor-de-rosa rosy),// que é armazenado 
internamente como seu equivalente do hex, tal como o vermelho 
0xDD4499. = (rgb > > 16); verde = (rgb > > 8) & 0xFF; azul
= rgb & 0xFF;

Embora indicado como um número decimal, recorde que cada cor está armazenada internamente em seu formulário hexadecimal: 0xRRGGBB. Para o exemplo, o valor 14501017 da cor (que é cor-de-rosa rosy) é armazenado internamente como 0xDD4499. Neste formato, é fácil ver que o componente vermelho está a um DD no hex (221 no decimal), o componente verde é 44 no hex (68 no decimal), e o componente azul é 99 no hex (153 no decimal).

A transformação precedente separa eficazmente um valor 24-bit em seus três componentes 8-bit (os oito bocados leftmost representam o vermelho, os oito bocados médios representam o verde, e os oito bocados rightmost representam o azul). O operador da direita do bitshift é usado deslocar os oito bocados do interesse à posição rightmost. Usar-se bitwise E operador com 0xFF retem os oito bocados rightmost somente, eficazmente mascarando fora de todos os bocados não desejados na esquerda.

Na prática, é frequentemente mais fácil usar Color.getTransform().in que os componentes vermelhos, verdes, e azuis são retornados como as propriedades separadas de uma transformação object.to determinam a cor de um grampo. Além disso, getTransform() retorna também o valor do alfa para uma cor, que o getRGB() não

este é um artigo adicionado por Elis Frugalo


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions