Partager via


Guide pratique pour rogner et mettre à l’échelle des images

La Graphics classe fournit plusieurs DrawImage méthodes, dont certaines ont des paramètres de rectangle source et de destination que vous pouvez utiliser pour rogner et mettre à l’échelle des images.

Exemple :

L’exemple suivant construit un Image objet à partir du fichier disque Apple.gif. Le code dessine toute l’image apple dans sa taille d’origine. Le code appelle ensuite la DrawImage méthode d’un Graphics objet pour dessiner une partie de l’image apple dans un rectangle de destination supérieur à l’image apple d’origine.

La DrawImage méthode détermine la partie de la pomme à dessiner en examinant le rectangle source, qui est spécifié par les troisième, quatrième, cinquième et sixième arguments. Dans ce cas, la pomme est rognée à 75 pour cent de sa largeur et 75 pour cent de sa hauteur.

La DrawImage méthode détermine où dessiner la pomme rognée et la taille de la pomme rognée en examinant le rectangle de destination, qui est spécifié par le deuxième argument. Dans ce cas, le rectangle de destination est de 30 % plus large et de 30 % plus haut que l’image d’origine.

L’illustration suivante montre la pomme d’origine et la pomme mise à l’échelle, rognée.

Capture d’écran d’une image d’origine et de la même image rognée.

Image image = new Bitmap("Apple.gif");

// Draw the image unaltered with its upper-left corner at (0, 0).
e.Graphics.DrawImage(image, 0, 0);

// Make the destination rectangle 30 percent wider and
// 30 percent taller than the original image.
// Put the upper-left corner of the destination
// rectangle at (150, 20).
int width = image.Width;
int height = image.Height;
RectangleF destinationRect = new RectangleF(
    150,
    20,
    1.3f * width,
    1.3f * height);

// Draw a portion of the image. Scale that portion of the image
// so that it fills the destination rectangle.
RectangleF sourceRect = new RectangleF(0, 0, .75f * width, .75f * height);
e.Graphics.DrawImage(
    image,
    destinationRect,
    sourceRect,
    GraphicsUnit.Pixel);
Dim image As New Bitmap("Apple.gif")

' Draw the image unaltered with its upper-left corner at (0, 0).
e.Graphics.DrawImage(image, 0, 0)

' Make the destination rectangle 30 percent wider and
' 30 percent taller than the original image.
' Put the upper-left corner of the destination
' rectangle at (150, 20).
Dim width As Integer = image.Width
Dim height As Integer = image.Height
Dim destinationRect As New RectangleF( _
    150, _
    20, _
    1.3F * width, _
    1.3F * height)

' Draw a portion of the image. Scale that portion of the image
' so that it fills the destination rectangle.
Dim sourceRect As New RectangleF(0, 0, 0.75F * width, 0.75F * height)
e.Graphics.DrawImage( _
    image, _
    destinationRect, _
    sourceRect, _
    GraphicsUnit.Pixel)

Compilation du code

L’exemple précédent est conçu pour être utilisé avec Windows Forms et nécessite PaintEventArgse, qui est un paramètre du gestionnaire d’événements Paint. Veillez à remplacer Apple.gif par un nom de fichier image et un chemin d’accès valides sur votre système.

Voir aussi