actionscript 3 - colores - Multiplica el canal alfa en un color AARRGGBB
rgba colores (1)
Debe conservar los valores rgb de su píxel. Solo multiplica el byte alfa del uint.
function multiplyAlpha(color:uint, percent:Number):uint
{
//returns the pixel with it''s aplha value multiplied by percent
//percent is expected to be in the range 0..1
var a:uint = (color >> 24) * percent;
var rgb:uint = color & 0x00ffffff;
return ((a<<24) | rgb);
}
function setAlphaByPercent(color:uint, percent:Number):uint
{
//returns the pixel with it''s a new alpha value based on percent
//percent is expected to be in the range 0..1
var a:uint = 0xff * percent;
var rgb:uint = color & 0x00ffffff;
return ((a<<24) | rgb);
}
Tengo un valor AARRGGBB
que se usa para llenar celdas en una cuadrícula que estoy usando en mi intento de encender un motor de iluminación:
var color:Number = 0xFF000000; // Full opaque black.
Hay fuentes de luz que tienen un parámetro de radio. La distancia se mide desde la celda de fuente de luz hasta las celdas cercanas dentro de ese radio. A continuación, se asigna un valor porcentual a cada celda cercana, que es:
distanceFromSource / sourceRadius
Entonces, un porcentaje más alto representa una celda más alejada de la fuente.
Quiero multiplicar el canal alfa en el color que tengo arriba por el porcentaje, y llenar las celdas con los valores resultantes. Básicamente quiero entre 0-100% AA en el valor AARRGGBB. Cuando trato de hacer una multiplicación directa obtengo resultados extraños:
Creo que necesito usar operadores especiales para esto, junto con los valores que se ven en BitmapDataChannel
. Desafortunadamente aquí es donde me he quedado atascado.
¿Cómo puedo multiplicar el canal alfa en un color AARRGGBB por un porcentaje?