Visual basic net problème picturebox et affichage gif animé

[Résolu]
Signaler
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
-
 Utilisateur anonyme -
Bonjour

Je me tourne vers vous car je comprend rien à ce que je trouve avec les moteurs de recherche.

Donc voici mon problème :

J'ai dans ma form principale 3 picturebox, deux dont les images sont dans les ressources et la dernière dont je charge l'image via ce code :

                    Dim Vimagesreen As Image
                    Dim MyStream As FileStream = New FileStream(cheminscreen, FileMode.Open, FileAccess.Read)
                    Vimagesreen = Image.FromStream(MyStream)
                    Vimagesreen = System.Drawing.Image.FromStream(MyStream)
                    belleimage.Image = Vimagesreen
                    MyStream.Close()
                    MyStream.Dispose()
                    MyStream = Nothing


tout va bien quand c'est une image fixe mais quand l'image est un gif animé l'application plante, les gifs des ressources se transforment en un grand rectangle blanc avec une croix rouge


et c'est une erreur générale du GDI qui plante le truc et je ne sais pas pourquoi.

Je ne cherche pas a animé le GIF mais juste à afficher au moins la première image sans que ca plante le programme.

voici le code complet de l'erreur :

************** Texte de l'exception **************
System.Runtime.InteropServices.ExternalException: Une erreur générique s'est produite dans GDI+.
à System.Drawing.Image.SelectActiveFrame(FrameDimension dimension, Int32 frameIndex)
à System.Drawing.ImageAnimator.ImageInfo.UpdateFrame()
à System.Drawing.ImageAnimator.UpdateFrames()
à System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)
à System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
à System.Windows.Forms.Control.WmPaint(Message& m)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


pourquoi le système ne fonctionne t'il de la même manière que pour les gifs dans les ressources ?


le logiciel est sous VB 2008 express

d'avance merci pour vos éclairages


bidouille007

9 réponses

Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
comme quoi je reste pas à attendre donc pour ceux que cela interesse voici je le pense la solution au problème

                    Dim br As New System.IO.BinaryReader(System.IO.File.OpenRead(cheminscreen))
                    Dim imagerie As Byte() = br.ReadBytes(br.BaseStream.Length)
                    br.Close()
                    br = Nothing
                    belleimage.Image = System.Drawing.Image.FromStream(New System.IO.MemoryStream(imagerie, 0, imagerie.Length))


bidouille007
Messages postés
7537
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2021
127
Bonjour banana32,

Tu es toujours aussi actif sur ce forum.
Bonne journée.


@+ Le Pivert
Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
je m'auto reponds

Sans pour autant avoir la solution

J'ai testé en neutralisant


                    MyStream.Close()
                    MyStream.Dispose()
                    MyStream = Nothing


et là plus de plantage mais je déplace le problème car je dois absolument débloqué le document sinon ca plante plus loin dans le code.

bidouille007
MERCI !!!!! tu me sauve la vie sa fait bien 4 heur que je cherche !!!! merci,merci,merci !!!
pas vraiment en faite... y a il moyen de charger le GIF depuis un fichier ressource ?? ex: my.resource.mongif.gif ??

merci
Messages postés
7537
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 septembre 2021
127
Comme ceci peut-être!!!!

 PictureBox1.Image = My.Resources.monimageaniméé



@+ Le Pivert

Salut,

Tu peux faire comme ceci pour charger un gif animé :
picturebox1.image = ctype(my.resources.tongif, image)

Salut Le Pivert,

Nos réponses se sont croisées

Comme toi
Bonne journée également.