Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Webcam capturar imagen y adaptada (https://www.clubdelphi.com/foros/showthread.php?t=63437)

ronald_tro 13-02-2009 18:14:52

Webcam capturar imagen y adaptada
 
Hola amigos de nuevo, estoy haciendo una aplicacion de poder ver mi webcam por medio de una image1, el codigo que tengo es este:
Boton de inicio:
begin
Ventana := capCreateCaptureWindowA('Ventana de captura',
WS_CHILD OR WS_VISIBLE, image1.Left, image1.Top, image1.Width,
image1.Height, form1.Handle, 0);
IF Ventana <> 0 THEN
BEGIN
TRY
SendMessage(Ventana, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(Ventana, WM_CAP_SET_PREVIEWRATE, 40, 0);
SendMessage(Ventana, WM_CAP_SET_PREVIEW, 1, 0);
EXCEPT
RAISE;
END;
END
ELSE
BEGIN
MessageDlg('Error al conectar Webcam', mtError, [mbok], 0);
END;
end;

Boton detener:
IF Ventana <> 0 THEN
BEGIN
SendMessage(Ventana, WM_CAP_DRIVER_DISCONNECT, 0, 0);
Ventana := 0;
END;

Y el problema que tengo es que tengo que agrandar la herramienta Image1 para poder ver todo lo de la webcam, mi pregunta es, habra alguna forma de poder ver toda la webcam del tamaño que tenga la herramienta image1?

Y otra duda amigos, tengo el boton de capturar una imagen en la misma aplicacion :
  1. BEGIN
  2. IF Ventana <> 0 THEN </SPAN>
  3. BEGIN
  4. Guardar.FileName := 'Captura de la imagen'; </SPAN>
  5. Guardar.DefaultExt := 'bmp'; </SPAN>
  6. Guardar.Filter := 'Fichero Bitmap (*.bmp)*.bmp'; </SPAN>
  7. IF Guardar.Execute THEN </SPAN>
  8. SendMessage(Ventana, WM_CAP_SAVEDIB, 0, </SPAN>
  9. longint(pchar(Guardar.FileName))); </SPAN>
  10. END;
Y cuando lo ejecuto me marca error en guardar, no se a que se refiere, ese codigo me lo pasaron, y si en vez de que salga el mensaje de guardar la imagen la guarde automaticamente en el folder donde tengo la aplicacoin, mil gracias por su ayuda y espero no molestarlos, un abrazo amigos.

ronald_tro 15-02-2009 00:08:42

o amigos sera que asi dá por default el tamañ de la webcam,
Ventana := capCreateCaptureWindowA('Ventana de captura',

o quizas sera que tengo webcam integrada a mi notebook? bueno espero alguna respuesta de ustedes amigos y que me recomiendan hacer, bye.

CCCP 17-01-2010 14:17:21

Existe un autosize

MaxiDucoli 11-12-2010 01:23:25

asi guardas la imagen
 
procedure TFrmVidCp.FrmVidCpBtn3Click(Sender: TObject);
var
b : TBitmap;
begin
IF Ventana <> 0 THEN
BEGIN
b := TBitmap.Create;
Guardar.FileName := 'Captura de la imagen';
Guardar.DefaultExt := 'bmp';
Guardar.Filter := 'Fichero Bitmap (*.bmp)*.bmp';
IF Guardar.Execute THEN
SendMessage(Ventana, WM_CAP_EDIT_COPY, 0,0);
b.LoadFromClipboardFormat (cf_BitMap, ClipBoard.GetAsHandle(cf_Bitmap), 0);
b.SaveToFile(Guardar.FileName );
b.Free;
END;
end;

KingOfDragons 14-02-2011 08:20:33

Cita:

Empezado por ronald_tro (Mensaje 338068)
Hola amigos de nuevo, estoy haciendo una aplicacion de poder ver mi webcam por medio de una image1, el codigo que tengo es este:
Boton de inicio:
begin
Ventana := capCreateCaptureWindowA('Ventana de captura',
WS_CHILD OR WS_VISIBLE, image1.Left, image1.Top, image1.Width,
image1.Height, form1.Handle, 0);
IF Ventana <> 0 THEN
BEGIN
TRY
SendMessage(Ventana, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(Ventana, WM_CAP_SET_PREVIEWRATE, 40, 0);
SendMessage(Ventana, WM_CAP_SET_PREVIEW, 1, 0);
EXCEPT
RAISE;
END;
END
ELSE
BEGIN
MessageDlg('Error al conectar Webcam', mtError, [mbok], 0);
END;
end;

Despues de conectar el driver pones este mensaje

Código Delphi [-]
SendMessage (Ventana, WM_CAP_SET_SCALE, 1, 0);

y agregas esta constante

Código Delphi [-]
Const WM_CAP_SET_SCALE = WM_CAP_START + 53;

esto va a hacer que se ajuste al tamaño que le definiste a Ventana

KingOfDragons 14-02-2011 08:30:36

y Bueno ya que estamos con este tema me podrian ayudar ya que la solucion que dan no funciona me marca error quiero guardarlo en un archivo ya sea bmp o el formato que sea pero tambien quiero cambiar o definir su tamaño con el comando que dice el compañero al principio si funciona pero solo me deja el archivo con la primera letra de toda la cadena y sin formato que puedo hacer??

arrakshe 21-06-2012 16:19:06

Tengo el mismo codigo con un problema diferente...
 
Tengo el mismo codigo pero el detalle esque el image1 me sale en negro cuando se prende la camara y la camara si sirve porque la he probado con otros programas y funciona perfectamente, no se si alguno tendra una minima idea del porque todo sale en negro, porque yo estoy perdido... Ademas como dato curioso un compañero implemento un codigo similar que si le esta funcionando sin embargo cuando lo coloque en mi programa no funciono y tenemos el mismo estilo de camara....

Casimiro Notevi 21-06-2012 17:15:16

Cita:

Empezado por arrakshe (Mensaje 435765)
un compañero implemento un codigo similar que si le esta funcionando sin embargo cuando lo coloque en mi programa no funciono y tenemos el mismo estilo de camara....

Si la cámara es igual y el programa es distinto, y funciona en un programa sí y en el otro no, entonces es que hay un programa mal.

arrakshe 21-06-2012 20:18:20

Cita:

Empezado por Casimiro Notevi (Mensaje 435771)
Si la cámara es igual y el programa es distinto, y funciona en un programa sí y en el otro no, entonces es que hay un programa mal.

De hecho es el mismo codigo, pero ya arregle el problema, es algo con los drivers de la camara porque si la apago y vuelvo a encender con el programa a la segunda encendida si funciona como debe ser, muchas gracias por tomarte el tiempo en responder.

Alexander 13-07-2012 14:54:43

Sobre Webcam
 
Muy buen día.

Alguien sabe donde consigo el Driver para que me funcionen los programas de la webcam.
He revisado en los foros y ya tengo lo programas, pero con todos me sale la imagen en negro.

Muchas Gracias por su información.

Casimiro Notevi 13-07-2012 15:39:40

Seguramente viene en el cd de la cámara.
También podrás descargarlo de la web del fabricante de la cámara.
También puede ser que el propio sistema operativo tenga alguno estandar y no necesites otro.

Si todo te sale siempre negro... ¿has quitado la tapa negra que trae el objetivo de la cámara? :D

Amigo, es casi imposible que te podamos ayudar sin ningún dato ni información, no has dado ni una triste pista de nada... y no somos adivinos ;)
¿La has probado en otro ordenador?, ¿la has conectado a otro puerto?, ¿has comprobado el cable?, ¿sabes si está bien instalada?, ¿la reconoce el sistema operativo en hardware encontrado?, ¿no estarás con la luz apagada y es de noche? :D

Venga, a ver si nos das más pistas, amigo, que así es imposible.

Por cierto, sigue nuestra guía de estilo, esto que has escrito no tiene nada que ver con la pregunta que inició este tema. Deberías haber creado un hilo nuevo.

Alexander 13-07-2012 18:50:42

Webcam
 
Lo siento no me exprese bien.

He revisado en los foros y hay muy buena ayuda (Código). Con esta ayuda he fabricado varios test para ver si la cámara funciona en un programa construido.

Las camaras por USB y por Firewire funcionan a la perfección tanto en el equipo de desarrollo como en otros con las aplicaciones propias, pero no con los test que he realizado. Lo que quiero es que funcione en una aplicación mía.

El Driver a que me refiero es que en los foros dice que es necesario tener "Microsoft Video for Windows SDK" o en su defecto AviCap32.dll (que lo tengo en la máquina).

Sin embargo con los desarrollos que he realizado con la ayuda del foro, la imagen sale negra e incluso con algunos de los ejecutables de los demo que han subido. Por eso me inclino en que me falta el "Microsoft Video for Windows SDK" pero este si no lo encuentro por ningún lado.

Por favor si alguien sabe donde lo puedo conseguir. Muchas Gracias.

p.d. Por ciero fuise demasiado sarcastico. :). Thanks.

Casimiro Notevi 13-07-2012 18:57:58

No creo que necesites el Microsoft Video for Windows SDK, yo no recuerdo haberlo usado nunca con ninguna webcam.
¿No funciona con ningún programa, ni siquiera con el que trae la propia cámara?


Cita:

Empezado por Alexander (Mensaje 437377)
p.d. Por ciero fuise demasiado sarcastico. :). Thanks.

Pero no lo hago con mala intención, sino en plan broma :)

Alexander 13-07-2012 20:46:53

WebCam
 
Las caramas funcionan bien con sus controladores en diversos sistemas operativos (XP y 7).

No funcionan en los desarrollos sin componentes. Si bajas el ejemplo WebCamCapture - API de aquí mismo. Sucede lo mismo que con mis desarrollos. Y en todo lugar indica que necesito ese software para hacerla funcionar.

Muchas Gracias por tu tiempo.

Este es el hilo de donde se trabaja ese ejemplo. Ejemplo Web Cam sin Componentes

Casimiro Notevi 13-07-2012 22:26:32

Y por curiosidad, ¿qué webcam estás usando?

Alexander 13-07-2012 23:23:32

web cam
 
Tengo varias:

Una compaq revieja USB
Una nuevecita HP USB
Una Sony Handy Cam firewire
Una Logitec normalita USB.

Y con todas es igual.

Casimiro Notevi 13-07-2012 23:43:09

Cita:

Empezado por Alexander (Mensaje 437406)
Y con todas es igual.

Vaya :confused:

CCCP 14-12-2017 18:30:39

Asi logre que capturara
 
Código Delphi [-]
procedure TObjWebCam.Capturar;
va BMP:TBitmap;
    DC:HDC;
Begin
IF FCapHandle <> 0 THEN
 BEGIN
   BMP:=TBitmap.Create;
   BMP.PixelFormat:=pf32bit;
   bmp.width := imagenWebCam.Width;
   bmp.Height := imagenWebCam.Height;
   DC:=GetDc(FCapHandle);
   Bitblt(bmp.canvas.handle, 0, 0, imagenWebCam.Width, imagenWebCam.Height, Dc, 0, 0, SRCCOPY);
   Releasedc (FCapHandle,dc);
   IF Guardar.Execute THEN Begin
      BMP.SaveToFile(Guardar.FileName);
   End;
   End;
End;

Casimiro Notevi 14-12-2017 19:48:42

Justo se cumplió ayer 13 años desde que estás en clubdelphi :)

Y todavía no pones las etiquetas al código fuente ;)


La franja horaria es GMT +2. Ahora son las 17:58:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi