¿Salir del canal r de un argb-uint?
-
10-07-2019 - |
Pregunta
Tengo un valor argb en el parámetro de una función y la función necesita deshacerse de los valores agb y solo mantener la r. ¿Cómo lo harías tú? gracias
Solución
Eso se hace con desplazamiento bit a bit y AND bit a bit.
El uint en un entero de 32 bits. Cada uno de los A, R, G, B ocupa 8 de sus bits (un byte). Y aparecen en el mismo orden que el nombre implica A, R, G, B
Para salir b solo necesitas enmascarar todos los demás bits con una declaración AND bit a bit.
a = argb & amp; 255 porque 255 en binario es 11111111, solo mantiene los bits necesarios.
para g primero necesita cambiar los bits y luego hacer lo anterior. g = argb > > 8 & amp; 255
r es igual pero cambia 16 bits
r = argb > > 16 & amp; 255
y a a = argb > > 24 & amp; 255
Espero que ayude
Otros consejos
aquí hay más información al respecto: http://www.adobe.com/devnet/flash/articles/bitwise_operators_print. html