begin process at 2010 02 10 06:31:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Multimédia

 > 

Image & Vidéo

 > 

[NET] capturer l'image d'une video MCI


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[NET] capturer l'image d'une video MCI

lundi 7 avril 2008 à 20:49:45 | [NET] capturer l'image d'une video MCI

sirozz

Salut à tous !

Je vous expose le problème...
J'ai un MCI qui joue une vidéo dans un pictureBox grâce à "mciSendStringA".
Tout fonctionne bien. J'essaye de capturer une image de la video grace à "bitBlt" de GDI
et de la coller dans un autrePictureBox.
Je procède comme ceci:

' thevid est le pictureBox qui joue la video
Dim videoGraphics As Graphics = thevid.CreateGraphics
Dim videoHdc As IntPtr = videoGraphics.GetHdc

Dim memoryBitmap As New Bitmap(80, 80)
Dim memoryGraphics As Graphics = Graphics.FromImage(memoryBitmap)
Dim memoryHdc As IntPtr = memoryGraphics.GetHdc

' thedisp est le pictureBox qui récupère le snapshot
Dim displayGraphics As Graphics = thedisp.CreateGraphics
Dim displayHdc As IntPtr = displayGraphics.GetHdc

' copie vers la mémoire
BitBlt(displayHdc, 0, 0, 80, 80, videoHdc, 0, 0, &HCC0020)

' colle vers le pictureBox
BitBlt(displayHdc, 0, 0, 80, 80, memoryHdc, 0, 0, &HCC0020)

Et ce que j'arrive à obtenir au mieux c'est un carré noir de 80x80.
Je ne sais vraiment pas comment faire.
Pour info j'ai déjà essayé d'utiliser CreateCompatibleDC mais ça marche po.
J'ai aussi essayé de mettre la vidéo en pause avant de faire le shot
et aussi de faire un System.Windows.Forms.Application.DoEvents() juste avant.
Ou encore un me.refresh() mais pas plus de résultat.

Avez-vous la solution à mon problème ?
Merci.



In tartiflette we trust !
mardi 8 avril 2008 à 06:09:03 | Re : [NET] capturer l'image d'une video MCI

Renfield

Administrateur CodeS-SourceS
' copie vers la mémoire
BitBlt(displayHdc, 0, 0, 80, 80, videoHdc, 0, 0, &HCC0020)

' colle vers le pictureBox
BitBlt(displayHdc, 0, 0, 80, 80, memoryHdc, 0, 0, &HCC0020)

tu devrais pas plutot avoir:

' copie vers la mémoire
BitBlt(memoryHdc, 0, 0, 80, 80, videoHdc, 0, 0, &HCC0020)

' colle vers le pictureBox
BitBlt(displayHdc, 0, 0, 80, 80, memoryHdc, 0, 0, &HCC0020)

?

de même, pourquoi ne pas faire:

BitBlt(displayHdc, 0, 0, 80, 80, videoHdc, 0, 0, &HCC0020)
mardi 8 avril 2008 à 07:31:36 | Re : [NET] capturer l'image d'une video MCI

sirozz

Oui désolé c'est une erreur de frappe.
Effectivement j'ai bien video->memory puis memory->display.
Si je fais un BitBlt(displayHdc, 0, 0, 80, 80, videoHdc, 0, 0, &HCC0020)
donc video->display je n'ai plus rien du tout.
Même plus de carré noir.
mardi 8 avril 2008 à 10:01:04 | Re : [NET] capturer l'image d'une video MCI

Renfield

Administrateur CodeS-SourceS
si MCI passe directement via la carte graphique (ce que je pense qu'il fait) tu l'as dans le Baba...

ca fais comme DirectX ... il passes pas par la case GDI. questionner le hDc  ne changera rien
mardi 8 avril 2008 à 12:49:50 | Re : [NET] capturer l'image d'une video MCI

sirozz

Arrg! Je passe par GDI mais c'est pas obligatoire. J'ai fait ça car j'avais l'habitude d'utiliser GDI en VB6 mais si tu as une autre solution je suis preneur. Idem pour MCI, je ne suis pas bloqué à ça, n'importe quoi d'autre qui fonctionne je suis preneur (même un ocx). Le problème est simple, je veux juste copier l'image d'une video lors d'un clic souris et la coller dans un pictureBox, même pas la sauvegarder, juste l'afficher dans un pictureBox.
J'ai fais un gros paquet de recherches sur le net mais je n'ai rien trouvé. Si tu as des pistes ?
mardi 8 avril 2008 à 12:53:14 | Re : [NET] capturer l'image d'une video MCI

Renfield

Administrateur CodeS-SourceS
tu souhiate juste extraire les frames d'une vidéo ?
mardi 8 avril 2008 à 13:35:55 | Re : [NET] capturer l'image d'une video MCI

sirozz

Oui tout à fait. C'est vrai que dit comme ça c'est plus simple.
mardi 8 avril 2008 à 14:04:18 | Re : [NET] capturer l'image d'une video MCI

Renfield

Administrateur CodeS-SourceS
la chose, en VB6:

http://www.vbfrance.com/codes/AVI-TO-BMP-AVI-EXTRACTOR_7099.aspx
mardi 8 avril 2008 à 15:10:10 | Re : [NET] capturer l'image d'une video MCI

sirozz

Merci, je regarde ça ce soir, suis au taf.
J'espère que ça va pas être trop galère à convertir en .net.
Merci en tout cas pour tous ces renseignements Renfield. Je pose ce post comme "réponse accepté" mais si qqun connais qque chose en vb.net merci de m'envoyer un petit message.
Bye.

dimanche 13 avril 2008 à 18:01:02 | Re : [NET] capturer l'image d'une video MCI

sirozz

Réponse acceptée !
Enfin... Après des heures de recherche sur le net, j'ai enfin trouvé un truc qui marche et qui est tout simple. Il suffit d'utiliser l'ocx de vlc et de désactiver l'overlay. Je pose quelques infos ici:

' déclare BitBlt de GD (utilisé pour faire le screenshot)
Private Declare Auto Function BitBlt Lib "GDI32.DLL" (ByVal hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, ByVal dwRop As Int32) As Boolean
   
'charge la vidéo est désactive l'overlay
'axVlc est mon activeX VLC
'filePath est le chemin d'accès de la vidéo

Dim opt() As String = {":no-overlay"}

axVlc.addTarget(filePath, opt, AXVLC.VLCPlaylistMode.VLCPlayListAppendAndGo, -666)

' fait une capture d'écran grâce à BitBlt en 80x80
' thedisp est un pictureBox qui réceptionne l'image

BitBlt(thedisp.CreateGraphics.GetHdc, 0, 0, 80, 80,
axVlc.CreateGraphics.GetHdc, 0, 0, &HCC0020)
   



Cette discussion est classée dans : image, video, capturer, graphics, mci


Répondre à ce message

Sujets en rapport avec ce message

capturer une image d'une carte d'aquisition video [ par Gi5 ] Bonjour je cherche comment capturer une image a partir d'une carte d'aquisition video en VB6. est-ce possible ? si vous avez une idée , Merci d'avance GDI+ et problèmes divers de débutant [ par mioumiounorris ] Bonjour bonjour ! Je suis actuellement en train d'essayer de comprendre comment dessiner avec GDI+, et j'avoue que j'ai un peu de mal à tout comprendr Extraction de propriétés d'un fichier audio,video,image... [ par fradimed ] Salut Je veux une solution qui m'aide a extraire les informations sur un fichier audio,video,image Ex :artist,album,dimension je veux la bibliothèque deplacer mes fichiers texte, image, video vers des dossiers de mon choix en vb.net 2005 [ par brmdevinci ] SVP vous pouvez me dir comment deplacer mes fichiers qq soit leurs nature , texte, image ,video, ... vers des dossiers que je choisi moi meme en vb.ne Effacement image mediaplayer [ par doyen ] Salut,Apres avoir joué la video ( avec le composant mediaplayer MSDXM.OCX) qui se trouve dans un container Picture box, je voudrais rendre invisible l image en video [ par jackky ] bonjour bien moi c tout simple mais je ne trouve pas! snif snif,je veux compiler environ une centaine d'image en fichier avi, mpeg ou autre ya t-il un Comment extraire une image d'une video ? [ par Elporco ] Je voudrais savoir comment avoir une image BMP tirée d'une vidéo lue par Windows Media Player. Saver une image d'une video avec windows media player [ par CtHuLhU50 ] Salut a tous j'aurais voulu savoir comment on peux saver une image d'une video en bmp par example capture d'image depuis une video [ par zedka ] je cherche a faire une capture d'image a partir d'un fichier video.Comment puije y faire simplement ?si qéq1 a 1 idée, merci !


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales