Condividi tramite


Ritaglio e ridimensionamento di immagini GDI+

La classe Graphics fornisce diversi metodi DrawImage , alcuni dei quali dispongono di parametri del rettangolo di origine e di destinazione che è possibile usare per ritagliare e ridimensionare le immagini.

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

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

Il metodo DrawImage determina dove disegnare la mela ritagliata e la quantità di dimensioni per rendere la 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 dell'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