Modificar valores de una imagen con la clase AdjustColor
La clase AdjustColor permite crear un filtro para modificar las propiedades brillo, contraste, matiz y saturación de cualquier elemento de visualización. Esto nos permite, por ejemplo, pasar una imagen a blanco y negro (poniendo la saturación al mínimo(-100)) o ajustar los colores de una foto.
La clase AdjustColor está disponible para Flash Player 9 o superior.
El código comentado y los fuentes a continuación:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
package { import com.bit101.components.Label; import com.bit101.components.Slider; import flash.display.MovieClip; import fl.motion.AdjustColor; import flash.events.Event; import flash.filters.ColorMatrixFilter; public class Main extends MovieClip { private var adjust_color:AdjustColor = new AdjustColor(); private var imagen_mc:MovieClip; private var color_matrix_filter:ColorMatrixFilter; private var slider_brillo:Slider private var slider_saturacion:Slider private var slider_contraste:Slider private var slider_tono:Slider public function Main() { init(); } private function init():void { imagen_mc = MovieClip(getChildByName("Imagen_mc")); /* * Creación de los labels y de los sliders. Los valores máximo y mínimo de los sliders * representan los valores admitidos por cada propiedad */ var label_brillo:Label = new Label(stage, 10, 355, "BRILLO"); var label_saturacion:Label = new Label(stage, 140, 355, "SATURACIÓN"); var label_contraste:Label = new Label(stage, 270, 355, "CONTRASTE"); var label_tono:Label = new Label(stage, 400, 355, "MATIZ"); slider_brillo = new Slider("horizontal", stage, 10, 380, ajustarColor); slider_brillo.minimum = -100; slider_brillo.maximum = 100; slider_saturacion = new Slider("horizontal", stage, 140, 380, ajustarColor); slider_saturacion.minimum = -100; slider_saturacion.maximum = 100; slider_contraste = new Slider("horizontal", stage, 270, 380, ajustarColor); slider_contraste.minimum = -100; slider_contraste.maximum = 100; slider_tono = new Slider("horizontal", stage, 400, 380, ajustarColor); slider_tono.minimum = -180; slider_tono.maximum = 180; } private function ajustarColor(e:Event):void { //Modificamos los valores del objeto adjust Color según los valores de los sliders adjust_color.hue = slider_tono.value; adjust_color.saturation = slider_saturacion.value; adjust_color.brightness = slider_brillo.value; adjust_color.contrast = slider_contraste.value; //Creamos un nuevo filtro de color basándonos en el objeto color_matrix_filter = new ColorMatrixFilter(adjust_color.CalculateFinalFlatArray()); //Aplicamos el filtro a la imagen imagen_mc.filters = [color_matrix_filter]; } } } |
Y los archivos fuente:
Descargar fuentes