Procedura: ritagliare e adattare immaginiHow to: Crop and Scale Images

Il Graphics classe sono disponibili numerosi DrawImage metodi, alcuni dei quali dispongono di parametri dei rettangoli di origine e di destinazione che è possibile usare per ritagliare e adattare le immagini.The Graphics class provides several DrawImage methods, some of which have source and destination rectangle parameters that you can use to crop and scale images.

EsempioExample

Nell'esempio seguente viene costruito un Image oggetto dal file di disco Apple.The following example constructs an Image object from the disk file Apple.gif. Il codice disegna l'immagine intera apple nelle dimensioni originali.The code draws the entire apple image in its original size. Il codice chiama quindi il DrawImage metodo di un Graphics oggetto su cui disegnare una parte dell'immagine di apple in un rettangolo di destinazione che è maggiore dell'immagine originale.The code then calls the DrawImage method of a Graphics object to draw a portion of the apple image in a destination rectangle that is larger than the original apple image.

Il DrawImage metodo determina la porzione di apple per disegnare esaminando il rettangolo di origine, specificato dal terzo, quarto, quinto e sesto argomento.The DrawImage method determines which portion of the apple to draw by looking at the source rectangle, which is specified by the third, fourth, fifth, and sixth arguments. In questo caso, la mela verrà ridotta al 75% della larghezza e il 75% dell'altezza.In this case, the apple is cropped to 75 percent of its width and 75 percent of its height.

Il DrawImage metodo consente di determinare la posizione in cui disegnare la mela e quali dimensioni ritagliata esaminando il rettangolo di destinazione, specificato dal secondo argomento.The DrawImage method determines where to draw the cropped apple and how big to make the cropped apple by looking at the destination rectangle, which is specified by the second argument. In questo caso, il rettangolo di destinazione è maggiore del 30% e il 30% più alto rispetto all'originale.In this case, the destination rectangle is 30 percent wider and 30 percent taller than the original image.

Nella figura seguente viene illustrato l'originale e l'immagine adattata, ritagliata.The following illustration shows the original apple and the scaled, cropped apple.

Ritaglio e adattamentoCrop & Scale

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

Compilazione del codiceCompiling the Code

L'esempio precedente è progettato per l'uso con Windows Form e richiede PaintEventArgs e, un parametro del gestore eventi Paint.The preceding example is designed for use with Windows Forms, and it requires PaintEventArgs e, which is a parameter of the Paint event handler. Assicurarsi di sostituire Apple.gif con un nome di file di immagine e un percorso valido per il sistema.Make sure to replace Apple.gif with an image file name and path that are valid on your system.

Vedere ancheSee Also

Immagini, bitmap e metafileImages, Bitmaps, and Metafiles
Utilizzo di immagini, bitmap, icone e metafileWorking with Images, Bitmaps, Icons, and Metafiles