Rognage et mise à l’échelle d’images GDI+
La classe Graphics fournit plusieurs méthodes DrawImage , dont certaines ont des paramètres de rectangle source et de destination que vous pouvez utiliser pour rogner et mettre à l’échelle des images.
L’exemple suivant construit un objet Image à partir du fichier Apple.gif. Le code dessine l’ensemble de l’image apple dans sa taille d’origine. Le code appelle ensuite la méthode DrawImage d’un objet Graphics pour dessiner une partie de l’image apple dans un rectangle de destination qui est plus grand que l’image apple d’origine.
La méthode DrawImage 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 méthode DrawImage 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 30 % plus large et 30 % plus haut que l’image d’origine.
Image image(L"Apple.gif");
UINT width = image.GetWidth();
UINT height = image.GetHeight();
// 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).
Rect destinationRect(150, 20, 1.3 * width, 1.3 * height);
// Draw the image unaltered with its upper-left corner at (0, 0).
graphics.DrawImage(&image, 0, 0);
// Draw a portion of the image. Scale that portion of the image
// so that it fills the destination rectangle.
graphics.DrawImage(
&image,
destinationRect,
0, 0, // upper-left corner of source rectangle
0.75 * width, // width of source rectangle
0.75 * height, // height of source rectangle
UnitPixel);
L’illustration suivante montre la pomme d’origine et la pomme mise à l’échelle et rognée.