Corte e dimensionamento de imagens GDI+

A classe Graphics fornece vários métodosDrawImage , alguns dos quais têm parâmetros de retângulo de origem e destino que você pode usar para cortar e dimensionar imagens.

O exemplo a seguir constrói um objeto Image do arquivo Apple.gif. O código desenha a imagem inteira de maçã em seu tamanho original. Em seguida, o código chama o método DrawImage de um objeto Graphics para desenhar uma parte da imagem da maçã em um retângulo de destino maior que a imagem de maçã original.

O método DrawImage determina qual parte da maçã desenhar examinando o retângulo de origem, que é especificado pelo terceiro, quarto, quinto e sexto argumentos. Nesse caso, a maçã é cortada para 75% de sua largura e 75 por cento de sua altura.

O método DrawImage determina onde desenhar a maçã cortada e o tamanho da maçã cortada olhando para o retângulo de destino, que é especificado pelo segundo argumento. Nesse caso, o retângulo de destino é 30% a mais largo e 30 por cento mais alto que a imagem original.

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

A ilustração a seguir mostra a maçã original e a maçã dimensionada e cortada.

ilustração mostrando uma maçã, em seguida, uma parte ampliada da maçã original