Condividi tramite


Procedura: ritagliare e adattare immagini

Aggiornamento: novembre 2007

Nella classe Graphics sono disponibili numerosi metodi DrawImage, alcuni dei quali dispongono di parametri dei rettangoli di origine e di destinazione utilizzabili per ritagliare e adattare le immagini.

Esempio

Nell'esempio che segue viene creato un oggetto Image a partire dal file su disco Apple.gif. L'intera immagine della mela viene disegnata con le dimensioni originali. Il codice chiama quindi il metodo DrawImage di un oggetto Graphics per disegnare parte dell'immagine della mela in un rettangolo di destinazione con dimensioni superiori a quelle dell'immagine originale.

Il metodo DrawImage consente di determinare quale parte della mela disegnare, tramite un esame del rettangolo di origine, specificato dal terzo, quarto, quinto e sesto argomento. In questo caso la mela verrà ridotta al 75% della sua larghezza e altezza.

Il metodo DrawImage consente di determinare dove e con quali dimensioni disegnare la mela ritagliata, tramite un esame del rettangolo di destinazione, specificato dal secondo argomento. In questo caso il rettangolo di destinazione sarà più alto e più largo del 30% rispetto all'originale.

Nell'illustrazione che segue si visibili l'immagine originale e l'immagine adattata e ritagliata.

Ritaglio e adattamento

Dim image As New Bitmap("Apple.gif")

' Draw the image unaltered with its upper-left corner at (0, 0).
e.Graphics.DrawImage(image, 0, 0)

' 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).
Dim width As Integer = image.Width
Dim height As Integer = image.Height
Dim destinationRect As New RectangleF( _
    150, _
    20, _
    1.3F * width, _
    1.3F * height)

' Draw a portion of the image. Scale that portion of the image
' so that it fills the destination rectangle.
Dim sourceRect As New RectangleF(0, 0, 0.75F * width, 0.75F * height)
e.Graphics.DrawImage( _
    image, _
    destinationRect, _
    sourceRect, _
    GraphicsUnit.Pixel)

Image image = new Bitmap("Apple.gif");

// Draw the image unaltered with its upper-left corner at (0, 0).
e.Graphics.DrawImage(image, 0, 0);

// 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).
int width = image.Width;
int height = image.Height;
RectangleF destinationRect = new RectangleF(
    150,
    20,
    1.3f * width,
    1.3f * height);

// Draw a portion of the image. Scale that portion of the image
// so that it fills the destination rectangle.
RectangleF sourceRect = new RectangleF(0, 0, .75f * width, .75f * height);
e.Graphics.DrawImage(
    image,
    destinationRect,
    sourceRect,
    GraphicsUnit.Pixel);

Compilazione del codice

L'esempio riportato in precedenza è stato creato per essere utilizzato con Windows Form e richiede PaintEventArgs e, un parametro del gestore eventi Paint. Sostituire Apple.gif con il nome e il percorso di un file di immagine valido per il sistema.

Vedere anche

Altre risorse

Immagini, bitmap e metafile

Utilizzo di immagini, bitmap, icone e metafile