GDI+ イメージのトリミングとスケーリング
Graphics クラスにはいくつかの DrawImage メソッドが用意されています。その一部には、イメージのトリミングとスケーリングに使用できるソースとコピー先の四角形パラメーターがあります。
次の例では、ファイル Apple.gifから Image オブジェクトを作成します。 このコードは、リンゴの画像全体を元のサイズで描画します。 次に、Graphics オブジェクトの DrawImage メソッドを呼び出して、Apple イメージの一部を、元の Apple イメージよりも大きい変換先の四角形に描画します。
DrawImage メソッドは、3 番目、4 番目、5 番目、および 6 番目の引数で指定されるソース四角形を調べることで、描画する Apple の部分を決定します。 この場合、リンゴはその幅の 75% と高さの 75% にトリミングされます。
DrawImage メソッドは、トリミングされたリンゴを描画する場所と、2 番目の引数で指定された変換先の四角形を調べることで、トリミングされたリンゴを作成する大きさを決定します。 この場合、変換先の四角形は、元の画像よりも 30% 広く、30% 高くなります。
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);
次の図は、元のリンゴと、拡大され、トリミングされたリンゴを示しています。