IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Utilisation d'une caméra avec un TWebBrowser et capture d'écran


Sujet :

Delphi

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 500
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 500
    Points : 1 353
    Points
    1 353
    Par défaut Utilisation d'une caméra avec un TWebBrowser et capture d'écran
    Bonsoir à toutes et à tous,

    Avec cette procédure, j'affiche la vision de ma caméra et je n'arrive pas a faire une photo.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    procedure WebBrowserScreenShot(const wb: TWebBrowser; const fileName: TFileName) ; 
    var
    viewObject : IViewObject;
    r : TRect;   
    bitmap : TBitmap;
     
    begin   if wb.Document <> nil then
    begin
    wb.Document.QueryInterface(IViewObject, viewObject) ;
     
    if Assigned(viewObject) then
    try
    bitmap := TBitmap.Create;
    try
    r := Rect(0, 0, wb.Width, wb.Height) ;
     
    bitmap.Height := wb.Height;
    bitmap.Width := wb.Width;
     
    viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil,
     
    Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0) ;
     
    with TJPEGImage.Create do try Assign(bitmap) ;
     
    SaveToFile(fileName) ;        
     finally
     Free;
     end;      
     finally         
    bitmap.Free;       
    end;
    finally
    viewObject._Release;
    end;   
    end; 
    end;
    Utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant) ; 
    begin   
    WebBrowserScreenShot(WebBrowser1,'c:\WebBrowserImage.jpg') ; 
    end;
    Merci de votre aide éventuelle.

    @+,

    Cincap

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 900
    Points : 11 466
    Points
    11 466
    Billets dans le blog
    6
    Par défaut
    Comment n'arrivez-vous pas à prendre un instantané ? Le fichier jpg se crée-t-il bien ?

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 500
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 500
    Points : 1 353
    Points
    1 353
    Par défaut
    @ Tourlourou,

    Merci de ta réponse, la photo JPG se crée bien mais l'image de la caméra n'est pas affichée.

    Je précise qu'il s'agit d'une prise de vue d'une caméra H264 qui s'affiche dans le WebBrowser et non d'une photo fixe.

    @+,

    Cincap
    Images attachées Images attachées  

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 500
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 500
    Points : 1 353
    Points
    1 353
    Par défaut
    Bonjour à toutes et à tous,

    Dans mes tests, j'ai chargé une page de YouTube, j'ai fait un print avec la procédure décrite et j'obtiens bien une photo JPG de cette page avec même la vidéo contenue sur cette page.

    Dans mon application, je charge un fichier Html dans le composant Webbrowser et dans le code JavaScript je fais appel au lecteur QuickTime, je vois donc le contenu de ce que filme ma caméra en direct.

    Je pense que le printscreen devrait être basé sur ce lecteur ?

    Je continue mes tests.

    @+,

    Cincap

  5. #5
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 512
    Points : 2 785
    Points
    2 785
    Billets dans le blog
    10
    Par défaut Screen shot
    Bonjour,
    Tu as aussi le "screen shot" décrit dans l'exemple embarcadero sur le tethering

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 500
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 500
    Points : 1 353
    Points
    1 353
    Par défaut
    @ ALWEBER, merci pour ton info.

    J'ai fini par adopter le code une simple capture de l'écran afin de sauvegarder la photo au format JPG.

    Il me reste à créer une fiche qui pourrait enregistrer les photos à une date précise et toutes les 5 minutes ou plus.

    @+,

    JM

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation d'une utilisateur avec postgres
    Par pem1996 dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 24/10/2007, 20h04
  2. [WD9] Utilisation d'une jauge avec FTPEnvoie
    Par dom1950 dans le forum WinDev
    Réponses: 2
    Dernier message: 17/08/2007, 17h45
  3. [VBA-E] - Utilisation d'une variable avec la propriete offset
    Par ekynoxx dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/05/2007, 19h31
  4. [C#] utilisation d'une webcam avec DirectShow
    Par legillou dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/06/2006, 16h39
  5. Utilisation d'une variable avec l'instruction 'USE'
    Par florantanplan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/11/2005, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo