rbidocho
Messages postés41Date d'inscriptionjeudi 7 juin 2007StatutMembreDernière intervention15 septembre 2008
-
2 juil. 2007 à 18:45
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 2009
-
3 juil. 2007 à 10:07
Bonsoir,
Voilà, j'ai un usercontrol qui me trace un graphique que j'insère après dans mon MainForm. Quand je clique sur le graphique je fais un Zoom par 2 (+ ou -) via un évènement mousedown (dans le usercontrol).
Mon graphique me prend en gros 2 à 3 MO de mémoire que je nettoie (dispose) à chaque fois que je change de tracé. Mais si je m'amuse avec des zooms dans un sens et dans l'autre (histoire de jouer un peu) j'ai ma mémoire qui part en flèche... je me suis arrêté à 400MO.
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200811 2 juil. 2007 à 19:19
Déjà, tu devrais mettre tes appels à Dispose() dans un block finaly, parce que en cas d'exception tu ne nettoye rien...
Sinon tu ne "dispose" pas Image (dans l'ordre, il vaut mieux appeler les dispose dans l'ordre inverse des "new" -> tu dispose en premier le dernier objet créé)
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 2 juil. 2007 à 19:04
Salut,
A ta place, je dessinerais sur un bmp à la taille que tu veux, puis je dessinerais le bmp sur le controle en jouant sur Graphics.ScaleTransform pour le zoom.
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011 2 juil. 2007 à 21:43
Vu que t'es en C# je peux te proposer une alternative qui va te parraitre contrainiante :
premiere chose active le code unsafe puis créé un block mémoire de type pointeur qui gere les couleur et ensuite utilise les fonction BitBlt et la "enjoy" tu gagne enormement en rapidité et en place mémoire.
J'ai codé dernierement une appli qui recré un simulacre de la baguette magique de sélection de paint avec le GDI Managé c'est horrible je suis en train de le passer en unsafe ca va deja mieux même si c'est aps encore fini
pour avoir le courage de trouver comment faire :
www.getpaint.net
c'est opensource c'est en C# ca tourne sous XP, Vista, x86 et x64 enfin voila (par contre faut BIEN lire TOUS les readme pour reussir a le compiller :p)