Bienvenido a Klr20mg

Cronicas de un desarrollador

Actualmente soy Jefe de Desarrollo del area Flash en Sapotek de México en la cual trabajo desde hace mas de 4 años. Desarrollando aplicaciones en Flash para Web mas comúnmente llamadas (RIAs)

Estas en : Blog » swf2jpg
  • Decrease font size
  • Default font size
  • Increase font size
  • color default
  • color verde
  • color azul
swf2jpg
AddThis Social Bookmark Button
Post2PDF Print
September 18th, 2004

Últimamente han aparecido varios sitios en los cuales uno puede crear su wallpaper personalizado..
El cliente esta hecho en flash y al terminar tu "obra" puedes descargar el JPG...

Bueno hace poco platicando con Fer nos preguntábamos como poder hacer esto. Estuve investigando la forma más simple de hacerlo y la mejor opción por lo menos para mí fue usar las Librerías GD de PHP.

La explicación teórica es esta:

Cliente
1.- Poder elegir un grafico
2.- Moverlo por el "Stage"
3.- Situarlo donde más nos guste
4.- Incluirlo el grafico tantas veces queramos
5.- Enviar las propiedades de cada grafico a un Script .php

Servidor
1.- Tomar las propiedades de los gráficos y generar la imagen

bien, por cada grafico disponible en el Cliente, necesitaremos una copia con buena resolución en el servidor, para poder editarla mediante las librerías GD

y eso es todo...

Aquí esta el Ejemplo http://tmeister.net/archivos/swf2jpg/dibuja.swf

Solo basta dar click en un elemento grafico una vez disponible en el "Stage" posicionarlo donde gusten y por ultimo oprimir el botón Genera JPG...

El Script PHP

PHP:
  1. <?php
  2. function thumb($source, $quality = 100 ,$x, $y, $w, $h){
  3.         global $resize;
  4.         $size = getimagesize($source);
  5.         header('Content-Type: image/jpeg');
  6.         switch ($size['mime']) {
  7.                 case 'image/jpeg':
  8.                         $im = imagecreatefromjpeg($source);
  9.                         imagecopyresampled($resize, $im, $x, $y, 0, 0, $w, $h, $size[0], $size[1]);
  10.                         $imgInfo = array($resize, $quality);
  11.                         break;
  12.                 case 'image/png':
  13.                         $im = imagecreatefrompng($source);
  14.                         imagecopyresampled($resize, $im, $x, $y, 0, 0, $w, $h, $size[0], $size[1]);
  15.                         $imgInfo = array($resize, $quality);
  16.                         break;
  17.         }               
  18. }                       
  19. //tamaño de la Imagen...
  20. $w = 580;
  21. $h = 420;
  22. $resize = imagecreatetruecolor($w, $h);
  23. //Creamos el Fondo Blanco
  24. thumb("imgs/fondo.png",100,0,0,$w,$h);
  25. //Tomamos la info de las imagenes y la destripamos
  26. $map  = $_GET['imgs'];
  27. $fotos = split("--", $map);
  28. for($i = 0; $i&lt;count($fotos); $i++){
  29.         list($nombre, $x$y, $alto, $ancho) = split(",",$fotos[$i]);
  30.         thumb("imgs/".$nombre.".png",100,$x,$y,$ancho,$alto);
  31. }
  32. imagejpeg($resize, "", 100);
  33. ?>

Este Script recibe una variable con los nombres de las imagenes y sus propiedades algo asi:

CODE:
  1. ffm,48,51,81,162--diablito,369,246,107,92

Por el momento el cliente solo puede mover los gráficos no puede escalarlos.. :D

Archivos Fuente http://tmeister.net/archivos/swf2jpg/swf2jpg.zip

Enjoy... 8)

Posibles Posts Relacionados
24 Comentarios

Si deseas poner codigo en tu comentario utiliza la etiqueta < pre > < /pre >

Interesante, muy interesante

Gracias !!

Galileo escribio el 19-September-2004 a las 9:38 am

interesantísimo, realmente hay poco tutoriales que incluyan la librería gd, no se diga que además estén en español, así que voy a spammear un poco (digo, si me lo permiten), hace poco escribí 2 tutoriales usando la librería gd, aquí están las urls
http://therror.nodani.com/documentos.php?doc=pixel
http://therror.nodani.com/documentos.php?doc=toogle
[/spam]
saludos

fael escribio el 21-September-2004 a las 11:52 pm

