次の方法で共有


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);

次の図は、元のリンゴと、拡大され、トリミングされたリンゴを示しています。

図は、リンゴ、その後、元のリンゴの拡大部分を示しています