Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1915 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [.NET] Objet Graphics, DrawImage et occupation mémoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[.NET] Objet Graphics, DrawImage et occupation mémoire

n°1412792
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2006 à 09:35:44  profilanswer
 

Salut,
 
Je suis sous Windows Vista, et le module de slideshow de base est null à mourrir : 640x480, sur mon 24" wide, c'est hideux.
Du coup, hier j'ai voulu en écrire un, qui accepte de tourner en 1920x1200
 
Bon, hormi quelques détails, il marche bien.
 
Seulement, à chaque fois que je fais un g.DrawImage() l'occupation mémoire monte, et ne redescent jamais, même si j'affiche plusieurs fois de suite la même image (donc il ne s'agit pas d'un cache).
 
=> Je suppose que l'objet Graphics conserve en mémoire tous les objets Image qui ont été dessinés dedans. Comment faire pour "applatir l'image", c'est à dire travailler sur un canevas qui ne conserve pas les images en mémoire, mais simplement écrase les pixels dans une zone mémoire ?
 
J'ai toujours la solution de faire comme le truc de Vista, à savoir effacer au fur et à mesure les images du dessous, mais bon, je ne vois pas trop l'intérêt... Je voudrais donc simplement faire en sorte que mon Graphics ne contiene qu'une image à la fois, et écrase les occurences précédentes sans pour autant les effacer.

mood
Publicité
Posté le 25-07-2006 à 09:35:44  profilanswer
 

n°1412794
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-07-2006 à 09:38:24  profilanswer
 

Sinon, j'ai un autre problème : lorsque je recherche les images sur le disque, ça peut durer du temps.
J'ai donc mis une ProgressBar dans ma fenêtre, qui est censée s'incrémenter au fur et à mesure que j'ai chargé les images.
Seul hic : ben ça ne rafraîchit pas.
 
Au départ, j'avais mis un bar.Invalidate() dans me boucle, et voyant que ça ne marchait pas, j'ai mis ça dans un Timer. Rien ne change, j'ai un rectangle gris qui s'affiche, et qui ne se refraîchit jamais.
 
PS: Ma form est doublebuffered. Mais bon, j'ai shooté ça, et ça n'a rien changé, donc je ne suis pas sûr que ça impacte vraiment le rendu à ce niveau :)

n°1414839
jey350
Posté le 27-07-2006 à 17:52:44  profilanswer
 

Lors des longs process, il faut jouer avec les thread pour que l'interface graphique continue "à réagir".
 
Le principe est de lancer le long travail dans un thread:
 
http://msdn2.microsoft.com/fr-fr/library/ms173178.aspx

n°1414875
MagicBuzz
Posté le 27-07-2006 à 19:01:06  profilanswer
 

jey350 a écrit :

Lors des longs process, il faut jouer avec les thread pour que l'interface graphique continue "à réagir".
 
Le principe est de lancer le long travail dans un thread:
 
http://msdn2.microsoft.com/fr-fr/library/ms173178.aspx


c'est fait, mais la barre ne s'affiche toujours pas. j'ai tenté deux méthodes de callback trouvées dans la MSDN, mais rien n'y fait : soit elle bouge pas, soit carrément les deux thread s'attendent mutuellement et j'ai plus qu'à killer l'appli :/
 
http://forum.hardware.fr/hardwaref [...] m#t1413587
 
ps: arjuna = magicbuzz


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [.NET] Objet Graphics, DrawImage et occupation mémoire

 

Sujets relatifs
ajout dynamique de variables dans un objet[.NET/C#] Data Format String, Besoin d'un coup de pouce
erreur définie par l'application ou par l'objet résolu[opengl]Pb: liberation mémoire textures [RESOLU]
analyseur de code pour dépassement mémoireCollection d'Objet en php + gérer ordre de fichiers sur le serveur ?
[JS] Comment récupérer tous les indices/membres d'un tablea/objet[ASP.NET] [Résolu] Limiter la taille de la textbox d'un boundfield
[VB.NET et C#.Net] Problème de tableau /click bouton (postback?) 
Plus de sujets relatifs à : [.NET] Objet Graphics, DrawImage et occupation mémoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR