Yo hice esto cuando lei tu primer post, a modo de experimento, y la
verdad funciona relativamente bien:
http://www.ventdaval.com/testing/flash8/averageFoto.php?num=30&foto=http://flog.ventdaval.com/imagenes/Varios/Stuttgart/_flreds/880_660_IMGP3791.jpg
Lo que hago es redimensionar la imagen a diferentes resoluciones
pequeñas (el primero es 2x2, el segundo 3x3, etc... aunq manteniendo las
proporciones de la foto), y luego hago un simple promedio de
rojos-verdes-azules de cada pixel. Fijate en la URL, num es el numero de
promedios que hara (cada uno subiendo en un pixel el ancho y alto
acorde) y el otro es la URL de la foto. En general desde el 10x10 da
resultados aceptables.
Usé la funcion que postearon aqui esa vez, pero modificada un poco:
<code>
function averageColor(bmp:BitmapData, res:Number){
var a=this.createEmptyMovieClip("a",this.getNextHighestDepth());
var b=a.createEmptyMovieClip("b",a.getNextHighestDepth());
b.attachBitmap(bmp,0);
b._width=res;
b._yscale=b._xscale;
var bmp2:BitmapData=new BitmapData(a._width,a._height);
bmp2.draw(a);
a.removeMovieClip();
var ancho:Number = bmp2.width;
var alto:Number = bmp2.height;
var pixels:Number = ancho * alto;
var rojo:Number = 0;
var verde:Number = 0;
var azul:Number = 0;
for(var x = 0; x < ancho; x ++){
for(var y = 0; y < alto; y ++){
var pixel = bmp2.getPixel(x, y);
rojo += (pixel >> 16 & 0xFF);
verde += (pixel >> 8 & 0xFF);
azul += (pixel & 0xFF);
}
}
var fin_rojo = (rojo / pixels).toString(16);
var fin_verde = (verde / pixels).toString(16);
var fin_azul = (azul / pixels).toString(16);
if(fin_rojo.length<2) fin_rojo+=fin_rojo;
if(fin_verde.length<2) fin_verde+=fin_verde;
if(fin_azul.length<2) fin_azul+=fin_azul;
var color = "0x"+fin_rojo +""+ fin_verde +""+ fin_azul;
return color;
}
</code>
Aun asi, si lo que quieres es una especie de buscador de imagenes por
color, necesitaras algun tipo de "redondeador" de colores... una buena
idea es quizas restringir a 256 colores, o saturar al maximo cada color,
o algo asi... todo depende de como quieras el buscador...
En cualquier caso, te recomiendo hacerlo todo en servidor (con la GD de
PHP por ejemplo)... y referenciar cada imagen con su color.
Saludos...
Ricardo Cabrera escribió:
> No he podido escaquearme para concluir mi proyecto de los colores, demasiado
> curro sobre la mesa desde ayer...
>
> No obstante si alguien puede adelantar algo para todos, ya que veo que el
> tema le interesa a algunos, les dejo mis notas, porque hasta el finde no
> podré hacer nada más.
>
> El grueso de la información está en inglés, pero es totalmente comprensible,
> a los que no les guste el inglés les exhorto a que se pongan las pilas,
> porque siempre se encuentran cosas útiles escritas en el.
>
>
> Detectar los colores parece ya está "chupao" (después de buscar mucho) en
> este tutorial de grant Skinner,
> http://www.adobe.com/devnet/flash/articles/bitwise_operators_print.html, el
> ejemplo tiene una classe bastante clara. Él calcula a partir de operadores
> bitwise el color promedio de distintas area de la imagen. Si eso se lo
> extendemos a todo el area de la imagen creo que cumplimos el tema. Esa
> manipulacion de pixeles la hace con la utilísima clase de bitmapData de AS2.
> Con unos retoques que empecé pero que creo que cualquiera puede darse cuenta
> se puede calcular toda la imagen.
>
> A primera vista la classe bitmapData carga imágenes que estén en la librería
> con su respectivo LinkageID, sin embargo TODOS tenemos un ejemplo que instala
> flash que no hemos revisado (como yo hasta ayer) que a partir de imágenes
> cargadas dinámicamente hace un puzzle.
>
> (perdonen otra vez pero tengo que usar todo en inglés)
>
> boot drive\Program Files\Macromedia\Flash 8\Samples and
> Tutorials\Samples\ActionScript\BitmapData
>
> Macintosh, browse to Macintosh HD/Applications/Macromedia Flash 8/Samples
> and Tutorials/Samples/ActionScript/BitmapData.
>
>
> En la práctica si vamos a realizar una galería con muchas imágenes lo mejor
> es calcular los colores de las imágenes antes de almacenar sus datos en la
> BD, con AS3 creo que se podrá incluso acceder a datos EXIF que incluyen las
> fotos digitales, en fin lo que se buscará es un número almacenado en un campo
> y no es necesario más cálculo.
>
> Si todo sale bien el proximo reto será el buscador por los trazos de la
> imagen.
>
> Gracias a todos,
> Richard
>
>
>
> Joseba Alonso <[EMAIL PROTECTED]> escribió: ¿Conseguiste algo sobre este
> tema? A mi me interesa bastante... :)
>
>
>> -----Mensaje original-----
>> De: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED] En nombre de Ricardo Cabrera
>> Enviado el: martes, 27 de junio de 2006 9:48
>> Para: Lista dedicada a Actionscript
>> Asunto: RE: [ASNativos] Detectar imágenes con colores similares
>>
>> Gracias por ese link está increible...!
>> (http://interact10ways.com/usa/information_interactive.htm)
>> es altamente recomendable para todos.
>>
>> Para los que les guste ese efecto hay una aplicación que hace
>> eso http://www.andreaplanet.com/andreamosaic/ aunque no de
>> forma dinámica, buena para hacerse un poster.
>>
>> Lo que yo buscaba, realiza el cálculo del color promedio
>> también, pero sería solo una vez, cuando incorpor mi imagen a
>> la BD, entonces cada vez que pida una imagen según un color,
>> buscaría en la base los "colores promedios" de las imágenes
>> que estaría escrito en un campo.
>>
>> Algo como esto..
>> http://krazydad.com/colrpickr/ (que ya habéis visto)
>> o como esto
>> http://www.istockphoto.com/file_search.php?action=file&filetyp
>>
> eID=&oldtext=landscape&form_cs_nw=xxx&form_cs_n=xxx&form_cs_ne=xx>
> x&form_cs_w=xxx&form_cs_center=xxx&form_cs_e=xxx&form_cs_sw=xx
>
>> x&form_cs_s=xxx&form_cs_se=xxx&color=208%2C%2C&within=1&text=
>>
>> Anoche encontré un norte en un artículo de Grant Skinner. En
>> el transcurso del día os enviaré el resultado...
>>
>>
>> karlos escribió: Vi un ejemplo de lo que
>> me imagino quieres hacer en:
>> http://interact10ways.com/usa/information_interactive.htm
>> Es un poquito pesada, pero vale la pena la espera.
>>
>>
>>
>> -----Mensaje original-----
>> De: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED] En nombre de Cay Garrido H.
>> Enviado el: lunes, 26 de junio de 2006 19:37
>> Para: Lista dedicada a Actionscript
>> Asunto: Re: [ASNativos] Detectar imágenes con colores similares
>>
>> No es nada facil. De hecho es bastante complejo. Necesitas un
>> lenguaje en servidor que promedie los colores de cada pixel
>> de cada imagen, los "redondee" (o los sature, o extraiga el
>> "tono", etc... depende de los colores que definas para el
>> buscador) y los asocie a cada imagen (en una BD por ejemplo).
>> Luego ya te puedes poner con el buscador ;)
>>
>> Saludos...
>>
>> Ricardo Cabrera escribió:
>>
>>> Hola a [EMAIL PROTECTED]
>>>
>>> Estoy haciendo una galería de imágenes que me gustaría incluirle un
>>>
>> buscador de imágenes por colores, algo como lo de flickr
>> http://krazydad.com/colrpickr/, que dado un color te devuelve
>> las imágenes con croma similar.
>>
>>> Gracias por adelantado
>>>
>>> Repito el link de referencia:
>>> http://krazydad.com/colrpickr/
>>>
>>> Richard
>>>
>>>
>>> ---------------------------------
>>>
>>> LLama Gratis a cualquier PC del Mundo.
>>> Llamadas a fijos y móviles desde 1 céntimo por minuto.
>>> http://es.voice.yahoo.com
>>> -----------------------------------------------------
>>> ASNativos
>>> www.5dms.com
>>> subscripciones/desubscripciones
>>> http://asnativos.5dms.com
>>> -----------------------------------------------------
>>>
>>>
>>>
>> -----------------------------------------------------
>> ASNativos
>> www.5dms.com
>> subscripciones/desubscripciones
>> http://asnativos.5dms.com
>> -----------------------------------------------------
>>
>>
>>
>> -----------------------------------------------------
>> ASNativos
>> www.5dms.com
>> subscripciones/desubscripciones
>> http://asnativos.5dms.com
>> -----------------------------------------------------
>>
>>
>>
>> ---------------------------------
>>
>> LLama Gratis a cualquier PC del Mundo.
>> Llamadas a fijos y móviles desde 1 céntimo por minuto.
>> http://es.voice.yahoo.com
>> -----------------------------------------------------
>> ASNativos
>> www.5dms.com
>> subscripciones/desubscripciones
>> http://asnativos.5dms.com
>> -----------------------------------------------------
>>
>>
>>
>
>
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------
>
>
>
> ---------------------------------
>
> LLama Gratis a cualquier PC del Mundo.
> Llamadas a fijos y móviles desde 1 céntimo por minuto.
> http://es.voice.yahoo.com
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------
>
>
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------