Problème avec Bitmap [Résolu]

Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
- - Dernière réponse : Guillamue06
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
- 28 nov. 2012 à 19:34
Bonjour, depuis un timer si je "dim" une bitmap celui ci me bouffe petit à petit toutes ma ram :

  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim newImage = New Bitmap(850, 850)       
  End Sub


Par contre pour n'importe quel autre composant aucun problème. Jusqu’à présent je pensais que le dim recréé la variable mais apparemment non avec un bitmap.

Ici le même code mais avec une picturebox pas de problème :
  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       Dim pic As New PictureBox    
  End Sub


J'ai bien pensais à faire un dispose() sur le "newImage" mais, sa me fait planté ma picturebox quand je veux lui attribuer l'image (avant le dispose bien sûr).

Une idée pourquoi le bitmap s'accumule à chaque boucle du timer ? Puis comment faire pour vider le bitmap sans me faire planter ma picturebox ?

Merci d'avance.
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
3
Merci
Salut
pas de problème car ton pic est vide
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       Dim pic As New PictureBox    
  End Sub


mais si tu charges ton pic

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       Dim pic As New PictureBox  
        pic.Image = New Bitmap("c\blabla\toto.jpg")  
  End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 187 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ShayW
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
3
3
Merci
Donc si je comprend bien a chaque Dim il me réaloue une image dans la Ram. Je vais essayé de faire une variable global pour ne pas en créer 56 million de million de million de milliard de million si le soft reste ouvert la journée. Enfin je vous tiens au courant psq c'est le bordel avec les graphiques.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 187 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Guillamue06
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
3
Merci
peut etre ainsi

si j'écris
 Private myimage As New Bitmap(Application.StartupPath & "\im1.jpg")
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim pic As New PictureBox
        pic.Image = myimage
      End Sub


la mémoire n'augmente pas

Que veux tu faire ?
charger à chaque tick une nouvelle image ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 187 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ShayW
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Bonjour,
Combien d'images de cette taille insères-tu ainsi sans les supprimer ? Chacune réserve en mémoire un sacré lot !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
3
0
Merci
Salut ucfoutu, pour répondre à ta question, temps que le programme est ouvert le timer tourne ! Tu imagine donc bien que au bout de quelques seconde avec un interval à 10, l'application pèse plus de 1Go
Commenter la réponse de Guillamue06
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
3
0
Merci
Oui, à chaque boucle du timer il y a un draw graph qui se met en route et qui actualise la picture box
Commenter la réponse de Guillamue06
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Ben ... pourquoi charger un nouvel objet à chaque tick, dans ce cas ??? Puisque tu n'en utilises qu'un, finalement ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
3
0
Merci
Parce que j'ai pas pensais pas que sa allé charger un nouvel élément j'ai la fâcheuse habitude de créer des élément à tous bout de champs.

Mais par contre j'ai pas trouvé de méthode pour clear un bitmap ? Pour le remettre vierge quoi sans le disposed cette fonction me serrait bien utilise.
Commenter la réponse de Guillamue06
Messages postés
158
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
25 juillet 2018
3
0
Merci
Edit: Heu pour ma question je pense avoir trouvé Source. Avec un graphic.clear(). enfin ça à l'air de fonctionner.
Commenter la réponse de Guillamue06