fs = new FileStream(filename,FileMode::Open,FileAccess::Read);
cmd->Pathname = filename;
img = Image::FromStream(fs);
Bonjour, je programme en c++ managé, un peu proche du c#, et ce que je cherche à faire c'est qu'en ouvrant une très grosse image taille > 100Mo, d'afficher une progress barre présentant l'état d'avancement. un peu comme ce qui est fait dans logiciel paintshop corel truc ça.
Malheureusement j'ai beau cherché, je ne trouve pas comment faire donc c'est pour cela que je lance cet appel à l'aide.
Jm2f
A voir également:
Afficher une progressbar pendant l'ouverture d'une image
Jm2F
Messages postés2Date d'inscriptiondimanche 10 octobre 2004StatutMembreDernière intervention16 septembre 2005 16 sept. 2005 à 09:24
Eureka, j'ai fini par trouver, je vous remercie beaucoup.
Pour l'astuce, je l'ai trouvé sur la route, très simple. Comme je passe par un FileStream pour lire ma grosse image, il suffit de faire appel à deux threads.
_ Le premier va lire la position de l'itérateur dans le flux et va la transmettre à la valeur de la progressBar et mettre à jour le formulaire qui contient la progressBar.
_ Et le deuxième va lire et créer l'image tout simple.
On initialise la progressBar avec les données du flux.
voici le code pour l'initialisation
_imageThread =
new Thread(
new ThreadStart(
this,ImageThreadProc));
_progressBarThread =
new Thread(
new ThreadStart(
this,ProgressBarThreadProc));