Condividi tramite


Ritaglio e ridimensionamento di immagini GDI+

La classeGraphicsfornisce diversi metodi DrawImage, alcuni dei quali hanno parametri rettangoli di origine e di destinazione che è possibile usare per ritagliare e ridimensionare le immagini.

Nell'esempio seguente viene creato un oggetto immaginedal file Apple.gif. Il codice disegna l'intera immagine apple nella dimensione originale. Il codice chiama quindi il metodo DrawImage di un oggettoGraphicsper disegnare una parte dell'immagine apple in un rettangolo di destinazione più grande dell'immagine apple originale.

Il metodo DrawImage determina quale parte della mela disegnare esaminando il rettangolo di origine, specificato dal terzo, quarto, quinto e sesto argomento. In questo caso, la mela viene ritagliata al 75% della larghezza e al 75% dell'altezza.

Il metodo DrawImage determina dove disegnare la mela ritagliata e la grandezza della mela ritagliata esaminando il rettangolo di destinazione, specificato dal secondo argomento. In questo caso, il rettangolo di destinazione è più ampio del 30% e il 30% più alto rispetto all'immagine originale.

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

La figura seguente mostra la mela originale e la mela ridimensionata, ritagliata.

illustrazione che mostra una mela, quindi una parte ingrandita della mela originale