Programmation Visual Basic .NET/GDI+

Un livre de Wikilivres.
Aller à : navigation, rechercher
Visual Basic .NET
Visual Basic .NET
Sommaire
Bases du langage
Opérateurs
Programmation orientée objet
Structure de données avancée
Modifier ce modèle

Objet graphique[modifier | modifier le wikicode]

Un objet System.Drawing.Graphics représente une surface de dessin.

Pour obtenir un tel objet dans un contrôle PictureBox, utiliser la propriété .Graphics du paramètre PaintEventArgs dans l'évènement Paint() de la PictureBox.

    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        Using g as Graphics = e.Graphics
            ' g permet ensuite de dessiner
        End Using
    End Sub

Pour charger une image puis dessiner dessus, utiliser Graphics.FromImage() :

    Using MonImage As Bitmap = Bitmap.FromFile("C:\Temp\MonImage.BMP")
        Using g as Graphics = Graphics.FromImage(MonImage)
            ' g permet ensuite de dessiner
        End Using
    End Using

La méthode .Save() peut être utilisée pour sauvegarder le bitmap dans un fichier ou un Stream (flux). Remarque : Bitmap conserve le fichier image ouvert, il faut donc copier le fichier dans un MemoryStream pour ne pas avoir cette liaison.

Méthodes de dessin[modifier | modifier le wikicode]

des méthodes comme Graphics.DrawLine et Graphics.DrawString pour tracer lignes et textes.

Mesures[modifier | modifier le wikicode]

Graphics.MeasureString permet de mesurer la hauteur ou largeur d'une partie de texte, affichable avec .DrawString.

Échelle[modifier | modifier le wikicode]

Échelle simple[modifier | modifier le wikicode]

Utiliser la propriété Graphics.PageUnit comme une façon simple de changer les coordonnées du système.

Coordonnées des systèmes World, Page et Device[modifier | modifier le wikicode]

Les coordonnées d'un système VB.NET font partie de celles d'un World. Par défaut ces unités sont en pixels, mais on peut les redéfinir.

La transformation de World convertit ses coordonnées en celles d'une Page. Ces dernières expriment la distance visible sur le moniteur ou imprimée sur du papier.

La transformation de Page convertit ses coordonnées en celles d'une Device. Cela permet à l'image de rester la même quel que soit le périphérique sur laquelle elle est envoyée.

Il est possible de définir une matrice de traduction pour convertir les points spécifié dans le résultat final. Cette transformation peut traduire (offset), échelle, rotation, inclinaison dans le résultat, elle est appelée transformation affine.

Convertir depuis Twips[modifier | modifier le wikicode]

Les précédentes versions de Visual Basic utilisaient Twips comme unité de mesure : 1,440 Twips = 1 pouce. Toutefois, VB.NET utilise plutôt les pixels. Pour convertir les Twips en pixels dans un objet graphique, il faut connaitre :

  • XTwips qui renvoie la mesure en Twips.
  • XPixels qui renvoie celle en pixels.

Si g est l'objet Graphics approprié :

    XPixels = XTwips * g.DpiX / 1440

Utiliser g.DpiY pour calcuer les coordonnées de l'axe des Y.