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

Windows Forms Discussion :

[VB.Net] Image à partir d'un fichier


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Points : 44
    Points
    44
    Par défaut [VB.Net] Image à partir d'un fichier
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            PictureBox1.Image = Image.FromFile("c:\captured.jpg")
        End Sub
    voilà mon code pour afficher une image dans ma picturebox a chaques fois que timer.tick, sachant que celle-ci est un capture écran d'une autre form et qui change elle aussi toute les secondes.

    A la charge de mon projet, on m'affiche l'erreur suivante :
    "Une erreur générique s'est produite dans GDI+"

    Si quelqu'un sait d'ou vient l'erreur ?
    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Il semblerait que le problème ne vienne pas du chargement de l'image à partir du fichier, mais plutôt de la capture d'une nouvelle image.

    La méthode Image.FromFile à l'air d'empêcher la réécriture par MyImage.Save, cela se confirme lorsque l'on utilise un try, catch :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Try
                MyImage.Save("c:\Captured.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
    Mais je n'ai pas de solution pour fermer le fichier .

  3. #3
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    Comment fais-tu pour la capture d'écran?

    si tu as la possibilité, passe par des streams mémoires au lieu de passer par un fichier...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Points : 44
    Points
    44
    Par défaut
    Excuse moi c'est quoi un stream mémoire ? ^^

  5. #5
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    C'est la classe MemoryStream qui te permet ça... elle dérive de la classe Stream


    Comment procèdes tu pour faire ta copie d'ecran???

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Points : 26
    Points
    26
    Par défaut je souhaite que ça va aller avec ça!
    essayer de déclarer un variable image1

    image1= New Bitmap("c:\Captured.jpg", True)

    puis l'affecter à ton PictureBox:

    PictureBox1.Image = image1

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Malheureusement cette nouvelle méthode ne change rien, la méthode de capture de l'écran a été donnée par Badger Man dans une autre discussion :

    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
    
     
    
    PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim G1 As Graphics = Me.CreateGraphics Dim MyImage As Image = New Bitmap(Me.ClientRectangle.Width, Me.ClientRectangle.Height, G1) Dim G2 As Graphics = Graphics.FromImage(MyImage) Dim dc1 As IntPtr = G1.GetHdc Dim dc2 As IntPtr = G2.GetHdc BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, Me.ClientRectangle.Height, dc1, 0, 0, TernaryRasterOperations.SRCCOPY) G1.ReleaseHdc(dc1) G2.ReleaseHdc(dc2) Try
    MyImage.Save("c:\Captured.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
    Catch ex As Exception
    MessageBox.Show(ex.Message)
    EndTry
    EndSub

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/06/2008, 16h51
  2. [GD] Créer une image à partir d'un fichier
    Par MarcCC dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 24/01/2008, 23h03
  3. Insérer une image à partir d'un fichier .jar
    Par gege87270 dans le forum Forms
    Réponses: 0
    Dernier message: 30/11/2007, 11h26
  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, 09h11
  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, 10h55

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