Comunidad de diseño web y desarrollo en internet online

Ajustar el brillo de un movieclip

Citar            
MensajeEscrito el 18 Dic 2013 05:06 pm
Hola, tengo un archivo que lo que hace mediante lo que capta la camara es agarrar la info de color de un pixel y esa informacion pasarla a un movieclip que adquiere dicho color. El archivo me funciona bien y esta bien programado, pero he notado que el color no es 100% fiel. Quise intentar modificando el brillo y esas propiedades, pero nada me funciona. Ustedes podrian ayudarme ?


Código :


import fl.transitions.*;
import fl.transitions.easing.*;

import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.*;

import flash.display.Shape;
import flash.events.Event;
loading.visible = false;
error.visible = false;

//////////// VARIABLES GLOBALES ////
import VariableGlobal;
VariableGlobal.vars.root = this;



const WIDTH:Number = 600;
const HEIGHT:Number = 450;

var cam:Camera;
var vid:Video;

cam = Camera.getCamera(); //traer
         cam.setMode(WIDTH,HEIGHT,15);
         vid = new Video(WIDTH,HEIGHT);
         
         if (cam!=null){ //Si cam no es null (que está funcando)
         vid.attachCamera(cam);
         error.visible = false;
         }else{
            error.visible = true;
            //trace("FAVOR DE CONECTAR SU WEBCAM Y SETEARLA");
         }
         vid.filters = [new BlurFilter(10,10,1)];
         
         var videoContainer:Sprite= new Sprite();
         videoContainer.x= 0;
         videoContainer.y= 0;
         videoContainer.addChild(vid);

var empieza2:Timer = new Timer (4000);
empieza2.addEventListener(TimerEvent.TIMER, dale);
empieza2.start();

function dale(e:TimerEvent):void{ 
//
   var miColor:ColorTransform=transform.colorTransform;
   if (!VariableGlobal.vars.color2){
miColor.color=0xFF0000;
}else{
   miColor.color=VariableGlobal.vars.color2;
}   
clip.transform.colorTransform=miColor;      
   //
   var _stageBitmap:BitmapData;    
   _stageBitmap = new BitmapData(stage.width, stage.height);
   _stageBitmap.draw(vid);

   var pix:uint = _stageBitmap.getPixel(300,225);
///     trace(pix.toString(16)); // un trace al pedo pero sirve para explicar

var color0x:String = "0x" + pix.toString(16);
//perfecto ahora en color0x tengo el pure dato.
VariableGlobal.vars.colorGlobal = color0x;
var color2:uint = uint(color0x);
VariableGlobal.vars.color2 = color2;
//trace(color2);

// function to transition from one colorTransform to another
function interpolateColor(start:ColorTransform, end:ColorTransform, t:Number):ColorTransform {
   var result:ColorTransform = new ColorTransform();
   result.redMultiplier = start.redMultiplier + (end.redMultiplier - start.redMultiplier)*t;
   result.greenMultiplier = start.greenMultiplier + (end.greenMultiplier - start.greenMultiplier)*t;
   result.blueMultiplier = start.blueMultiplier + (end.blueMultiplier - start.blueMultiplier)*t;
   result.alphaMultiplier = start.alphaMultiplier + (end.alphaMultiplier - start.alphaMultiplier)*t;
   result.redOffset = start.redOffset + (end.redOffset - start.redOffset)*t;
   result.greenOffset = start.greenOffset + (end.greenOffset - start.greenOffset)*t;
   result.blueOffset = start.blueOffset + (end.blueOffset - start.blueOffset)*t;
   result.alphaOffset = start.alphaOffset + (end.alphaOffset - start.alphaOffset)*t;
   return result;
}

// start and end colors for tween
var startColor:ColorTransform = new ColorTransform(); // default color, no tint 
if(!VariableGlobal.vars.valorcolor){
   loading.visible=true;
}else{
   loading.visible=false;
startColor.color = parseInt(VariableGlobal.vars.valorcolor, 16);

}
var endColor:ColorTransform = new ColorTransform();
endColor.color = VariableGlobal.vars.color2;

var tween:Tween = new Tween(clip, "", Strong.easeOut, 0, 1, 50);

tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenTransform);

function tweenTransform(event:TweenEvent):void {

clip.transform.colorTransform = interpolateColor(startColor, endColor, tween.position);
   var valorcolor = clip.transform.colorTransform.color.toString(16);
   VariableGlobal.vars.valorcolor = valorcolor;

}
}



y el codigo de la variable global

Código :

package
{
public class VariableGlobal
{
public static var vars:Object = [];
}
}


clip es lo que cambia de color y vid es el video..
Por favor, brindenme una mano.. no lo pude cambiar ni por codigo ni desde flash.

Lionel

Por lio89

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Dic 2013 04:15 pm
En que parte estas intentando cambiar el brillo? lo unico que vi fue que capturas el color y luego lo interpolas.

yo creo que deberias investigar que cambios tiene la variable color cuando se aplica el brillo, debe ser una suma hexadecimal, ejemplo un rojo 0x00FF00 cuando se aplica el maximo brillo quedaria en 0xFFFFFF que es blanco, no creo que halla algo mas brillante que eso.

la verdad no se mucho de teoria del color, pero por lo menos te dejo una idea para empezar.

Por rubencho176

Claber

301 de clabLevel

3 tutoriales

 

Colombia

chrome
Citar            
MensajeEscrito el 07 Abr 2014 06:21 pm
Usa los plugins de TweenMax que va a ser mucho más fácil (La clase Tween apesta):
Igualmente no entiendo para que queres trabajar con el brillo de un pixel, si solo queres capturar el color.

En fin, para entintar con el mismo color, se reduce a:
TweenMax.to( movieclip, 0, {tint:0xff00000 );

o para brillo:
TweenMax.to( movieclip, 0, {colorMatrixFilter:{brightness:2});

Aca tenes una lista de plugins, y las demos.
http://www.greensock.com/tweenlite/#plugins

Por rodrigolopezpeker

61 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.