Cristalab

Redibujar los bordes de una imagen con ActionScript

Por: Teseo + 13.06.2007

Esta serie de 10 tips que iré publicando, está dedicada a la conversión y descomposición de imágenes, clips y textos en elementos sencillos que podamos manipular con actionscript.

Con estos scripts conseguiremos varios objetivos básicos:



Tomando una imagen de la biblioteca (también la podremos importar y exportar como vector más adelante) efectuamos una búsqueda de su bordes de color y su presentación como dibujo dinámico.

Existen 2 modos básicos de representar el efecto de dibujo: mediante la copia del pixel getPixel()/setPixel() y rellenado de zonas de color floodFill() o como líneas continuas moveTo/lineTo y relleno de un contorno cerrado beginFill().

En el ejemplo usamos las dos maneras pudiendo cambiar entre los 2 modos dinámicamente.
Podemos usar esta técnica con una imagen pero no obtendremos buenos resultados con un MovieClip por motivos del suavizado y alineación. Los MC los trataremos aparte cuando tratemos la adaptación de paletas de color.

Tampoco salvamos los datos, simplemente los representamos directamente con lo cual el código es poco complejo y muy rápido, y tampoco (pues no es necesario aquí) optimizamos la vectorización para convertir secuencias de puntos en rectas y curvas definidas como haremos posteriormente.

PARTE I: Dibujando bordes de una imagen:





Nota: El escalado de SWF para colocarlo aquí hace que se pierda nitidez en la representación, recomiendo descargar el .fla (86Kb) para estudiarlo y observarlo mejor.

Etiquetas actionscript

Comentarios | Enviar un comentario
Pa flipar! WoW!
Por: jutxob_blog
Simplemente alucinante Shock , buen trabajo Teseo Guiño . Le echaré un vistazo al codigo fuente del fla Sonrisa

Queria plantearte una pregunta, he observado que los bordes de las imagenes una vez redibujadas aparecen un poco toscos en imagen vectorial, ¿existiria algun modo de redondearlos mediante actinscript? ya se que es demasiado pedir mmmm pero no obligo a contestar a nadie Riendo

Ya estoy esperando los restantes tips, de verdad parecen muy interesantes. miau
Por: Lightwave
Metal_Storm:
Si, existe una/varias maneras, y la formas de aplicación las explico en otro tip de la serie ya que los tres primeros son de presentación para que los que deseen puedan empezar a destripar el código. Luego voy explicando detalladamente cada proceso.
Es similar a la optimización de curvas de Flash, con alguna variaciones específicas. Originalmente esas rutinas las colocaba en C embebido y ahora las he pasado a AS2, pues para estos casos no tienen problemas de velocidad de proceso.
También es importante usar adecuadas técnicas de suavizado.
Baste citar un parrafo del tip 4:
" Para que puedan actuar como guía de movimiento, el detector sigue valores enteros de pixel por lo cual sus bordes pueden aparecer algo dentados según escalas. ...Trataremos ahora la forma de guia con valores no enteros y el suavizado con filtros....Este script nos convierte los bordes en lineas y curvas en lugar de series de puntos...
Vamos poco a poco. Sonrisa
Por: Teseo
Gracias teseo por la respuesta y sobretodo por la rapidez, me ha quedado todo muy claro Lengua el resultado final será fascinante seguro.

Pues nada tocará esperar a los siguientes, mientras jugaremos un poco con el codigo.... Mouahahaha Malvado
Por: Lightwave
Teseo eso esta durisimo, yo voy a estar esperando por los tips de los que hablaste para aprender de ustedes que son bastante buenos en esto...

Gracias a personas como ustedes que son unos verdaderos maestros en el tema hay tantas personas como yo inspirados en hacer y aprender cosas como estas.
Por: Lord_Spyros_blog
Sorpresa Sorpresa La verdad Teseo que eres un groso un Dios y ensima nos das asta los .fla no tengo mas que palabras de gratitud, eh aprendido vastante gracias ati Cool
Por: CarlosRuminott
Un fenómeno, gracias por compartir cosas así
Por: Nicolás_blog
Realmente bueno el Tip. Esperamos con ansia el resto de la "serie" Sonrisa
Por: MorphX_blog
No maaaa... que poca, señor Teseo, cuando creemos que ha llegado a su limite, nos sorprende con algo completamente nuevo. insisto, no tiene pacto con algun ser que no es de este planeta??? ya, suelte su secreto. jajaja, no la verdad es que es sorprendete lo que usted puede hacer en flash.
Gracias por compartilo, insisto.
Por: Señor Oz_blog
una pregunta el de la foto eres tu??? Lengua
Por: CarlosRuminott
El fla esta en flash mx 2004? es que aun no consigo el 8
Por: Victor-Nael
BOFH A L U C I N A N T E
Por: Rocky_blog

Rocky_blog :

BOFH A L U C I N A N T E
Blowy, is that you?
Por: Freddie
Saludos, puedes poner el flash para la versión MX 2004, quiero testear, pues tengo algunos planos de mi ciudad a ver si se pueden utilizar para obtener una imagen vectorial...
Por: Luis V_blog
eres un crack!!!!
Por: suso_blog
hola,
he estado probando con el ejemplo flA de cambiar a imagen y redibujar otra, sin embargo no lo he condeguido, nose si es porque este tip està incompleto para poder aprender a hacerlo.

Saludos y gracias de antemano
Por: nighty_blog
Hola por favor podrias colocar el documento original o la pagina de internet que usaste como guia para realizar este fla.? no importa si esta en ingles o aleman gracias.
Por: Greg_House
Greg_House dijo:
Hola por favor podrias colocar el documento original o la pagina de internet que usaste como guia para realizar este fla.? no importa si esta en ingles o aleman gracias.


Qué qué??? Confundido

No, no use ninguna página como guía, y ESTE es el documento original.
Es más, puedes buscar por ahí lo que quieras, no hay nada ni parecido.

....bueno , existe este pequeño ejemplo http://www.cristalab.com/foros/viewtopic.php?t=51692
que dejé incompleto y aplicado a textos que usa parte de las rutinas que creé para el aquí expuesto.
Por: Teseo
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.