esto sería la solución más elegante supongo que me (con source
siendo que BitmapData
):
const rc:Number = 1/3, gc:Number = 1/3, bc:Number = 1/3;
source.applyFilter(source.bitmapData, source.bitmapData.rect, new Point(), new ColorMatrixFilter([rc, gc, bc, 0, 0,rc, gc, bc, 0, 0, rc, gc, bc, 0, 0, 0, 0, 0, 1, 0]));
con flash.geom::Point
y flash.filters::ColorMaxtrixFilter
...
ColorMatrixFilter
permite muchas cosas, tales como desplazamientos de tono, colorisation, rayos, oscureciéndose y desaturación y así sucesivamente ... de lo contrario BitmapData::paletteMap
y BitmapData::colorTransform
son buenos complementos ...
sólo quería señalar, que el uso de la siguiente
const rc:Number = 1/3, gc:Number = 1/2, bc:Number = 1/6;
se ve un poco más natural, ya que subjetivamente, #00FF00
es más brillante que #FF0000
, que a su vez es más brillante que #0000FF
buena suerte entonces ...;)
greetz
back2dos
Esta es la solución adecuada, +1. – CookieOfFortune
Me parece recordar que una ponderación típica de los colores es 30%, 59% y 11% para R, G y B, respectivamente. Sin embargo, a medida que escribe la ponderación es algo subjetiva, tiene una correlación con los valores de luminancia de los colores iirc. Sus pesos están ligeramente fuera de este respecto, pero el método es absolutamente correcto. –
@macke: gracias, nunca tuve los números "científicos" :) – back2dos