Muy interesante el tema, yo he estado tratando de hacer algo por el estilo, sin embargo no encuentro la forma de resolverlo
Ejemplo
Lo que intento es que se elabore un mapa en linea personalizando colores y dar la posibilidad de exportalo como jpg. Ahora bien con esta alternativa que en este tutorial se indica puedo hacer una especie de rompecabezas, tener todos los estados en imagenes png y despues armar el mapa, sin embargo no he podido cambiar el color de una imagen a otro que yo le indique, lo he intentado con la función imagecolorsforindex pero no obtengo resultado, alguna idea o sugerencia

Hunter escribio el 22-September-2004 a las 3:44 pm

Para cambiar el color a una imagen completa se usa la funcion ImageColorAllocate

Aqui pongo un ejemplo completo..

CODE:
  1. &lt;?php
  2. header('Content-Type: image/jpeg');
  3. $original = 'imgs/ffm.png';
  4. $im_size = GetImageSize($original);
  5. $imageWidth = $im_size[0];
  6. $imageHeight = $im_size[1];
  7. $im = imageCreate($imageWidth,$imageHeight);
  8. ImageColorAllocate($im, 0xFF,0x00,0x00);
  9. $im2 = imagecreatefrompng($original);
  10. ImageCopyMerge($im,$im2,0,0,0,0, $imageWidth, $imageHeight, 100);
  11. imagejpeg($im, "", 100);
  12. ImageDestroy($im2);
  13. ?&gt;

Si te das cuenta dicha funcion necesita 4 parametros

CODE:
  1. ImageColorAllocate($im, 0xFF,0x00,0x00);

imagen y los tres valores hexadecimales del color... En este caso Rojo FF0000

aqui hay un ejemplo de como queda la imagen http://tmeister.net/archivos/swf2jpg/color.php

Saludos!! 8)

Tmeister escribio el 22-September-2004 a las 9:16 pm

Mmmm.... realmente interesante e ilustrativo. La potencia de Flash y PHP conjuntados no deja de sorprenderme.

Muy bueno Tmeister, muy, muy bueno.

Un saludo!!

Raúl Jiménez escribio el 23-September-2004 a las 9:32 am

Excelente, me parece super interesante.....
Pero disculpen mi ignorancia, no hay manera de hacer lo mismo pero en ASP e igualmente con Flash

Kari escribio el 23-September-2004 a las 11:57 am

Hola me parece genial el tuto y la aplicacion,..hace tiempo queria saber como lo hacian,....
una pregunta,..no me funciona,... me imagino q es x las librerias GD de php,..o es x otra cosa?,...
pd:soy novato,....no se nada de php,...

alejandro escribio el 23-September-2004 a las 12:00 pm

en asp, por lo que sé no hay librería que pueda manejar imagenes on the fly

para instalar gd abre el archivo php.ini y busca el módulo que dice algo así como "php_gd2.dll", le quitas el punto y coma ( ; ) que está al inicio de la línea y ya, si no, pregúntale a google

saludos

fael escribio el 23-September-2004 a las 12:07 pm

mmm realmente no e slo que pensaba en cuanto a cambio de color, más bien esta sobreponiendo un color, es decir, mi idea es que por ejemplo cambies el color al elemento de las letras, que las letras salgan en verde por ejemplo y que la carita de diablito salga en azul por ejemplo. con estas funciones que comentas no lo hace, yo creo que mas bien seria reemplazar el color de los pixeles de cada elemento por uno en especifico o algo asi por el estilo... mm no se si me entienden cual es la idea???

a seguir buscando la forma :)

Hunter escribio el 24-September-2004 a las 1:07 pm

en la liga al tutorial que dejé (el de toogle) se explica la función imagecolorat, eso te serviría para reemplazar, por ejemplo 0x000000 por 0xff0000 o el color que quisieras, pero qué tal si hay varias gamas de negro, ejemplo 0x110010? esas quedarían igual, por lo pronto no se puede (automáticamente) y programado es muuuy laborioso

fael escribio el 24-September-2004 a las 5:13 pm

Hola amigos... me dice "Formato inseperado" cuando abro el fla.
Otra cosa: yo tengo las imágenes en la biblioteca del flash se puede hacer con actionscript? o como seria?
Gracias gentes...

Angueto escribio el 13-October-2004 a las 10:31 am

che, gracias por la ayuda. si puedo ayudarles en algo, pregunten no más.

sebazam escribio el 8-November-2004 a las 11:43 pm

Que tal, esta muy padre esto, pero no se puede hacer a partir de vectores, o sea que no se necesiten los archivos de fotos?

Sergio escribio el 9-November-2004 a las 5:39 pm

hola, la verdad es que no entiendo mucho la mecánica del asunto, lo cierto es que estoy muy interesado en saber como puedo generar un wallpaper desde un swf (o una imagen jpg) pero desconectado, o sea solo operando en mi computador.

Si alguien me pudiera ayudar estaría muy agradecido.

PD: no pude abrir el fla que venía en el ejemplo, me dice formato inesperado

david escribio el 3-June-2005 a las 10:33 am

[...] Aquí esta el Ejemplo http://tmeister.net/archivos/swf2jpg/dibuja.swf Fuente: klr20mg La explicación es esta: Cliente 1.- Poder elegir un grafico 2.- Moverlo por el [...]

FlashBlog » swf2jpg escribio el 29-June-2005 a las 11:44 am

hola a todos ando buscando por favor datos acerca de como adaptar el tamaño de mi .sfw incertado en un html para que cualquier usuario lo vea igual indepedientemente de la resolusion que use en su pantalla. agradecido estare si alguien me pasa un dato por lo menos.

larry caldron escribio el 20-April-2006 a las 8:08 pm

Hola!
He usado este ejemplo durante algún tiempo y funcionaba a la perfección. En mi caso se trataba de una grilla de 20 imagenes ya con posición definida y con una variable que le agregaba número para no sobreescribirse... Bien, ahora luego de mucho tiempo funcionando a la perfección, no coloca todas las imagenes, queda solo el fondo blanco... y si quito algunas, funciona! (es decir si antes colocaba 20 imagenes en el lienzo, ahora solo admite 10, sino aparece solo el lienzo)... sabes a que se puede deber?
Muchas gracias!

ladobonline escribio el 21-May-2007 a las 5:47 am

Después de horas (y no exagero) investigando y probando, descubrí el problema, y por ende, lo solucioné. Resulta que los parámetros pasan por "GET" y son muchos datos... reduje la cantidad de datos eliminando las dimensiones de las imagenes (que son siempre las mismas) y acortando los nombres de los ficheros eliminando sus rutas que tb son siempre las mismas!
La duda que me queda es por qué antes funcionaba y ahora no... pero en fin! ya está solucionado!
:D

ladobonline escribio el 22-May-2007 a las 8:02 am

hola q tal soy nuevo en php y quisiera saber como mostrar todas las imagenes redimensionadas ya q extraigo todos los datos de una base de datos y quiero mostrarlas en una oagina pero solo me muetra una se los agradecere mucho si me pueden ayudar...

jose luis escribio el 31-May-2007 a las 11:52 am

hola buen dia este tutorial esta muy chido. ahora no se si me podrian ayudar con esto, e querido poner un input text y lo que escribas en esa casilla se generara en la imagen jpg junto con los graficos, si alguien sabe, me pudiera pasar el dato. se los agradecería mucho

marcos escribio el 22-February-2008 a las 2:49 pm

Holas

Bueno quisiera saber si esto funciona sólo cuando es el archivo es .flv más no .swf ???

Puesto que quiera generar thumbnails de apartir de .swf a gif o jpg

Raul escribio el 17-March-2008 a las 8:36 pm

Hola, esta muy interesante, lamentablemente buscaba algo casi relacionado, que haga un jpg pero con la opcion de guardar en una carpeta y no que genere el jpg en un pag del explorer, sino que al ponerle generar jpg me de la opcion de guardarlo o bien que lo guarde directamente en una carpeta, saludos muchas gracias

gvo escribio el 18-March-2008 a las 4:09 pm

Chicos,

Estoy utilizando una libreria de graficos que me genera la salida como .swf

Recien surgio el requerimiento de vaciar dicho reporte con graficas a un documento word por lo que necesito obtener el equivalente de mis graficos en jpg o algun formato bitmap para poder incrustarlo y que se despliegue sin ningun problema

Mi app corre en un Server Linux con Apache, PHP y cuento con GD

Tienen algun ejemplo que me apoye con lo que necesito ?

Mil gracias de antemano y que tengan un excelente dia
Aracely

Aracely Gonzalez escribio el 8-May-2008 a las 11:43 am

Hola,
muy interesante pero este script que tienes crea un jpg basado en parametros, pero lo que no hace es comvertir un swf a jpg,

grasias.

Julio escribio el 8-June-2008 a las 12:01 pm

 Blog editado por:

Enrique Chavez aka Tmeister

 Sigueme en Twitter

  • A punto de iniciar un curso de joomla, A ver que tal 2 hrs ago
  • Que divertido es modificar el blog "En caliente" y que todo deje de funcionar. XD 5 hrs ago
  • More updates...

Posting tweet...

 Suscribete


AddThis Social Bookmark Button

 Archivo

2008
2007
2006
2005
2004