Bonjour, A vrai dire j'en sais trop rien, quelle méthode est plus rapide, je dirai le Clear parce que je viens du monde du C++ et pour moi Clear ca veux dire repasser uniquement tous les octets de la plage de donnée de l'image à une valeur déterminé, alors qu'un Recreate ca signifie désallocation, réallocation, réécriture de l'entete et enfin passer tous les octets de la plage de donnée à la valeur par défaut (ben oui, la mémoire n'est pas à cette valeur par défaut quand on l'alloue, faut le faire explicitement) Mais la on parle du C#, donc entre le Garbage et les histoire de cache, je sais pas trop lequel est le plus rapide. Cependant tu peux tester. long t = DateTime.Now.Ticks; for(int i = 0; i < 1000000; i ++) { Graphics.Clear(Color.fromArgb(0,0,0,0)); } t = DateTime.Now.Ticks; // Faire la méthode Clear 1 000 000 de fois à pris (t*100) nano secondes t = DateTime.Now.Ticks; // On reset le chrono pour la seconde méthode Graphics g; Image i; for(int i = 0; i < 1000000; i ++) { i = new Bitmap(2048, 1024); g = Graphics.FromImage(i); g.Dispose(); g = null; i.Dispose(); i = null; } t = DateTime.Now.Ticks; // Faire la méthode Recreate 1 000 000 à pris (t*100) nano secondes
Et voile, en faisant chacune des méthodes 1 000 000 de fois, tu obtient une assez bonne idée du temps moyen que ca prend pour chacune des méthodes et tu as la réponse à ta question.
Le travail c'est la santé, ne rien faire c'est la préserver !!!
|