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

VB 6 et antérieur Discussion :

récupérer dans le ClipBoard des images d'un fichier AVI


Sujet :

VB 6 et antérieur

  1. #1
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 087
    Points : 16 664
    Points
    16 664
    Par défaut récupérer dans le ClipBoard des images d'un fichier AVI
    Bonsoir

    Gros problème pour moi, j’espère petit pour l’un de vous

    Dans un PictureBox je joue un fichier .AVI piloté par un MMControl.
    Je voudrai récupérer dans le ClipBoard des images à la volée.
    Ni PictureBox.Image ou PicturBoxe.Picture ne me permettent de récupérer l’image.
    PictureBox.AutoRedraw et PictureBox.ClipControls étant à True.
    J’ai fais des essais avec les APIs capCreateCaptureWindow et SendMessage, de toute évidence je mis prend mal et/ou fait fausse route.

    Il y a quelques années (7 ou 8 ans), sous VB4 si mes souvenirs sont bons (et je croit pas me tromper il faudrait que je retrouve les sources), il suffisait de dire :
    Clipboard.SetData PictureBox.Image, puis PictureBoxRecup= Clipboard.GetData, et le tour était joué.
    Depuis je programme sous VB6, et là plus possible
    Le but du jeu est pour moi de récupérer chaque image de PictureBox pour le mettre dans un OCX qui me permet de rendre transparente une couleur déclarée comme transparente.
    L’effet me permettant de faire apparaître un clip sur un fond quelconque.

    Il est entendu que je mettrais a dispo, pour les personnes éventuellement intéressées, les sources du résultat.

    Merci
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 087
    Points : 16 664
    Points
    16 664
    Par défaut
    bonsoir
    Au vue des suggestions , voilà ma solution qui ne me satisfait pas vraiment, mais ...
    Je fais une copie selective de l'ecran.
    Les sources sont dans le ZIP
    Salut

    CopImageAVI.zip (10.6Ko)

    Motif de l'edit, modification du ZIP, sur les conseils de bbil

    Motif de l'edit le 13/06/07 23:06
    Encor plus simple le code du bouton Capture instantannée de l'image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Command1_Click()
    'coordonées pour recuperer l'image de l'AVI jouer dans Picture1
    'PictLeft = (ScaleX(Me.Left, vbTwips, vbPixels) + Picture1.Left) + BordureFrm
    'PictTop = (ScaleY(Me.Top, vbTwips, vbPixels) + Picture1.Top) + HauteurTitrefrm
    'capture de l'image AVI de Picture1, dessiner dans Picture2
    'BitBlt Picture2.hDC, 0&, 0&, Picture1.Width, Picture1.Height, _
    '     GetDC(GetDesktopWindow()), PictLeft, PictTop, SRCCOPY
    BitBlt Picture2.hDC, 0&, 0&, Picture1.Width, Picture1.Height, _
         GetDC(Picture1.hwnd), 0&, 0&, SRCCOPY
    Picture2.Refresh
    DoEvents
    'pour memoriser, eventuellement sera disponnible pour un logiciel de dessin
    Clipboard.SetData Picture2.Image, 8
    End Sub
    et dans le module, supprimer l'API
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'pour recuperation de l'image de l'ecran
    'Public Declare Function GetDesktopWindow Lib "user32.dll" () As Long
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonjour, ProgElecT,

    pour "customiser" ce source, tu pourrai changer le nom de la video testé par défaut, en utilisant par exemple "c:\windows\clock.avi", qu'on as de grande chance de trouver sur de nombreux PC...

    sinon si j'ai bien compris le principe retenu

    1- A l'ouverture de la forme mémorisation des positions dans l'écran du picture box "Picture1"
    2 - lancement video sélection dans ce picture box..
    3 - sur action bouton capture .. : copie d'écran vers presse papier de la zone dont les coordonnées ont été initialement mémorisé grâce à la fonction API GetDC...


    Je ne sais pas s'il y as d'autre manière d'effectuer une capture d'image dans un AVI... mais pour améliorer celle-la ... faudrai revoir le calcul de la zone à capturer.. (dans ma configuration, par exemple le bandeau supérieur est plus grand que le tiens..d'où décalage de l'image...) .. de plus si la form est déplacée avant la capture ... la zone de capture n'est pas mise à jour et ne correspond donc plus à l'image....
    l'idéal serai de calculer cette zone de capture lors de l'action de capture par la position du pictureBox...


    encore merci pour cette contribution..

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

Discussions similaires

  1. [Upload] Perdu dans la gestion des images
    Par thewaawshow dans le forum Langage
    Réponses: 9
    Dernier message: 19/09/2007, 14h32
  2. Réponses: 2
    Dernier message: 06/06/2007, 22h04
  3. [SQL] problème dans l'affichage des images
    Par visqueu dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/04/2007, 11h17
  4. Réponses: 3
    Dernier message: 16/05/2006, 14h47
  5. Réponses: 10
    Dernier message: 06/10/2005, 22h25

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