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

Composants VCL Delphi Discussion :

Traitement d'image à partir d'un fichier AVI (avec TMediaPlayer ?)


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut Traitement d'image à partir d'un fichier AVI (avec TMediaPlayer ?)
    [ Delphi TOKYO 10.2 - VCL ]

    Bonjour,

    Je souhaiterais faire du traitement sur chaque image d'un fichier AVI pendant la lecture avant de l'afficher.
    Je sais faire du traitement d'image avec une webcam en traitant chaque image dans la fonction call back en revanche je ne vois pas comment faire avec le TMediaPlayer.

    Merci de me donner vos idées..

    Franck

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 498
    Par défaut
    salut

    dans mon souvenir c'est pas simple d'utiliser Tmediaplayer pour faire de la capture d’écran c'est une surcouche qui utilise les mci_command
    il y a DSpack qui est plus ouvert basé sur la techno directshow

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 140
    Par défaut
    Regarde si la WebCam fait du JPEGMotion, tu recevras les images une par une au lieu de traiter le flux.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 498
    Par défaut
    salut ,

    a priori TmediaPlayer a un peu évolué il y a plus de commande disponible
    sur le site de microsoft

    j'ai trouvé cela sur le net ...
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    uses
      MMSystem;
     
     
    // MCI_DGV_UPDATE_PARMS from Digitalv.h, Platform SDK July 2000
    type
      PMciDgvUpdateParms = ^TMciDgvUpdateParms;
      TMciDgvUpdateParms = packed record
        dwCallback: DWORD;
        rc: TRect;
        hDC: HDC;
      end;
     
    // constants from Digitalv.h, Platform SDK July 2000
    const
      MCI_DGV_UPDATE_HDC = $00020000;
      MCI_DGV_UPDATE_PAINT = $00040000;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      // step pour aller jusqu'a la prochaine frame et dessinner dessus
      MediaPlayer1.Step;
      OwnDrawOverFrame;
    end;
     
    procedure TForm1.OwnDrawOverFrame;
    begin
      // Pour l'exemple dessiner une croix 
      Canvas.Pen.Color := clRed;
      with MediaPlayer1.DisplayRect do
      begin
        Canvas.MoveTo(Left, Top);
        Canvas.LineTo(Right, Bottom);
        Canvas.MoveTo(Right, Top);
        Canvas.LineTo(Left, Bottom);
      end;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      with MediaPlayer1 do
      begin
        Display := Self;
        Open;
      end;
    end;
     
     
    procedure TMaForm.FormPaint(Sender: TObject);
    var
      MciErr: MCIERROR;
      Buf: array[0..128] of Char;
      UpdateParams: TMciDgvUpdateParms;
    begin
      with MediaPlayer1 do
      begin
        if Mode = mpStopped then
        begin
          // initialize update params
          FillChar(UpdateParams, SizeOf(TMciDgvUpdateParms), 0);
          UpdateParams.dwCallback := Handle;
          UpdateParams.rc := DisplayRect;
          UpdateParams.hDC := Canvas.Handle;
          // send MCI_UPDATE command
          MciErr := mciSendCommand(DeviceID, MCI_UPDATE, MCI_DGV_UPDATE_HDC or MCI_DGV_UPDATE_PAINT, Cardinal(@UpdateParams));
          // Montrer les erreurs 
          if (MciErr <> 0) then
          begin
            FillChar(Buf, SizeOf(Buf), 0);
            mciGetErrorString(MciErr, Buf, SizeOf(Buf));
            OutputDebugString(PChar(Format('%d: %s', [MciErr, Buf])));
          end;
        end; // dessinner sur la frame encore
        OwnDrawOverFrame;
      end;
    end;

  5. #5
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    merci anapurna, je vais voir ça.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/06/2008, 13h54
  2. Créer un divx a partir de plusieurs fichiers avi
    Par Vascogil dans le forum Vidéo
    Réponses: 1
    Dernier message: 18/12/2007, 00h45
  3. [VB.Net] Image à partir d'un fichier
    Par Fullmetal82 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 18/02/2007, 01h52
  4. Récupération automatique d'images à partir d'un fichier vidéo
    Par osscour dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 15/05/2006, 10h11
  5. [CR] Inserer une image à partir d'un fichier
    Par Gandalf24 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 23/07/2003, 11h55

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