Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Capturar Imagen Con WebCam (https://www.clubdelphi.com/foros/showthread.php?t=67582)

mjjj 02-09-2014 21:14:50

Estimados, estoy utilizando este código y me funciona perfecto con Delphi 2010 y Win7, pero tengo un problema al capturar una imagen.
Resulta que si el programa está minimizado, o escondido (hide), la imagen guardada es un cuadrado negro.

Porque pasará esto?
Como lo puedo resolver?

Gracias.

Casimiro Notevi 02-09-2014 21:35:35

No lo he mirado, pero puede ser que al estar minimizada u oculta, el sistema decida no repintar la ventana y por eso no toma la imagen.

[broma] Además, si está oculta o escondida, ¿qué esperabas?, pues saldrá una mancha negra :D [/broma]

mjjj 02-09-2014 21:38:51

Entiendo que ese debe ser el problema, pero como lo soluciono???

Alguna idea??

benjaminao 31-07-2015 16:47:04

Error al recapturar con WebCam
 
Hola buenos días amigos, muchas gracias a todos por sus aportes a la comunidad. En esta oportunidad les escribo para solicitar su ayuda, ya que he implementado el código funciona todo ok utilizo delphi 7 con windows 7 en una SONY VAIO VPCSE core I5 8 Gb de ram con su webcam integrada. El problema que tengo es que solo puedo capturar imagen una vez, luego cuando vuelvo a ejecutar la aplicación la webcam no se activa, me aparece una ventana de dialogo que dice Origen de Video y debo seleccionar un dispositivo de vídeo, al aceptar la webcam no se enciende y ya no captura imagen alguna y para que funcione debo reiniciar la computadora y todo funcina bien otra vez, cabe destacar que he probado con otras aplicaciones como webCam Monitor 6 y sin necesidad de reiniciar si enciende la webcam y funciona sin problema, también he probado con otras computadoras y presenta el mismo problema. Me parece como que se quedara en ejecución algún proceso que no deja reconectar o encender la webcam desde mi aplicación, por que al reiniciar si vuelve a funcionar, he monitoreado desde el administrador de tareas y no veo nada.
Mucho les sabría agradecer su colaboración.

TiammatMX 08-08-2015 17:24:56

¡Felicidades!
 
1 Archivos Adjunto(s)
Éste código es ESTUPENDO..., casi logra lo que necesito, excepto que cuando intento tomar una SEGUNDA "fotografía", me arroja éste error..., y lo peor, si después del error deseo cerrar (comando Close; de ObjectPASCAL) me envía el mismo error...

Código Delphi [-]
procedure TfrmPrincV2.btnCapturarClick(Sender: TObject);
var
   PanelDC: HDC;
begin
   if not Assigned(imgVideo.Picture.Bitmap) then
      imgVideo.Picture.Bitmap := TBitmap.Create
   else begin
      imgVideo.Picture.Bitmap.Free;
      imgVideo.picture.Bitmap := TBitmap.Create;
   end;

   with imgVideo do
   begin
      Picture.Bitmap.Height := pnlVisual.Height;
      Picture.Bitmap.Width  := pnlVisual.Width;
      Stretch := True;
   end;

   PanelDC := GetDC(pnlVisual.Handle);
   try
      BitBlt(imgVideo.Picture.Bitmap.Canvas.Handle, 0,0,pnlVisual.Width, pnlVisual.Height, PanelDC, 0, 0, SRCCOPY);
   finally
      ReleaseDC(Handle, PanelDC);
   end;
   
   Camara.SaveAsJPG(imgVideo);
end;

Por cierto, felicidades a CasaCham... ;)

quini 14-12-2017 22:45:32

Cita:

Empezado por FideRosado (Mensaje 479072)
aun n se de que forma es que va ese fichero webcam.pas ya que me da error a la hoora de cmpilarl, me dice que hay cosas que no estan declaradas

el errroo esta pr aca

Código Delphi [-]
  public
      const
        WM_Connect     = WM_USER + 10;
        WM_Disconnect  = WM_USER + 11;
        WM_GrabFrame   = WM_USER + 60;
        WM_SaveDIB     = WM_USER + 25;
        WM_Preview     = WM_USER + 50;
        WM_PreviewRate = WM_USER + 52;
        WM_Configure   = WM_USER + 41;
    public
      procedure Connect;
      procedure Disconnect;
      procedure GrabFrame;
      procedure SaveDIB(const FileName: String = 'webcam.bmp');
      procedure Preview(&on: Boolean = True);
      procedure PreviewRate(Rate: Integer = 42);
      procedure Configure;
    private
      CaptureWnd: HWnd;

Hola, si estás usando Delphi 7 el error de compilación es porque no acepta las declaraciones de constantes dentro de la class TWebCam. Lo que debes hacer es poner las constantes entre const...+41; arriba de la declaración del objeto. Saludos

quini 16-12-2017 23:05:37

Yo tenía el mismo problema en Delphi 7 para Windows 7, lo solucioné dejando sólo la sentencia
Image1.picture.Bitmap := TBitmap.Create;

en el primer if del procedimiento Button2Click

Saludos


La franja horaria es GMT +2. Ahora son las 13:49:41.

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