Disegno, posizionamento e duplicazione delle immagini in GDI+

È possibile utilizzare la classe Bitmap per caricare e visualizzare immagini raster e utilizzare la classe Metafile per caricare e visualizzare immagini vettoriali. Le classi Bitmap e Metafile ereditano dalla classe Image. Per visualizzare un'immagine vettoriale, sono necessari un'istanza della classe Graphics e Metafile. Per visualizzare un'immagine raster, sono necessari un'istanza della classe Graphics e Bitmap. L'istanza della classe Graphics fornisce il metodo DrawImage che riceve Metafile o Bitmap come argomento.

Tipi di file e duplicazione

Nell'esempio di codice che segue viene illustrato come costruire un oggetto Bitmap dal file Climber.jpg e visualizzare la bitmap. Il punto di destinazione per l'angolo superiore sinistro dell'immagine, (10, 10), è specificato nel secondo e nel terzo parametro.

        Dim myBitmap As New Bitmap("Climber.jpg")
        myGraphics.DrawImage(myBitmap, 10, 10)

Bitmap myBitmap = new Bitmap("Climber.jpg");
myGraphics.DrawImage(myBitmap, 10, 10);

Di seguito viene mostrata l'immagine.

Esempio Image

È possibile costruire oggetti Bitmap utilizzando una vasta gamma di formati di file grafici: BMP, GIF, JPEG, EXIF, PNG, TIFF e ICON.

Nell'esempio di codice che segue viene illustrato come costruire oggetti Bitmap utilizzando svariati tipi di file e visualizzare le bitmap.

        Dim myBMP As New Bitmap("SpaceCadet.bmp")
        Dim myGIF As New Bitmap("Soda.gif")
        Dim myJPEG As New Bitmap("Mango.jpg")
        Dim myPNG As New Bitmap("Flowers.png")
        Dim myTIFF As New Bitmap("MS.tif")

        myGraphics.DrawImage(myBMP, 10, 10)
        myGraphics.DrawImage(myGIF, 220, 10)
        myGraphics.DrawImage(myJPEG, 280, 10)
        myGraphics.DrawImage(myPNG, 150, 200)
        myGraphics.DrawImage(myTIFF, 300, 200)

Bitmap myBMP = new Bitmap("SpaceCadet.bmp");
Bitmap myGIF = new Bitmap("Soda.gif");
Bitmap myJPEG = new Bitmap("Mango.jpg");
Bitmap myPNG = new Bitmap("Flowers.png");
Bitmap myTIFF = new Bitmap("MS.tif");

myGraphics.DrawImage(myBMP, 10, 10);
myGraphics.DrawImage(myGIF, 220, 10);
myGraphics.DrawImage(myJPEG, 280, 10);
myGraphics.DrawImage(myPNG, 150, 200);
myGraphics.DrawImage(myTIFF, 300, 200);

Nella classe Bitmap è disponibile il metodo Clone, che consente la creazione di una copia di un oggetto Bitmap esistente. Nel metodo Clone è presente un parametro relativo al rettangolo di origine, che consente di specificare la porzione della bitmap originale che si desidera copiare. Nell'esempio di codice che segue viene illustrato come creare un oggetto Bitmap tramite la duplicazione della metà superiore di un oggetto Bitmap esistente. Vengono quindi tracciate entrambe le immagini.

        Dim originalBitmap As New Bitmap("Spiral.png")
        Dim sourceRectangle As New Rectangle(0, 0, originalBitmap.Width, _
           CType(originalBitmap.Height / 2, Integer))

        Dim secondBitmap As Bitmap = originalBitmap.Clone(sourceRectangle, _
           PixelFormat.DontCare)

        myGraphics.DrawImage(originalBitmap, 10, 10)
        myGraphics.DrawImage(secondBitmap, 150, 10)

Bitmap originalBitmap = new Bitmap("Spiral.png");
Rectangle sourceRectangle = new Rectangle(0, 0, originalBitmap.Width,
   originalBitmap.Height / 2);

Bitmap secondBitmap = originalBitmap.Clone(sourceRectangle,
   PixelFormat.DontCare);

myGraphics.DrawImage(originalBitmap, 10, 10);
myGraphics.DrawImage(secondBitmap, 150, 10);

Di seguito vengono mostrate le due immagini.

Ritaglio

Vedere anche

Attività

Procedura: creare oggetti Graphics per disegnare

Altre risorse

Immagini, bitmap e metafile

Utilizzo di immagini, bitmap, icone e metafile