| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Eaco Lt JG

Registrado: 04 Nov 2004Mensajes: 58Ubicación: Las Palmas de Gran Canaria-Islas Canarias
|
Publicado: Jue 04 Nov, 2004 2:36 pm Asunto: Guardar frame como .bmp? |
|
|
Saludos:
Soy nuevo en el foro y relativamente en el uso del builder.
Mi problema es que estoy intentando capturar un frame de un video y guardarlo como un .bmp y no encuentro la forma de hacerlo.
Según he leido haria falta trabajar con las directx, pero eso lo veo demasiado complejo para lo que quiero hacer.De hecho el video lo reproduzco con un TMediaPlayer y modificiando el frame de start me muevo sobre el frame que quiero. Ahora simplemente seria guardar ese frame como bmp.
He pensado una manera cutre que sería capturar la pantalla y qedarme con la zona donde esta el frame pero me parece muy muy cutre.
¿Como podría hacerlo?
Muchas Gracias |
|
| Volver arriba |
|
 |
Neko++ Cdt


Registrado: 04 Oct 2004Mensajes: 8Ubicación: Cuernavaca, Morelos. México
|
Publicado: Jue 04 Nov, 2004 7:30 pm Asunto: Guardar Frame como BMP |
|
|
Que tal amigo:
El problema que tienes es facil de resolver, de preferencia has que el media player despliegue el video en un TPanel, para que sea más fácil (propiedad Display).
Para capturar el frame has lo siguiente:
Graphics::TBitmap *CuadroActual = new Graphics::TBitmap;
CuadroActual->Width = pnlVideo->Width - 8; // iguala el tamaño del bitmap al tamaño del panel donde se despliega el video dejando un margen de 4 pixeles por lado
CuadroActual->Height = pnlVideo->Height - 8;
CuadroActual->Canvas->Rectangle(0,0,CuadroActual->Width, CuadroActual->Height); //Dibuja un rectangulo en el bmp
CuadroActual->PixelFormat = pf24bit;
// ... una vez que estés en el frame que quieres...
CuadroActual->Canvas->CopyRect(Rect(0,0, CuadroActual->Width, CuadroActual->Height), Canvas ,
Rect(pnlVideo->Left + 4,pnlVideo->Top + 4, pnlVideo->Width + pnlVideo->Left -4,pnlVideo->Height + pnlVideo->Top -4));
//Ahora solo dale un SaveToFile al bitmap y habras obtenido el frame.
delete CuadroActual;
Si deseas, mandame tu correo a isc_truiz@hotmail.com para que te pase una aplicación que procesa frame por frame una imagen (aunque no las guarda), te puede servir para darte una idea de como manipular frames.
Saludos y espero haberte ayudado
Neko++ _________________ /**********************************/
ISC. Tito Ruiz Sánchez
EMail: isc_truiz@hotmail.com
kintaro_rst@hotmail.com |
|
| Volver arriba |
|
 |
Eaco Lt JG

Registrado: 04 Nov 2004Mensajes: 58Ubicación: Las Palmas de Gran Canaria-Islas Canarias
|
Publicado: Vie 05 Nov, 2004 9:06 pm Asunto: |
|
|
En primer lugar muchas gracias por tu respeusta Neko++ lo he probao y me va bien.
Ahora....
Si en lugar de guardar la imagen en .bmp la quisiera guardar como .jpg que podría hacer?
Muchas Gracias |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 05 Nov, 2004 9:18 pm Asunto: |
|
|
| Código: | #include <jpeg.hpp>//incluye la cabecera
TJPEGImage *EnJPG = new TJPEGImage;
//ponemos la imagen
EnJPG->Assign(CuadroActual->Picture->Bitmap);
// la grabamos. je
EnJPG->SaveToFile(CuadroActual->Name+".jpg");
delete EnJPG; |
_________________
 |
|
| Volver arriba |
|
 |
Eaco Lt JG

Registrado: 04 Nov 2004Mensajes: 58Ubicación: Las Palmas de Gran Canaria-Islas Canarias
|
Publicado: Vie 05 Nov, 2004 9:39 pm Asunto: |
|
|
MUCHISIMAS GRACIAS!!!
Ahora por curiosidad...
Si con esos frames que ya tengo capturados quisiera juntarlos todos para reproducirlos como un video... eso ya seria mas complicado, no?
Lo que he pensado es mostrar las imagenes correlativas pero se notan saltos entre ellas.
Esto que seria juntar los jpgs o bmps en un video ya seria pedir demasiado, no?
(es q tengo una aplicacion que he hecho en matlab y matlab me da la opcion de hacer eso directamente, el solo me junta los frames y me crea el video), aqui creo q no puedo hacerlo, no? En caso de que si... ¿como se podria?
Muchisimas gracias de nuevo |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 05 Nov, 2004 9:47 pm Asunto: |
|
|
checa este enlace, esta en japones, o chino, quien, sabe...?
pero,viene el codigo.. y esta facil de implementar..
debes guardar una imagen, como bmp.. posteriormente..
el codigo lo establece como una secuencia de viedo..
http://www.moodindigo.org/blog/archives/000189.html
y este es un componente, para crear video, en c++ builder, no soy muy fanatico de los componentes, me gusta mas hacerlo a puro codigo, aun que me lleve un buen,, jje jej
http://www.mitov.com/Video_Lab_Components/body_videolab.html
saludos _________________
 |
|
| Volver arriba |
|
 |
Eaco Lt JG

Registrado: 04 Nov 2004Mensajes: 58Ubicación: Las Palmas de Gran Canaria-Islas Canarias
|
Publicado: Vie 05 Nov, 2004 10:11 pm Asunto: |
|
|
Muchas Gracias por responder tan rápido.
Voy a echarle un vistazo al codigo pq me hace mas ilusion con codigo q no un componente y ya posteare resultados.
Muchas Gracias |
|
| Volver arriba |
|
 |
Susana Invitado
|
Publicado: Jue 25 Ago, 2005 1:22 am Asunto: |
|
|
Todo lo que expusieron está bien, pero se me presenta el siguiente problema. Yo necesito capturar un cuadro pero sin que se visualice el video en pantalla. Cuando se visualiza en pantalla puedo capturar el video.
Resulta que deseo capturar antes porque quiero hacer mezclas de videos en tiempo de ejecucion. Favor ayudenme, si alguien sabe como capturar una imagen del video sin que el video se visualice en pantalla |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Jue 25 Ago, 2005 10:12 pm Asunto: |
|
|
| yo tengo el mismo problema |
|
| Volver arriba |
|
 |
R. Porcar Site Admin

Registrado: 08 Ago 2002Mensajes: 113Ubicación: Castellón (España)
|
Publicado: Vie 26 Ago, 2005 8:53 am Asunto: |
|
|
con el mplayer de linux se hace en una linea:
$ mencoder “mf://*.jpg” -mf fps=5 -o video.avi -ovc lavc -lavcopts vcodec=xvid -vf rotate=1
PD: nunca he probado a hacerlo con builder, lo pongo por si no lo solucionas y quieres continuar con tu programa.
Saludos |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Vie 26 Ago, 2005 11:52 pm Asunto: |
|
|
| lo intente pero no me funciona |
|
| Volver arriba |
|
 |
|