|
Site |
Cours VB.net |
|
|
|
Image. |
|
|
Comment afficher des images ?
Le contrôle 'PictureBox':
Le contrôle PictureBox sert à afficher des graphismes au format bitmap, GIF, JPEG, métafichier ou icône (Extension .BMP .GIF .JPG .WMF .ICO)
L'image à affichée est déterminée par la propriété Image, laquelle peut être définie au moment de l'exécution ou du design. La propriété SizeMode détermine la façon dont l'image et le contrôle se dimensionnent l'un par rapport à l'autre.
On peut charger une image en mode conception par le fenêtre 'propriétés' et la propriété 'Image' ou dans le code:
PictureBox1.Image = Image.FromFile("vimage.gif")
(la Classe Image (Shared) possède une fonction qui retourne une image à partir d'un fichier. On l'affecte ensuite à la propriété Image du PictureBox1.)
Ho! merveille, les GIF animés sont acceptés et s'animent sous VB.
Comment effacer une image?
If Not (PictureBox1.Image Is Nothing) Then
PictureBox1.Image.Dispose()
PictureBox1.Image = Nothing
End If
Les objets de la Classe Image ont comme d'habitude des propriétés et des méthodes.
La méthode RotateFlip permet par exemple d'effectuer une rotation de l'image; quand on tape le code, VB donne automatiquement la liste des paramètres possible.
PictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipX)
La méthode Save sauvegarde l'image dans un fichier.
PictureBox1.Image.Save("c:\image.bmp")
Bien Noter que le nom de l'extension suffit à imposer le format de l'image sur le disque.
On peut charger une image .GIF puis la sauvegarder en .BMP
Il y a bien d'autres propriétés gérant les dimensions, la palette de l'image.
Il est possible de définir une couleur comme 'transparente': voir le page sur les boutons.
Charger une image à partir d'un fichier, mais sans 'bloquer' ce fichier.
On a vu qu'on peut 'charger' une image par PictureBox1.Image = Image.FromFile("vimage.gif")
L'inconvénient de cette méthode est que tant que le programme est ouvert, le fichier correspondant sur le disque est utilisé et par conséquence il est impossible de travailler dessus. (Impossible d'effacer le fichier par exemple!!)
Une méthode pour libérer le fichier est d'utiliser un Stream (Merci la Faq de Developpez.com)
'En haut du module
Imports System.IO
'
Créer le FileStream sur le fichier vimage.gif
Dim
MyStream As FileStream =
New FileStream("C:\vimage.gif”,
FileMode.Open)
'
affecter l'image à pictureBox1
pictureBox1.Image
= Image.FromStream(MyStream)
' libérer les
ressources
MyStream.Close
' supprimer le
fichier vimage.gif
File.Delete("C:\vimage.gif”)
Comment placer l'image dans le PictureBox?
La propriété 'Image' des contrôles:
De nombreux contrôles Windows Forms peuvent afficher des images. L'image affichée peut être une icône symbolisant la fonction du contrôle ou une image ; par exemple, l'image d'une disquette sur un bouton indique généralement une commande d'enregistrement. L'icône peut également être une image d'arrière-plan conférant au contrôle une certaine apparence.
Pour tous les contrôles affichant des images:
Lorsque le programme 'tourne' on peut aussi charger une Image. Le code affecte à la propriété Image ou BackgroundImage un objet de type System.Drawing.Image, en général, vous utiliserez la méthode FromFile de la classe Image pour charger une Image à partir d'un fichier.(Dans ce cas le fichier contenant l'image doit être fourni)
Exemple pour un bouton:
button1.Image =
Image.FromFile("C:\Graphics\MyBitmap.bmp")
' Aligne l'image.
button1.ImageAlign = ContentAlignment.MiddleRight
Exemple pour un label:
Dim Label1 As New
Label()
Dim Image1 As Image
Image1 = Image.FromFile("c:\\MyImage.bmp")
' modifier la taille du label pour qu'il affiche l'image.
Label1.Size = Image1.Size
' Mettre l'image dans le label.
Label1.Image = Image1
Si on renseigne la propriété Image, on ne peut pas utiliser en même temps la propriété ImageList décrite ci-dessous.
Le contrôle ImageList:
Il sert de containeur à images, c'est une collection d'images. les images qu'il contient seront utilisées par d'autres contrôles (PictureBox, Listview, TreeView, Button....)
Il n'est pas visible en exécution.
En conception il apparaît en bas sous la fenêtre. A droite figurent ses propriétés, en particulier, la collection Images qui contient les images et la propriété TransparentColor qui indique la couleur qui doit être transparent, c'est à dire non visible.
Il faut l'ajouter au formulaire, il apparaît en dessous.

Si je clique sur le bouton '...' en face de Images, l'éditeur de collections d'image s'ouvre.

On peut ajouter des images avec le bouton 'Ajouter'.
L'ImageList est ainsi chargé.
Ensuite pour utiliser une image de l'ImageList dans un autre contrôle, il faut modifier les propriétés de cet autre contrôle( un bouton par exemple):
La propriété ImageList du bouton doit contenir le nom du contrôle imageList et ImageIndex du bouton doit contenir l'index de l'image dans l'ImageList.
btOk.ImageList = imagelist1
btOk.ImageIndex = 2
Un ImageList peut aussi être chargé par code:
imageList1.Images.Add(Image.FromFile(NomImage))
On ajoute à la collection Images une image venant d'un fichier nommé NomImage.
On peut surcharger la méthode Add en fournissant en plus la couleur transparente.
imageList1.Images.Add(Image.FromFile(imageToLoad),
CouleurTransparente)
La taille des images peut aussi être modifiée par code:
imageList1.ImageSize = New Size(255, 255)
imageList1.TransparentColor = Color.White
|
|
|
|
|