C'est encore moi mes chers programmeurs ,
Dans une application que je fait, je dois charger des images dans des composants picturebox et au même temps stocker les valeurs des pixels dans une matrice pour faire des traitements par la suite. Ce qui fait que le temps de chargement de l'image peut être divisé en deux :
- le temps nécessaire pour le vrai chargement de l'image dans picturebox puis
- le temps de stockage des valeurs des pixels dans la matrice.
Et comme je charge des images assez grandes (plus de 2000 x 1600 pixels), ce chargement est assez lent.
Donc j'ai pensé à insérer un élément progressbar dans mon application pour montrer enfait la progression du chargement sans ralentir d'avantage le chargement mais je sais pas comment dois-je procéder pour le faire.
Au début j'affectais en permanence la nouvelle valeur à la progressbar dans les boucles de stockage des données de l'image dans la matrice, mais j'ai trouvé que le temps de chargement a été multiplié par 20 à peu près.
Ensuite, et pour éviter ce problème, j'ai pensé à faire uniquement le calcul de la valeur du poucentage du progressbar à l'intérieur de la boucle de stockage des données dans la matrice puis inséré un timer qui, au bout de quelques dizaines de millisecondes, va transmettre ce pourcentage à la progressbar. Ca réduit considérablement le nombre de communications avec la progressbar, sauf que pendant que le chargement fait sa boucle normalement, il semble que les timer ne marchent pas même si ils sont activés juste avant la boucle (chose que je me rends compte qu'elle est normale).
Et je sais pas si je dois a jouter un DoEvents à cette boucle (chose que j'espère pas car ça va ralentir encore plus l'exécution) ? Ou bien y a-t-il une autre solution pour montrer la progression du chargement de limage ?(un ptit peu comme Photoshop lorsqu'il charge une image très grande)
Et merci beaucoup messieurs-dames pour votre aide
Partager