Suite d images

Signaler
Messages postés
94
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
7 novembre 2010
-
Messages postés
94
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
7 novembre 2010
-
Bonjour a tous.
J aurai voulu savoir si quelqu un pourrai m aider.
Je voudrais afficher dans un picture box  plusieurs bitmap a la suite qui sont contenus dans un tableau de bitmap .
et tout ca en clickant juste une fois sur un bouton
Merci a vous.

6 réponses

Messages postés
128
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
2 août 2009
5
Salut,
Voilà un exemple de diaporama:



public






partial



class



Form1
:

Form

{


         int
index = 0;


         int
nbrImage = 26;


         Bitmap
[] imageCollection;


         public
Form1()
         {
                  InitializeComponent();


                  this
.pictureBox.SizeMode =

PictureBoxSizeMode
.StretchImage;


                  this
.imageCollection =

new



Bitmap
[

this
.nbrImage];


         
                  for
(

int
i = 1; i <=

this
.nbrImage; i++)
                           imageCollection[i - 1] =

Bitmap
.FromFile(

@"C:\Images\image ("
+i+

").gif"
)

as



Bitmap
;
         }


         private



void
Form1_Load(

object
sender,

EventArgs
e)
         {


                  this
.SetPictureBoxImage();
         }


         private



void
SetPictureBoxImage()
         {
                  

this
.pictureBox.Image =

this
.imageCollection[index];
         }

         

private



void
btnPrevious_Click(

object
sender,

EventArgs
e)
         {


                  if
(

this
.index == 0)


                           this
.index =

this
.nbrImage - 1;


                  else

                           this
.index--;


                 
                   this
.SetPictureBoxImage();
         }

         

 private



void
btnNext_Click(

object
sender,

EventArgs
e)
         {


                  if
(

this
.index ==

this
.nbrImage - 1)


                           this
.index = 0;


                  else

                           this
.index++;


                  
                  this
.SetPictureBoxImage();
         }
}
Messages postés
128
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
2 août 2009
5
Sinon tu peux améliorer encore le chargement des images avec:



public






partial



class



Form1
:

Form

{


         int
index = 0;


         int
nbrImage = 0;


         string
directoryName =

"C:\\Images"
;


         Bitmap
[] imageCollection;


         DirectoryInfo
directoryInfo;



        
          public
Form1()
         {
                  InitializeComponent();



                  


                  this
.pictureBox.SizeMode =

PictureBoxSizeMode
.StretchImage;



                  this
.directoryInfo =

new



DirectoryInfo
(directoryName);



                  
                  if
(directoryInfo.Exists)
                  {



                           foreach
(

string
imagePath

in



Directory
.GetFiles(directoryName))



                                    this
.nbrImage++;



                           this
.imageCollection =

new



Bitmap
[nbrImage];



                           
                           try


                           {



                                    foreach
(

string
imagePath

in



Directory
.GetFiles(directoryName))
                                    {



                                             if
(!imagePath.Substring(imagePath.Length - 2, 2).Equals(

"db"
))
                                             {
                                                      imageCollection[index] =

Bitmap
.FromFile(imagePath)

as



Bitmap
;



                                                      this
.index++;
                                             }
                                    }
                           }



                           catch
(

UnauthorizedAccessException
) { }





                           this
.index = 0;
                  }
         }



         private



void
Form1_Load(

object
sender,

EventArgs
e)
         {



                  this
.SetPictureBoxImage();
         }





         private



void
SetPictureBoxImage()
         {



                  this
.pictureBox.Image =

this
.imageCollection[index];
         }



         private



void
btnPrevious_Click(

object
sender,

EventArgs
e)
         {



                  if
(

this
.index == 0)



                           this
.index =

this
.nbrImage - 1;



                  else


                           this
.index--;



                  
                  this
.SetPictureBoxImage();
         }



         
         private



void
btnNext_Click(

object
sender,

EventArgs
e)
         {



                  if
(

this
.index ==

this
.nbrImage - 1)



                           this
.index = 0;



                  else


                           this
.index++;



                  
                  this
.SetPictureBoxImage();
         }
}
Messages postés
128
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
2 août 2009
5
Où alors si tu veux faire du tout neuf, il y aussi LINQ...
Messages postés
128
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
2 août 2009
5
Pour LINQ, remplace les variables et le constructeur par ce code:

int

index = 0;

int nbrImage = 0;

string directoryName =
"C:\\Images\";

string imageExtension =
".gif";

ArrayList imageCollection;

DirectoryInfo directoryInfo;

public Form1()
{
         InitializeComponent();

         this.imageCollection =
new
ArrayList();

         this.pictureBox.SizeMode =
PictureBoxSizeMode.StretchImage;

         this.directoryInfo =
new
DirectoryInfo(directoryName);

         if (directoryInfo.Exists)
         {

                  var query =
from file
in directoryInfo.GetFiles()

                                       where file.Extension ==
this.imageExtension

                                       orderby file.Name
descending
                                       select
new { file.FullName };

                  foreach (
var file
in query)

                           this.imageCollection.Add(
Image.FromFile(file.FullName));
         }
}

Ne pas oublier de caster imageCollection dans la méthode SetPictureBoxImage:

private

void SetPictureBoxImage()
{

         this.pictureBox.Image =
this.imageCollection[index]
as
Image;
}
Messages postés
94
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
7 novembre 2010

Tout dabord je te remercie pour ces explications et tout ces codes et d avoir repondu
si vite .
Je vais essayer de me debrouiller avec ca .
Je voulais aussi ajouter qu en fait le but principal de mon projet est de faire un cam studio sans le son .
Pour l instant quand je click sur capture j ai bien mon bureau qui s affiche ,donc c est pas gagner d avance pour l affichage simultane de toutes les prises de vue en boucle cree par
le bitblt que j ai installe en tant reel .
Mais grace a tes explications je vais essayer de machiner quelque chose ,a moins 
que tu es une idee.
Dans tous les cas je te tiendrai au courant de la suite de mon projet.
Merci encore 
Messages postés
94
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
7 novembre 2010

Rebonjour a toi.
J ai poste un autre msg sur le forum mais cette fois en envoyant mon code ,qui precise mieux ma demande.
En tout cas , je te remercie pour tout.