Re: Capturer image video

Posté par lmame le 3/3/2005 1:07:20
D'abord tu fais en effet le emultruc...
Ensuite, tu lances le MCI dans le champ (pour moi Image1).

Ce que je fais ensuite, c'est que je fais une capture d'écran que j'envoie dans Image 3 que je mets à la taille de l'écran...
Ensuite, je prends dans Image3 la zone qui m'intéresse (le contenu qui se trouve à la place de Image1) et je le colle dans Image2:

//position du champ Image1 par rapport à l'écran (pas par rapport à la fenêtre)
x_dep est un entier =0
y_dep est un entier =0


//capture d'écran dans le champ Image3
Image3..Largeur = SysXRes()
Image3..Hauteur = SysYRes()
dCopieImage(copieEcran, Image3)

//on retaille le contenu du champ Image3 et on copie la zone qui nous intéresse dans Image2:
dDébutDessin(Image2)
x_dep=FenIntPosX(test_mci)+Image1..X
y_dep=FenIntPosY(test_mci)+Image1..Y
dCopieImage(Image3, Image2, copieSrcCopie,x_dep,y_dep,Image1..Hauteur,Image1..Largeur)


Et là ça marche...

Explication:
Tu ne peux pas faire de copie "brute" Image1 vers Image2, en fait la vidéo ne doit pas être dans le champ Image1, mais à la place du champ Image1, ce qui expliquerait pourquoi quand tu fais une copie directe, le champ image1 soit "noir"...
Par exemple, mets une image dans le champ Image1 au départ, joue la vidéo et exécute ton code, tu verras que dans Image2 tu auras l'image d'origine (d'avant la vidéo) alors que tu as l'impression que la vidéo est dans le champ Image1...

Tu dois pouvoir faire plus simple pour la copie d'écran en passant par des API pour éviter de faire une copie d'écran complète, mais bon...

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=14&topic_id=1882&post_id=8042