agosto
2009
Capturar imagen de webcam con flash II
Logré capturar la imagen de webcam en flash a mas de 160x120px, todo el error estaba en la matrix… la verdad es que me da hueva poner de nuevo el código así que se las dejo mas fácil: subi el archivo .fla
En el archivo se captura la imagen en 320x240 pixeles, no se si se pueda más (supongo que si), pero para los fines que quería (para ymipollo y mexicodiario) ese tamaño es suficiente.
Actualización (11/agosto/2009):
Pues ya le he añadido una barrita de progreso además de teóricamente ser un poco más rápido… ahora incluyo todos los archivos de ejemplo.
salut ;-).
14 comentarios ]
del.icio.us Estrella este post
Entradas relacionadas:
Han escrito 14 comentarios de «Capturar imagen de webcam con flash II»
(anonimo)axel
Miércoles 19 de agosto, 2009 10:01. [usuario no registrado en ymipollo.com]-
no se que es lo que pasa pero estoy usando macromedia flash profesional 8 y me da un error cuando lo voy a exportar que dice que no puede cargar PrintScreen que puede ser?

ToRo
Miércoles 19 de agosto, 2009 10:02.-
error mio, cierto es que en esa utilizo una clase llamada printscreen, deja lo hago zip y vuelvo a subir.

ToRo
Miércoles 19 de agosto, 2009 10:09.-
listo, ya está el nuevo archivo con el archivo PrintScreen.as, es parte de este proyecto: http://sephiroth.it/tutorials/flashPHP/print_screen/index.php

(anonimo)axel
Miércoles 19 de agosto, 2009 15:33. [usuario no registrado en ymipollo.com]-
ahora si me funciona perfecto muchas gracias!

ToRo
Miércoles 19 de agosto, 2009 15:35.-
ya estás, que bueno. Por otra parte, ves que se tarda al capturar y luego enviar? (el envio son unos 600 kb), pues con AS3 (flash cs4 y presumiblemente cs3) y una biblioteca que se llama as3corelib, desde flash se codifica la imagen como jpg (o png a preferencia) y solo se envía eso al servidor, unos 20kb… reduciendo drásticamente el trabajo del servidor y por supuesto se ve mucho más ágil para el cliente. El problema es que no funciona eso con AS2 (flash 8 y menores)
saludos

(anonimo)axel
Miércoles 19 de agosto, 2009 16:06. [usuario no registrado en ymipollo.com]-
recien empiezo a ver como funciona esto pero me parece interesante, voy a recivisar la segunda opcion con as3corelib, me gustaria si no es mucho problema pasaras algun link de ejemplo de como implementar lo mismo pero con AS3 muchas gracias.

ToRo
Miércoles 19 de agosto, 2009 16:07.-
a ver primero revisa como funciona con as3, te aseguro que es muchisimo más veloz, debido a que el tamaño de envio se reduce a un 10% o menos, puedes probar en http://mexicodiario.com (date de alta, es de volada) alli lo tengo implementado, y luego en el panel donde vas a escribir en la parte superior hay una imagen de una webcam, le picas y mandas la foto… si te interesa después de verlo te paso el fuente.
saludos

(anonimo)victor
Martes 01 de septiembre, 2009 18:24. [usuario no registrado en ymipollo.com]-
como puedo generar en jpg?

ToRo
Martes 01 de septiembre, 2009 18:25.-
lo hice en jpg (segundo método) y para eso hay montones de ejemplos en internet, lo malo es que se necesita por lo menos Flash CS3 o CS4 >D

(anonimo)Jak
Martes 01 de septiembre, 2009 19:43. [usuario no registrado en ymipollo.com]-
Excelente trabajo!, llegue aqui buscando como hacer algo asi! te debo una chela :P, y abusando de tu tiempo, podrias postear un ejemplo en php de como guardar la imagen en bd y como obtener esa imagen de la bd…gracias!

(anonimo)Alex
Jueves 01 de octubre, 2009 13:12. [usuario no registrado en ymipollo.com]-
(anonimo)Jak
Para meterlo en BBDD lo k tienes k acer es lo siguiente:
//Creamos un archivo con la imagen generada
imagejpeg($img, $nombre_archivo, 90);imagedestroy($img);
// Abrimos el archivo jpg para sacar el codigo binario
$binario_contenido = addslashes(fread(fopen($archivo, “rb”), filesize($archivo)));//conectamos con la base de datos
$conexion=mysql_connect(“localhost”,“usr”,“pass”) or die (“no se ha podido conectar a la BD”);//creamos el query
$SQL=“insert into tabla (yfoto) values (’”.$binario_contenido.”’)”;//ejecutamos el query
$result = mysql_db_query(“BD”, $SQL);//borramos el archivo
unlink($archivo);
(anonimo)Jsteban
Sábado 21 de noviembre, 2009 12:48. [usuario no registrado en ymipollo.com]-
excelente desarrollo, sencillo y efectivo, pero tengo la misma duda de jack, tengo un formulario, para capturar datos de una persona, quiero que desde la webcam pueda tomarle una foto y almacenarla en la BD de mysql, entiendo el codigo, pero no comprendo desde donde capturo el archivo de la imagen. O sea donde queda la imagen generada ??
Podrias exolicarmelo un poco mejor. TKS
ToRo
Sábado 21 de noviembre, 2009 12:54.-
Jsteban es muy sencillo. En el archivo webcam4.php casi hasta el final viene una instrucción que dice imagejpeg($img,”“,90) —- aqui lo que está entre comillas puedes sustituirlo por un nombre de archivo digamos.. /tmp/imagen.jpg
El siguiente paso sería leer el contenido del mismo y meterlo a la db, algo como:
ob_start();
readfile(”/tmp/imagen.jpg”);
$data = ob_get_contents();
ob_end_clean();y listo, en la variable $data tendrías el contenido del archivo, que ya lo puedes meter a una base de datos o que se yo, tal vez en lugar de meter todo el archivo, almacenar un nombre unico por imagen capturada y haces referencia al mismo cuando hagas las consultas (que se me hace mas recomendable que almacenar el contenido en si de la imagen).
saludos

ToRo
Sábado 21 de noviembre, 2009 12:55.-
ah, solo aclarar que con imagejpeg y al no pasarle una nombre de archivo no se almacena la imagen, solo la muestra “en vivo” en el navegador, pero si le pones un nombre entonces lo almacena y no lo muestra.

