Zuschneiden und Skalieren von GDI+-Bildern
Die Graphics-Klasse stellt mehrere DrawImage-Methoden bereit, von denen einige Quell- und Zielrechteckparameter aufweisen, die Sie zum Zuschneiden und Skalieren von Bildern verwenden können.
Im folgenden Beispiel wird ein Image-Objekt aus der Datei Apple.gif erstellt. Der Code zeichnet das gesamte Bild des Apfels in der ursprünglichen Größe. Der Code ruft dann die DrawImage-Methode eines Graphics-Objekts auf, um einen Teil des Apfelbilds in einem Zielrechteck zu zeichnen, das größer als das ursprüngliche Apfelbild ist.
Die DrawImage-Methode bestimmt, welcher Teil des Apfels gezeichnet werden soll, indem das Quellrechteck betrachtet wird, das durch das dritte, vierte, fünfte und sechste Argument angegeben wird. In diesem Fall wird der Apfel auf 75 % seiner Breite und 75 % seiner Höhe zugeschnitten.
Die DrawImage-Methode bestimmt, wo der zugeschnittene Apfel gezeichnet werden soll und wie groß der abgeschnittene Apfel ist, indem das Zielrechteck betrachtet wird, das durch das zweite Argument angegeben wird. In diesem Fall ist das Zielrechteck 30 % breiter und 30 % höher als das ursprüngliche Bild.
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);
In der folgenden Abbildung werden der ursprüngliche Apfel und der skalierte, zugeschnittene Apfel gezeigt.