Seguro que en servidor va más rápido, pero tengo curiosidad desde hace tiempo 
de conseguir hacer eso...
 
El caso es que fuerza bruta no parece muy optimo, además que con ese sistema 
una foto que tenga mucho rojo y verde te va decir que el promedio es amarillo, 
aunque no tenga nada en la imagen.Vamos, tiene que ser por vecindaz, es decir, 
tienes que encontrar masas de color. Lo que me sugiere que se deberia usar al 
ColorMatrixFilter o el Convolution filter para hacerlo. Pero vamos, no tengo ni 
idea de como. Si alguien se le ocurre seria bastante interesante el tema....
 
Por otra parte no creo que necesites hacer eso para lograr ese efecto, yo creo 
que simplemente adjudica a cada pixel una imagen dependiendo del color, y 
cuando hay los suficientemente pocos (imagen ampliada).
 
un saludo,
 
Joseba


________________________________

        De: asnativos@5dms.com [mailto:[EMAIL PROTECTED] En nombre de David 
Gironella
        Enviado el: martes, 23 de mayo de 2006 15:40
        Para: asnativos@5dms.com
        Asunto: RE: [ASNativos] Average de una foto
        
        
        En php seria facil, usando las librerias GD. Y supongo que lo mejor 
seria guardar el resultado de la media en una base de datos. Para mi el flash 
nunca ha dado buenos rendimientos quando se usan demasiados bucles.
         
        Giro.

                -----Mensaje original-----
                De: asnativos@5dms.com [mailto:[EMAIL PROTECTED] nombre de José 
Tomás Tocino
                Enviado el: martes, 23 de mayo de 2006 15:04
                Para: asnativos@5dms.com
                Asunto: [ASNativos] Average de una foto
                
                
                Buenas,
                hace poco me pasaron esta dirección 
http://interact10ways.com/usa/information_interactive.htm . Está hecho en 
Shockwave. He pensado que se podría hacer en flash también, por lo que he 
empezado a pensar cómo podría hacerlo. La idea sería tener una colección de 
fotografías con un color asginado a cada una, y luego reemplazar cada píxel de 
la imagen original por esas pequeñas imágenes. 
                He creado una función que hace una "media" entre todos los 
colores de una foto, pero es bastante lenta y chupa mucha CPU:
                
                <code>
                function averageFoto(mibitmap:BitmapData){
                    var ancho:Number = mibitmap.width;
                    var alto:Number = mibitmap.height;
                    var pixels:Number = ancho * alto;
                    
                    var rojo:Number = 0;
                    var verde:Number = 0;
                    var azul:Number = 0;
                
                    for(var foo_ancho = 0; foo_ancho < ancho; foo_ancho ++){ 
                        for(var foo_alto = 0; foo_alto < alto; foo_alto ++){
                            pixel = mibitmap.getPixel(foo_ancho, foo_alto);     
   
                            rojo += (pixel >> 16 & 0xFF);
                            verde += (pixel >> 8 & 0xFF); 
                            azul += (pixel & 0xFF);
                        }
                    }
                    
                    fin_rojo = rojo / pixels;
                    fin_verde = verde / pixels;
                    fin_azul = azul / pixels;
                    
                    //trace("R: " + fin_rojo + ", G: " + fin_verde + ", B: " + 
fin_azul); 
                    color = "0xFF" + fin_rojo.toString(16) + 
fin_verde.toString(16) + fin_azul.toString(16);
                    return color;
                }</code>
                
                Mi pregunta es, ¿sería más factible hacerlo con un lenguaje de 
servidor, como php? o ¿hay otra forma de hacer la media de la foto de forma más 
cpu-friendly? 
                Un saludo.
                
                -- 
                José Tomás Tocino
                http://www.om3.com.es #¶+²Â§í»Œí¾šÇ›

        ----------------------------------- ASNativos 
http://www.5dms.com/listas ------------------------------------




-----------------------------------
ASNativos
http://www.5dms.com/listas
------------------------------------

Responder a