Formula de separação de canais rgb

6 respostas
luistiagos

Alguém se lembra quais são as formulas para extrair canais rgb de uma determinada cor?

6 Respostas

R

Como está codificada sua cor? Se estiver numa instância da classe Color, é só usar os métodos getRed(), getGreen() e getBlue().

ViniGodoy

http://www.easyrgb.com/index.php?X=MATH

luistiagos

Não to usando java e sim flex… quero as formulas genéricas para qualquer linguagem… independente de métodos.

luistiagos

bastante util… porem a formula que eu precisava é para extrair o verde… por exemplo: 0xFF4523
isto me da o vermelhor: 0xFF4523 << 16
isto me da o azul: 0xFF4523 >> 16
isto me da o amarelo: 0xFF4523 << 8
e o verde como eu consigo?

a algum tempo atras eu sabia… porem agora não me lembro mais…
acho que vc tem isto fresco ainda né Vini?!

ViniGodoy

Supondo que seu padrão é o ARGB, e que cada canal de cor tem 8 bits, o verde estaria no 3º byte (24º bit).

Logo:

int g = cor & 0x0000FF; g << 16;

Os dois primeiros 0s são alpha, os dois 0s seguintes o R. Como cada 0 equivale a 4 bits, tivemos que puxar o valor de G 16 bits para o começo. :wink:

luistiagos

ViniGodoy:
Supondo que seu padrão é o ARGB, e que cada canal de cor tem 8 bits, o verde estaria no 3º byte (24º bit).

Logo:

int g = cor & 0x0000FF; g << 16;

Os dois primeiros 0s são alpha, os dois 0s seguintes o R. Como cada 0 equivale a 4 bits, tivemos que puxar o valor de G 16 bits para o começo. ;)

Vlw… e disso que precisava… no meu caso que é RGB invéz de ARGB troquei o 16 por 8 e deu certinho… vlw Vini…

Criado 17 de agosto de 2011
Ultima resposta 18 de ago. de 2011
Respostas 6
Participantes 3