Screenshot et preview [Résolu]

Signaler
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014
-
NHenry
Messages postés
14671
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 avril 2020
-
Bonjours , je fait présentement un project qui consiste a prende une capture d'écran , la sauvegarder dans un fichier spécifique et ensuite de la prévisualiser dans un picturebox. Tout fonctionne bien pour la premiere capture cependant quand je reclique sur mon boutton je me retrouve avec cette erreur : A generic error occurred in GDI+. Voici le code de mon project a présent.

PictureBox1.Image = Nothing

Dim screenImage As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(screenImage)
g.CopyFromScreen(New Point(0, 0), New Point(0, 0), New Size(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height))
screenImage.Save("C:\ULab Test Win", System.Drawing.Imaging.ImageFormat.Jpeg)

PictureBox1.Image = Image.FromFile("C:\ULab Test Win")


l'erreur arrive a la ligne : screenimage.save("C:\......") quelqu'un aurais une idée svp? Merci beaucoup a l'avance et pardonnez moi pour mes fautes de francais

11 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bonjour,
Il semble que l'exécution de la première ligne dénoncée :
screenImage.Save("C:\ULab Test Win", System.Drawing.Imaging.ImageFormat.Jpeg)

est gêné&e par l'exécution de la 2ème qui ouvre un fichier peut-être non encore totalement créé.
Cela expliquerait qu'en otant la 2ème instruction ===>> plus de plantage.
Essaye de placer entre les deux un DoEvents (ou son équivalent VB.Net), pour voir.


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
14671
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 avril 2020
139
Bonjour,

Ou sinon, pourquoi ouvrir le fichier ensuite ?
Essayes d'utiliser l'image qui est déjà en mémoire.

Mon site
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014

Ah oui j'ai oublier de spécifier.. quand j'enleve la ligne de code : Picturebox1.image = image.fromfile..... (Le code qui load l'image dans le picturebox pour donner un appercu de la capture d'écran) le code ne plante pas
Messages postés
14671
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 avril 2020
139
Bonjour,

Sans trop m'avancer, essayes en mettant un nom sans espace et avec une extension.

Sinon, je ne vois pas de raison spécifique.

Mon site
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014

screenImage.Save("C:\ULabTestWin.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

Toujours la meme erreur =(
Messages postés
14671
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 avril 2020
139
Bonjour,

Tu as essayé en Dispose-ant les différents éléments (sauf le Bitmap) avant d'enregistrer ?

Tu as essayé de décorreller l'enregistrement et la lecture avec un timer ou un bouton par exemple ?

Si ça fonctionne, peut être qu'un DoEvents ou un Sleep devrait aider.

Mon site
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014

Oui j'ai essailer de mettre le save de la screenshot sur un bouton simple. La Lecture sur un autre. Et le "Picturebox1.image = nothing" sur un autre boutton. Toujours la meme erreur. Cependant comme j'ai dit plus haut si je ne fait aucun "preview" de la capture d'écran je peut prende autant de capture que je veut sans avoir aucune erreur... Je comprend pas trop le problème , peut-etre aurais tu une meilleur suggestion pour faire une capture d'écran qui serais plus stable? Merci de ton aide NHenry.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Doublé par NHenry


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
A tout hasard

Ce lien montre un code ressemblant au tien mais avec quelques petites nuances, jusqu'à la sauvegarde sur fichier.
Je ne connais toutefois rien à VB.Net, que je n'ai par ailleurs pas pour tester.


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014

NHenry.... MErci beaucoup... en effect j'ai utilisé limage qui est en mémoire et tout marche , Merci a vous deux pour l'aide
Messages postés
14671
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 avril 2020
139
Bonjour,

Ce forum est là pour ça :)

Si ton problèmes est résolu, pense à mettre "Réponse acceptée" sur le ou les messages qui t'ont aidés.

Mon site