Graphics.DrawImage Metod

Definition

Ritar angivna Image på den angivna platsen och med den ursprungliga storleken.

Överlagringar

Name Description
DrawImage(Image, Single, Single, RectangleF, GraphicsUnit)

Ritar en del av en bild på en angiven plats.

DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, IntPtr)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, IntPtr)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Int32, Int32, Int32, Int32)

Ritar angivna Image på den angivna platsen och med den angivna storleken.

DrawImage(Image, Single, Single, Single, Single)

Ritar angivna Image på den angivna platsen och med den angivna storleken.

DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Point)

Ritar den angivna Image, med dess ursprungliga fysiska storlek, på den angivna platsen.

DrawImage(Image, Point[])

Ritar angivet Image på den angivna platsen och med den angivna formen och storleken.

DrawImage(Image, PointF)

Ritar den angivna Image, med dess ursprungliga fysiska storlek, på den angivna platsen.

DrawImage(Image, PointF[])

Ritar angivet Image på den angivna platsen och med den angivna formen och storleken.

DrawImage(Image, Rectangle)

Ritar angivna Image på den angivna platsen och med den angivna storleken.

DrawImage(Image, RectangleF)

Ritar angivna Image på den angivna platsen och med den angivna storleken.

DrawImage(Image, Int32, Int32)

Ritar den angivna bilden med den ursprungliga fysiska storleken på den plats som anges av ett koordinatpar.

DrawImage(Image, Int32, Int32, Rectangle, GraphicsUnit)

Ritar en del av en bild på en angiven plats.

DrawImage(Image, Point[], Rectangle, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, PointF[], RectangleF, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Rectangle, Rectangle, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, RectangleF, RectangleF, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

DrawImage(Image, Single, Single)

Ritar den angivna Image, med dess ursprungliga fysiska storlek, på den angivna platsen.

DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes)

Ritar den angivna delen av den angivna Image på den angivna platsen.

DrawImage(Image, Single, Single, RectangleF, GraphicsUnit)

Ritar en del av en bild på en angiven plats.

public:
 void DrawImage(System::Drawing::Image ^ image, float x, float y, System::Drawing::RectangleF srcRect, System::Drawing::GraphicsUnit srcUnit);
public void DrawImage(System.Drawing.Image image, float x, float y, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit);
member this.DrawImage : System.Drawing.Image * single * single * System.Drawing.RectangleF * System.Drawing.GraphicsUnit -> unit
Public Sub DrawImage (image As Image, x As Single, y As Single, srcRect As RectangleF, srcUnit As GraphicsUnit)

Parametrar

image
Image

Image att rita.

x
Single

X-koordinaten för det övre vänstra hörnet av den ritade bilden.

y
Single

y-koordinaten i det övre vänstra hörnet av den ritade bilden.

srcRect
RectangleF

RectangleF struktur som anger den del av som Image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar koordinaterna där bildens övre vänstra hörn ska ritas.

  • Skapar en källrektangel som en del av avbildningen ska extraheras från.

  • Anger måttenheten för källrektangeln till pixlar.

  • Ritar bilden till skärmen.

Storleken på källrektangeln avgör vilken del av den oskalade originalbilden som ritas till skärmen.

public:
   void DrawImage2FloatRectF( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create coordinates for upper-left corner of image.
      float x = 100.0F;
      float y = 100.0F;

      // Create rectangle for source image.
      RectangleF srcRect = RectangleF(50.0F,50.0F,150.0F,150.0F);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, x, y, srcRect, units );
   }
public void DrawImage2FloatRectF(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create coordinates for upper-left corner of image.
    float x = 100.0F;
    float y = 100.0F;
             
    // Create rectangle for source image.
    RectangleF srcRect = new RectangleF(50.0F, 50.0F, 150.0F, 150.0F);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y, srcRect, units);
}
Public Sub DrawImage2FloatRectF(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create coordinates for upper-left corner of image.
    Dim x As Single = 100.0F
    Dim y As Single = 100.0F

    ' Create rectangle for source image.
    Dim srcRect As New RectangleF(50.0F, 50.0F, 150.0F, 150.0F)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y, srcRect, units)
End Sub

Kommentarer

En Image lagrar ett värde för pixelbredd och ett värde för vågrät upplösning (punkter per tum). Den fysiska bredden, mätt i tum, för en bild är bildpunktsbredden dividerad med den vågräta upplösningen. Till exempel har en bild med en pixelbredd på 360 och en vågrät upplösning på 72 punkter per tum en fysisk bredd på 5 tum. Liknande kommentarer gäller pixelhöjd och fysisk höjd.

Den här metoden ritar en del av en bild med hjälp av dess fysiska storlek, så att bilddelen har rätt storlek i tum oavsett upplösning (punkter per tum) på visningsenheten. Anta till exempel att en bilddel har en pixelbredd på 216 och en vågrät upplösning på 72 punkter per tum. Om du anropar den här metoden för att rita den bilddelen på en enhet som har en upplösning på 96 punkter per tum blir bildpunktsbredden för den renderade bilddelen (216/72)*96 = 288.

Se även

Gäller för

DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, IntPtr)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttrs, System::Drawing::Graphics::DrawImageAbort ^ callback, IntPtr callbackData);
public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs, System.Drawing.Graphics.DrawImageAbort callback, IntPtr callbackData);
member this.DrawImage : System.Drawing.Image * System.Drawing.Rectangle * single * single * single * single * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes * System.Drawing.Graphics.DrawImageAbort * nativeint -> unit
Public Sub DrawImage (image As Image, destRect As Rectangle, srcX As Single, srcY As Single, srcWidth As Single, srcHeight As Single, srcUnit As GraphicsUnit, imageAttrs As ImageAttributes, callback As Graphics.DrawImageAbort, callbackData As IntPtr)

Parametrar

image
Image

Image att rita.

destRect
Rectangle

Rectangle struktur som anger platsen och storleken på den ritade bilden. Bilden skalas för att passa rektangeln.

srcX
Single

X-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcY
Single

y-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcWidth
Single

Bredd på den del av källbilden som ska ritas.

srcHeight
Single

Höjden på den del av källbilden som ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används för att fastställa källrektangeln.

imageAttrs
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

callback
Graphics.DrawImageAbort

Graphics.DrawImageAbort ombud som anger en metod som ska anropas under ritningen av bilden. Den här metoden anropas ofta för att kontrollera om metoden ska stoppas DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, IntPtr) enligt programdefinierade kriterier.

callbackData
IntPtr

nativeint

Värde som anger ytterligare data som ombudet Graphics.DrawImageAbort ska använda när du kontrollerar om metoden ska stoppas DrawImage .

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden definierar först en motringningsmetod för ombudet Graphics.DrawImageAbort . Definitionen är förenklad och testar bara om metoden anropar den DrawImage med en null-parameter callBackData . Huvudtexten i exemplet utför följande åtgärder:

  • Skapar en instans av Graphics.DrawImageAbort återanropsmetoden.

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar en målrektangel där bilden ska ritas.

  • Skapar en källrektangel för att välja den del av bilden som ska ritas.

  • Anger grafikritningsenheten till pixel.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare en målrektangel där du kan rita en justerad bild.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För den ursprungliga, ojusterade målrektangeln letar positionen upp bilden på skärmen och storleken på källrektangeln och målrektangelns storlek och form avgör skalningen av den ritade bilden.

Eftersom det här exemplet använder en överlagring som skickar en callBackData parameter returnerar falsemotringningen Graphics.DrawImageAbortDrawImage , vilket gör att metoden fortsätter och exemplet drar den justerade bilden till skärmen.

   // Define DrawImageAbort callback method.
private:
   bool DrawImageCallback8( IntPtr callBackData )
   {
      // Test for call that passes callBackData parameter.
      if ( callBackData == IntPtr::Zero )
      {
         
         // If no callBackData passed, abort DrawImage method.
         return true;
      }
      else
      {
         
         // If callBackData passed, continue DrawImage method.
         return false;
      }
   }

public:
   void DrawImageRect4FloatAttribAbortData( PaintEventArgs^ e )
   {
      // Create callback method.
      Graphics::DrawImageAbort^ imageCallback = gcnew Graphics::DrawImageAbort( this, &Form1::DrawImageCallback8 );
      IntPtr imageCallbackData = IntPtr(1);

      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create rectangle for displaying original image.
      Rectangle destRect1 = Rectangle(100,25,450,150);

      // Create coordinates of rectangle for source image.
      float x = 50.0F;
      float y = 50.0F;
      float width = 150.0F;
      float height = 150.0F;
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw original image to screen.
      e->Graphics->DrawImage( newImage, destRect1, x, y, width, height, units );

      // Create rectangle for adjusted image.
      Rectangle destRect2 = Rectangle(100,175,450,150);

      // Create image attributes and set large gamma.
      ImageAttributes^ imageAttr = gcnew ImageAttributes;
      imageAttr->SetGamma( 4.0F );

      // Draw adjusted image to screen.
      try
      {
         // Draw adjusted image to screen.
         e->Graphics->DrawImage( newImage, destRect2, x, y, width, height, units, imageAttr, imageCallback, imageCallbackData );
      }
      catch ( Exception^ ex ) 
      {
         e->Graphics->DrawString( ex->ToString(), gcnew System::Drawing::Font( "Arial",8 ), Brushes::Black, PointF(0,0) );
      }
   }

// Define DrawImageAbort callback method.
private bool DrawImageCallback8(IntPtr callBackData)
{
             
    // Test for call that passes callBackData parameter.
    if(callBackData==IntPtr.Zero)
    {
             
        // If no callBackData passed, abort DrawImage method.
        return true;
    }
    else
    {
             
        // If callBackData passed, continue DrawImage method.
        return false;
    }
}
public void DrawImageRect4FloatAttribAbortData(PaintEventArgs e)
{
             
    // Create callback method.
    Graphics.DrawImageAbort imageCallback
        = new Graphics.DrawImageAbort(DrawImageCallback8);
    IntPtr imageCallbackData = new IntPtr(1);
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying original image.
    Rectangle destRect1 = new Rectangle(100, 25, 450, 150);
             
    // Create coordinates of rectangle for source image.
    float x = 50.0F;
    float y = 50.0F;
    float width = 150.0F;
    float height = 150.0F;
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, height, units);
             
    // Create rectangle for adjusted image.
    Rectangle destRect2 = new Rectangle(100, 175, 450, 150);
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
             
    // Draw adjusted image to screen.
    try
    {
        checked
        {
             
            // Draw adjusted image to screen.
            e.Graphics.DrawImage(
                newImage,
                destRect2,
                x, y,
                width, height,
                units,
                imageAttr,
                imageCallback,
                imageCallbackData);
        }
    }
    catch (Exception ex)
    {
        e.Graphics.DrawString(
            ex.ToString(),
            new Font("Arial", 8),
            Brushes.Black,
            new PointF(0, 0));
    }
}
Private Function DrawImageCallback8(ByVal callBackData As IntPtr) As Boolean

    ' Test for call that passes callBackData parameter.
    If callBackData.Equals(IntPtr.Zero) Then

        ' If no callBackData passed, abort DrawImage method.
        Return True
    Else

        ' If callBackData passed, continue DrawImage method.
        Return False
    End If
End Function
Public Sub DrawImageRect4FloatAttribAbortData(ByVal e As PaintEventArgs)

    ' Create callback method.
    Dim imageCallback As New _
    Graphics.DrawImageAbort(AddressOf DrawImageCallback8)
    Dim imageCallbackData As New IntPtr(1)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying original image.
    Dim destRect1 As New Rectangle(100, 25, 450, 150)

    ' Create coordinates of rectangle for source image.
    Dim x As Single = 50.0F
    Dim y As Single = 50.0F
    Dim width As Single = 150.0F
    Dim height As Single = 150.0F
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, _
    height, units)

    ' Create rectangle for adjusted image.
    Dim destRect2 As New Rectangle(100, 175, 450, 150)

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)

    ' Draw adjusted image to screen.
    Try

        ' Draw adjusted image to screen.
        e.Graphics.DrawImage(newImage, destRect2, x, y, width, _
        height, units, imageAttr, imageCallback, imageCallbackData)
    Catch ex As Exception
        e.Graphics.DrawString(ex.ToString(), New Font("Arial", 8), _
        Brushes.Black, New PointF(0, 0))
    End Try
End Sub

Kommentarer

Parametrarna srcX, srcY, srcWidthoch srcHeight anger en rektangulär del av objektet som image ska ritas. Rektangeln är relativ till källbildens övre vänstra hörn. Den här delen skalas för att passa in i den rektangel som anges av parametern destRect .

Den här överlagringen med parametrarna callback och callbackData ger möjlighet att stoppa ritningen av en bild när den startar enligt kriterier och data som bestäms av programmet. Ett program kan till exempel börja rita en stor bild och användaren kan rulla bort bilden från skärmen, i så fall kan programmet stoppa ritningen.

Se även

Gäller för

DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, IntPtr)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttrs, System::Drawing::Graphics::DrawImageAbort ^ callback, IntPtr callbackData);
public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs, System.Drawing.Graphics.DrawImageAbort callback, IntPtr callbackData);
member this.DrawImage : System.Drawing.Image * System.Drawing.Rectangle * int * int * int * int * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes * System.Drawing.Graphics.DrawImageAbort * nativeint -> unit
Public Sub DrawImage (image As Image, destRect As Rectangle, srcX As Integer, srcY As Integer, srcWidth As Integer, srcHeight As Integer, srcUnit As GraphicsUnit, imageAttrs As ImageAttributes, callback As Graphics.DrawImageAbort, callbackData As IntPtr)

Parametrar

image
Image

Image att rita.

destRect
Rectangle

Rectangle struktur som anger platsen och storleken på den ritade bilden. Bilden skalas för att passa rektangeln.

srcX
Int32

X-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcY
Int32

y-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcWidth
Int32

Bredd på den del av källbilden som ska ritas.

srcHeight
Int32

Höjden på den del av källbilden som ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används för att fastställa källrektangeln.

imageAttrs
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

callback
Graphics.DrawImageAbort

Graphics.DrawImageAbort ombud som anger en metod som ska anropas under ritningen av bilden. Den här metoden anropas ofta för att kontrollera om metoden ska stoppas DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, IntPtr) enligt programdefinierade kriterier.

callbackData
IntPtr

nativeint

Värde som anger ytterligare data som ombudet Graphics.DrawImageAbort ska använda när du kontrollerar om metoden ska stoppas DrawImage .

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden definierar först en motringningsmetod för ombudet Graphics.DrawImageAbort . Definitionen är förenklad och testar bara om metoden anropar den DrawImage med en null-parameter callBackData . Huvudtexten i exemplet utför följande åtgärder:

  • Skapar en instans av Graphics.DrawImageAbort återanropsmetoden.

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar en målrektangel där bilden ska ritas.

  • Skapar en källrektangel för att välja den del av bilden som ska ritas.

  • Anger grafikritningsenheten till pixel.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare en målrektangel där du kan rita en justerad bild.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För den ursprungliga, ojusterade målrektangeln letar positionen upp bilden på skärmen och storleken på källrektangeln och målrektangelns storlek och form avgör skalningen av den ritade bilden.

Eftersom det här exemplet använder en överlagring som skickar en callBackData parameter returnerar falsemotringningen Graphics.DrawImageAbortDrawImage , vilket gör att metoden fortsätter och exemplet drar den justerade bilden till skärmen.

   // Define DrawImageAbort callback method.
private:
   bool DrawImageCallback6( IntPtr callBackData )
   {
      // Test for call that passes callBackData parameter.
      if ( callBackData == IntPtr::Zero )
      {
         // If no callBackData passed, abort DrawImage method.
         return true;
      }
      else
      {
         // If callBackData passed, continue DrawImage method.
         return false;
      }
   }

private:
   void DrawImageRect4IntAtrribAbortData( PaintEventArgs^ e )
   {
      // Create callback method.
      Graphics::DrawImageAbort^ imageCallback = gcnew Graphics::DrawImageAbort( this, &Form1::DrawImageCallback6 );
      IntPtr imageCallbackData = IntPtr(1);

      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create rectangle for displaying original image.
      Rectangle destRect1 = Rectangle(100,25,450,150);

      // Create coordinates of rectangle for source image.
      int x = 50;
      int y = 50;
      int width = 150;
      int height = 150;
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw original image to screen.
      e->Graphics->DrawImage( newImage, destRect1, x, y, width, height, units );

      // Create rectangle for adjusted image.
      Rectangle destRect2 = Rectangle(100,175,450,150);

      // Create image attributes and set large gamma.
      ImageAttributes^ imageAttr = gcnew ImageAttributes;
      imageAttr->SetGamma( 4.0F );
      try
      {
         // Draw adjusted image to screen.
         e->Graphics->DrawImage( newImage, destRect2, x, y, width, height, units, imageAttr, imageCallback, imageCallbackData );
      }
      catch ( Exception^ ex ) 
      {
         e->Graphics->DrawString( ex->ToString(), gcnew System::Drawing::Font( "Arial",8 ), Brushes::Black, PointF(0,0) );
      }
   }

// Define DrawImageAbort callback method.
private bool DrawImageCallback6(IntPtr callBackData)
{
             
    // Test for call that passes callBackData parameter.
    if(callBackData==IntPtr.Zero)
    {
             
        // If no callBackData passed, abort DrawImage method.
        return true;
    }
    else
    {
             
        // If callBackData passed, continue DrawImage method.
        return false;
    }
}
private void DrawImageRect4IntAtrribAbortData(PaintEventArgs e)
{
             
    // Create callback method.
    Graphics.DrawImageAbort imageCallback
        = new Graphics.DrawImageAbort(DrawImageCallback6);
    IntPtr imageCallbackData = new IntPtr(1);
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying original image.
    Rectangle destRect1 = new Rectangle(100, 25, 450, 150);
             
    // Create coordinates of rectangle for source image.
    int x = 50;
    int y = 50;
    int width = 150;
    int height = 150;
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, height, units);
             
    // Create rectangle for adjusted image.
    Rectangle destRect2 = new Rectangle(100, 175, 450, 150);
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
    try
    {
        checked
        {
             
            // Draw adjusted image to screen.
            e.Graphics.DrawImage(
                newImage,
                destRect2,
                x, y,
                width, height,
                units,
                imageAttr,
                imageCallback,
                imageCallbackData);
        }
    }
    catch (Exception ex)
    {
        e.Graphics.DrawString(
            ex.ToString(),
            new Font("Arial", 8),
            Brushes.Black,
            new PointF(0, 0));
    }
}
Private Function DrawImageCallback6(ByVal callBackData As IntPtr) As Boolean

    ' Test for call that passes callBackData parameter.
    If callBackData.Equals(IntPtr.Zero) Then

        ' If no callBackData passed, abort DrawImage method.
        Return True
    Else

        ' If callBackData passed, continue DrawImage method.
        Return False
    End If
End Function
Private Sub DrawImageRect4IntAtrribAbortData(ByVal e As PaintEventArgs)

    ' Create callback method.
    Dim imageCallback As New _
    Graphics.DrawImageAbort(AddressOf DrawImageCallback6)
    Dim imageCallbackData As New IntPtr(1)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying original image.
    Dim destRect1 As New Rectangle(100, 25, 450, 150)

    ' Create coordinates of rectangle for source image.
    Dim x As Integer = 50
    Dim y As Integer = 50
    Dim width As Integer = 150
    Dim height As Integer = 150
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, height, _
    units)

    ' Create rectangle for adjusted image.
    Dim destRect2 As New Rectangle(100, 175, 450, 150)

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)
    Try

        ' Draw adjusted image to screen.
        e.Graphics.DrawImage(newImage, destRect2, x, y, width, _
        height, units, imageAttr, imageCallback, imageCallbackData)
    Catch ex As Exception
        e.Graphics.DrawString(ex.ToString(), New Font("Arial", 8), _
        Brushes.Black, New PointF(0, 0))
    End Try
End Sub

Kommentarer

Parametrarna srcX, srcY, srcWidthoch srcHeight anger en rektangulär del av objektet som image ska ritas. Rektangeln är relativ till källbildens övre vänstra hörn. Den här delen skalas för att passa in i den rektangel som anges av parametern destRect .

Den här överlagringen med parametrarna callback och callbackData ger möjlighet att stoppa ritningen av en bild när den startar enligt kriterier och data som bestäms av programmet. Ett program kan till exempel börja rita en stor bild och användaren kan rulla bort bilden från skärmen, i så fall kan programmet stoppa ritningen.

Se även

Gäller för

DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttrs, System::Drawing::Graphics::DrawImageAbort ^ callback);
public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs, System.Drawing.Graphics.DrawImageAbort callback);
member this.DrawImage : System.Drawing.Image * System.Drawing.Rectangle * single * single * single * single * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes * System.Drawing.Graphics.DrawImageAbort -> unit
Public Sub DrawImage (image As Image, destRect As Rectangle, srcX As Single, srcY As Single, srcWidth As Single, srcHeight As Single, srcUnit As GraphicsUnit, imageAttrs As ImageAttributes, callback As Graphics.DrawImageAbort)

Parametrar

image
Image

Image att rita.

destRect
Rectangle

Rectangle struktur som anger platsen och storleken på den ritade bilden. Bilden skalas för att passa rektangeln.

srcX
Single

X-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcY
Single

y-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcWidth
Single

Bredd på den del av källbilden som ska ritas.

srcHeight
Single

Höjden på den del av källbilden som ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används för att fastställa källrektangeln.

imageAttrs
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

callback
Graphics.DrawImageAbort

Graphics.DrawImageAbort ombud som anger en metod som ska anropas under ritningen av bilden. Den här metoden anropas ofta för att kontrollera om metoden ska stoppas DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) enligt programdefinierade kriterier.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden definierar först en motringningsmetod för ombudet Graphics.DrawImageAbort . Definitionen är förenklad och testar bara om metoden anropar den DrawImage med en null-parameter callBackData . Huvudtexten i exemplet utför följande åtgärder:

  • Skapar en instans av Graphics.DrawImageAbort återanropsmetoden.

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar en målrektangel där bilden ska ritas.

  • Skapar en källrektangel för att välja den del av bilden som ska ritas.

  • Anger grafikritningsenheten till pixel.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare en målrektangel där du kan rita en justerad bild.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För den ursprungliga, ojusterade målrektangeln letar positionen upp bilden på skärmen och storleken på källrektangeln och målrektangelns storlek och form avgör skalningen av den ritade bilden.

Eftersom det här exemplet använder en överlagring som inte skickar en callBackData parameter returnerar truemotringningen Graphics.DrawImageAbortDrawImage , vilket gör att metoden slutar, och undantagshanteringskoden som ingår i exemplet skriver ut undantagstexten i stället för att rita bilden.

   // Define DrawImageAbort callback method.
private:
   bool DrawImageCallback7( IntPtr callBackData )
   {
      // Test for call that passes callBackData parameter.
      if ( callBackData == IntPtr::Zero )
      {
         // If no callBackData passed, abort DrawImage method.
         return true;
      }
      else
      {
         // If callBackData passed, continue DrawImage method.
         return false;
      }
   }

private:
   void DrawImageRect4FloatAttribAbort( PaintEventArgs^ e )
   {
      // Create callback method.
      Graphics::DrawImageAbort^ imageCallback = gcnew Graphics::DrawImageAbort( this, &Form1::DrawImageCallback7 );

      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create rectangle for displaying original image.
      Rectangle destRect1 = Rectangle(100,25,450,150);

      // Create coordinates of rectangle for source image.
      float x = 50.0F;
      float y = 50.0F;
      float width = 150.0F;
      float height = 150.0F;
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw original image to screen.
      e->Graphics->DrawImage( newImage, destRect1, x, y, width, height, units );

      // Create rectangle for adjusted image.
      Rectangle destRect2 = Rectangle(100,175,450,150);

      // Create image attributes and set large gamma.
      ImageAttributes^ imageAttr = gcnew ImageAttributes;
      imageAttr->SetGamma( 4.0F );
      try
      {
         // Draw adjusted image to screen.
         e->Graphics->DrawImage( newImage, destRect2, x, y, width, height, units, imageAttr, imageCallback );
      }
      catch ( Exception^ ex ) 
      {
         e->Graphics->DrawString( ex->ToString(), gcnew System::Drawing::Font( "Arial",8 ), Brushes::Black, PointF(0,0) );
      }
   }

// Define DrawImageAbort callback method.
private bool DrawImageCallback7(IntPtr callBackData)
{
             
    // Test for call that passes callBackData parameter.
    if(callBackData==IntPtr.Zero)
    {
             
        // If no callBackData passed, abort DrawImage method.
        return true;
    }
    else
    {
             
        // If callBackData passed, continue DrawImage method.
        return false;
    }
}
private void DrawImageRect4FloatAttribAbort(PaintEventArgs e)
{
             
    // Create callback method.
    Graphics.DrawImageAbort imageCallback
        = new Graphics.DrawImageAbort(DrawImageCallback7);
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying original image.
    Rectangle destRect1 = new Rectangle(100, 25, 450, 150);
             
    // Create coordinates of rectangle for source image.
    float x = 50.0F;
    float y = 50.0F;
    float width = 150.0F;
    float height = 150.0F;
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, height, units);
             
    // Create rectangle for adjusted image.
    Rectangle destRect2 = new Rectangle(100, 175, 450, 150);
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
    try
    {
        checked
        {
             
            // Draw adjusted image to screen.
            e.Graphics.DrawImage(
                newImage,
                destRect2,
                x, y,
                width, height,
                units,
                imageAttr,
                imageCallback);
        }
    }
    catch (Exception ex)
    {
        e.Graphics.DrawString(
            ex.ToString(),
            new Font("Arial", 8),
            Brushes.Black,
            new PointF(0, 0));
    }
}
Private Function DrawImageCallback7(ByVal callBackData As IntPtr) As Boolean

    ' Test for call that passes callBackData parameter.
    If callBackData.Equals(IntPtr.Zero) Then

        ' If no callBackData passed, abort DrawImage method.
        Return True
    Else

        ' If callBackData passed, continue DrawImage method.
        Return False
    End If
End Function
Private Sub DrawImageRect4FloatAttribAbort(ByVal e As PaintEventArgs)

    ' Create callback method.
    Dim imageCallback As New _
    Graphics.DrawImageAbort(AddressOf DrawImageCallback7)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying original image.
    Dim destRect1 As New Rectangle(100, 25, 450, 150)

    ' Create coordinates of rectangle for source image.
    Dim x As Single = 50.0F
    Dim y As Single = 50.0F
    Dim width As Single = 150.0F
    Dim height As Single = 150.0F
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, _
    height, units)

    ' Create rectangle for adjusted image.
    Dim destRect2 As New Rectangle(100, 175, 450, 150)

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)
    Try

        ' Draw adjusted image to screen.
        e.Graphics.DrawImage(newImage, destRect2, x, y, width, _
        height, units, imageAttr, imageCallback)
    Catch ex As Exception
        e.Graphics.DrawString(ex.ToString(), New Font("Arial", 8), _
        Brushes.Black, New PointF(0, 0))
    End Try
End Sub

Kommentarer

Parametrarna srcX, srcY, srcWidthoch srcHeight anger en rektangulär del av objektet som image ska ritas. Rektangeln är relativ till källbildens övre vänstra hörn. Den här delen skalas för att passa in i den rektangel som anges av parametern destRect .

Den här överlagringen med parametern callback ger möjlighet att stoppa ritningen av en bild när den startar enligt kriterier som bestäms av programmet. Ett program kan till exempel börja rita en stor bild och användaren kan rulla bort bilden från skärmen, i så fall kan programmet stoppa ritningen.

Se även

Gäller för

DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttr, System::Drawing::Graphics::DrawImageAbort ^ callback);
public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback);
member this.DrawImage : System.Drawing.Image * System.Drawing.Rectangle * int * int * int * int * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes * System.Drawing.Graphics.DrawImageAbort -> unit
Public Sub DrawImage (image As Image, destRect As Rectangle, srcX As Integer, srcY As Integer, srcWidth As Integer, srcHeight As Integer, srcUnit As GraphicsUnit, imageAttr As ImageAttributes, callback As Graphics.DrawImageAbort)

Parametrar

image
Image

Image att rita.

destRect
Rectangle

Rectangle struktur som anger platsen och storleken på den ritade bilden. Bilden skalas för att passa rektangeln.

srcX
Int32

X-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcY
Int32

y-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcWidth
Int32

Bredd på den del av källbilden som ska ritas.

srcHeight
Int32

Höjden på den del av källbilden som ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används för att fastställa källrektangeln.

imageAttr
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image.

callback
Graphics.DrawImageAbort

Graphics.DrawImageAbort ombud som anger en metod som ska anropas under ritningen av bilden. Den här metoden anropas ofta för att kontrollera om metoden ska stoppas DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) enligt programdefinierade kriterier.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden definierar först en motringningsmetod för ombudet Graphics.DrawImageAbort . Definitionen är förenklad och testar bara om metoden anropar den DrawImage med en null-parameter callBackData . Huvudtexten i exemplet utför följande åtgärder:

  • Skapar en instans av Graphics.DrawImageAbort återanropsmetoden.

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar en målrektangel där bilden ska ritas.

  • Skapar en källrektangel för att välja den del av bilden som ska ritas.

  • Anger grafikritningsenheten till pixel.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare en målrektangel där du kan rita en justerad bild.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För den ursprungliga, ojusterade målrektangeln letar positionen upp bilden på skärmen och storleken på källrektangeln och målrektangelns storlek och form avgör skalningen av den ritade bilden.

Eftersom det här exemplet använder en överlagring som inte skickar en callBackData parameter returnerar truemotringningen Graphics.DrawImageAbortDrawImage , vilket gör att metoden slutar, och undantagshanteringskoden som ingår i exemplet skriver ut undantagstexten i stället för att rita bilden.

   // Define DrawImageAbort callback method.
private:
   bool DrawImageCallback5( IntPtr callBackData )
   {
      // Test for call that passes callBackData parameter.
      if ( callBackData == IntPtr::Zero )
      {
         // If no callBackData passed, abort DrawImage method.
         return true;
      }
      else
      {
         // If callBackData passed, continue DrawImage method.
         return false;
      }
   }

private:
   void DrawImageRect4IntAtrribAbort( PaintEventArgs^ e )
   {
      // Create callback method.
      Graphics::DrawImageAbort^ imageCallback = gcnew Graphics::DrawImageAbort( this, &Form1::DrawImageCallback5 );

      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create rectangle for displaying original image.
      Rectangle destRect1 = Rectangle(100,25,450,150);

      // Create coordinates of rectangle for source image.
      int x = 50;
      int y = 50;
      int width = 150;
      int height = 150;
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw original image to screen.
      e->Graphics->DrawImage( newImage, destRect1, x, y, width, height, units );

      // Create rectangle for adjusted image.
      Rectangle destRect2 = Rectangle(100,175,450,150);

      // Create image attributes and set large gamma.
      ImageAttributes^ imageAttr = gcnew ImageAttributes;
      imageAttr->SetGamma( 4.0F );
      try
      {
         // Draw adjusted image to screen.
         e->Graphics->DrawImage( newImage, destRect2, x, y, width, height, units, imageAttr, imageCallback );
      }
      catch ( Exception^ ex ) 
      {
         e->Graphics->DrawString( ex->ToString(), gcnew System::Drawing::Font( "Arial",8 ), Brushes::Black, PointF(0,0) );
      }
   }

// Define DrawImageAbort callback method.
private bool DrawImageCallback5(IntPtr callBackData)
{
             
    // Test for call that passes callBackData parameter.
    if(callBackData==IntPtr.Zero)
    {
             
        // If no callBackData passed, abort DrawImage method.
        return true;
    }
    else
    {
             
        // If callBackData passed, continue DrawImage method.
        return false;
    }
}
private void DrawImageRect4IntAtrribAbort(PaintEventArgs e)
{
             
    // Create callback method.
    Graphics.DrawImageAbort imageCallback
        = new Graphics.DrawImageAbort(DrawImageCallback5);
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying original image.
    Rectangle destRect1 = new Rectangle(100, 25, 450, 150);
             
    // Create coordinates of rectangle for source image.
    int x = 50;
    int y = 50;
    int width = 150;
    int height = 150;
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, height, units);
             
    // Create rectangle for adjusted image.
    Rectangle destRect2 = new Rectangle(100, 175, 450, 150);
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
    try
    {
        checked
        {
             
            // Draw adjusted image to screen.
            e.Graphics.DrawImage(
                newImage,
                destRect2,
                x, y,
                width, height,
                units,
                imageAttr,
                imageCallback);
        }
    }
    catch (Exception ex)
    {
        e.Graphics.DrawString(
            ex.ToString(),
            new Font("Arial", 8),
            Brushes.Black,
            new PointF(0, 0));
    }
}
Private Function DrawImageCallback5(ByVal callBackData As IntPtr) As Boolean

    ' Test for call that passes callBackData parameter.
    If callBackData.Equals(IntPtr.Zero) Then

        ' If no callBackData passed, abort DrawImage method.
        Return True
    Else

        ' If callBackData passed, continue DrawImage method.
        Return False
    End If
End Function
Private Sub DrawImageRect4IntAtrribAbort(ByVal e As PaintEventArgs)

    ' Create callback method.
    Dim imageCallback As New _
    Graphics.DrawImageAbort(AddressOf DrawImageCallback5)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying original image.
    Dim destRect1 As New Rectangle(100, 25, 450, 150)

    ' Create coordinates of rectangle for source image.
    Dim x As Integer = 50
    Dim y As Integer = 50
    Dim width As Integer = 150
    Dim height As Integer = 150
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, height, _
    units)

    ' Create rectangle for adjusted image.
    Dim destRect2 As New Rectangle(100, 175, 450, 150)

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)
    Try

        ' Draw adjusted image to screen.
        e.Graphics.DrawImage(newImage, destRect2, x, y, width, _
        height, units, imageAttr, imageCallback)
    Catch ex As Exception
        e.Graphics.DrawString(ex.ToString(), New Font("Arial", 8), _
        Brushes.Black, New PointF(0, 0))
    End Try
End Sub

Kommentarer

Parametrarna srcX, srcY, srcWidthoch srcHeight anger en rektangulär del av objektet som image ska ritas. Rektangeln är relativ till källbildens övre vänstra hörn. Den här delen skalas för att passa in i den rektangel som anges av destRect objektet.

Den här överlagringen med parametern callback ger möjlighet att stoppa ritningen av en bild när den startar enligt kriterier som bestäms av programmet. Ett program kan till exempel börja rita en stor bild och användaren kan rulla bort bilden från skärmen, i så fall kan programmet stoppa ritningen.

Se även

Gäller för

DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttrs);
public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttrs);
member this.DrawImage : System.Drawing.Image * System.Drawing.Rectangle * single * single * single * single * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes -> unit
Public Sub DrawImage (image As Image, destRect As Rectangle, srcX As Single, srcY As Single, srcWidth As Single, srcHeight As Single, srcUnit As GraphicsUnit, imageAttrs As ImageAttributes)

Parametrar

image
Image

Image att rita.

destRect
Rectangle

Rectangle struktur som anger platsen och storleken på den ritade bilden. Bilden skalas för att passa rektangeln.

srcX
Single

X-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcY
Single

y-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcWidth
Single

Bredd på den del av källbilden som ska ritas.

srcHeight
Single

Höjden på den del av källbilden som ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används för att fastställa källrektangeln.

imageAttrs
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar en målrektangel där bilden ska ritas.

  • Skapar koordinaterna för en källrektangel som en del av bilden ska extraheras från.

  • Anger måttenheten för källrektangeln till pixlar.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare en rektangel där du kan rita en justerad bild.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För den ursprungliga, ojusterade målrektangeln letar positionen upp bilden på skärmen, och storleken på käll- och målrektanglarna avgör skalningen av den ritade bilden och storleken på källrektangeln avgör vilken del av den ursprungliga bilden som ritas till skärmen.

private:
   void DrawImageRect4FloatAttrib( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create rectangle for displaying original image.
      Rectangle destRect1 = Rectangle(100,25,450,150);

      // Create coordinates of rectangle for source image.
      float x = 50.0F;
      float y = 50.0F;
      float width = 150.0F;
      float height = 150.0F;
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw original image to screen.
      e->Graphics->DrawImage( newImage, destRect1, x, y, width, height, units );

      // Create rectangle for adjusted image.
      Rectangle destRect2 = Rectangle(100,175,450,150);

      // Create image attributes and set large gamma.
      ImageAttributes^ imageAttr = gcnew ImageAttributes;
      imageAttr->SetGamma( 4.0F );

      // Draw adjusted image to screen.
      e->Graphics->DrawImage( newImage, destRect2, x, y, width, height, units, imageAttr );
   }
private void DrawImageRect4FloatAttrib(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying original image.
    Rectangle destRect1 = new Rectangle(100, 25, 450, 150);
             
    // Create coordinates of rectangle for source image.
    float x = 50.0F;
    float y = 50.0F;
    float width = 150.0F;
    float height = 150.0F;
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, height, units);
             
    // Create rectangle for adjusted image.
    Rectangle destRect2 = new Rectangle(100, 175, 450, 150);
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
             
    // Draw adjusted image to screen.
    e.Graphics.DrawImage(newImage, destRect2, x, y, width, height, units, imageAttr);
}
Private Sub DrawImageRect4FloatAttrib(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying original image.
    Dim destRect1 As New Rectangle(100, 25, 450, 150)

    ' Create coordinates of rectangle for source image.
    Dim x As Single = 50.0F
    Dim y As Single = 50.0F
    Dim width As Single = 150.0F
    Dim height As Single = 150.0F
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, _
    height, units)

    ' Create rectangle for adjusted image.
    Dim destRect2 As New Rectangle(100, 175, 450, 150)

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)

    ' Draw adjusted image to screen.
    e.Graphics.DrawImage(newImage, destRect2, x, y, width, height, _
    units, imageAttr)
End Sub

Kommentarer

Parametrarna srcX, srcY, srcWidthoch srcHeight anger en rektangulär del av objektet som image ska ritas. Rektangeln är relativ till källbildens övre vänstra hörn. Den här delen skalas för att passa in i den rektangel som anges av parametern destRect .

Se även

Gäller för

DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttr);
public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr);
member this.DrawImage : System.Drawing.Image * System.Drawing.Rectangle * int * int * int * int * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes -> unit
Public Sub DrawImage (image As Image, destRect As Rectangle, srcX As Integer, srcY As Integer, srcWidth As Integer, srcHeight As Integer, srcUnit As GraphicsUnit, imageAttr As ImageAttributes)

Parametrar

image
Image

Image att rita.

destRect
Rectangle

Rectangle struktur som anger platsen och storleken på den ritade bilden. Bilden skalas för att passa rektangeln.

srcX
Int32

X-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcY
Int32

y-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcWidth
Int32

Bredd på den del av källbilden som ska ritas.

srcHeight
Int32

Höjden på den del av källbilden som ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används för att fastställa källrektangeln.

imageAttr
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar en målrektangel där bilden ska ritas.

  • Skapar koordinaterna för en källrektangel som en del av bilden ska extraheras från.

  • Anger måttenheten för källrektangeln till pixlar.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare en rektangel där du kan rita en justerad bild.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För den ursprungliga, ojusterade målrektangeln letar positionen upp bilden på skärmen, och storleken på käll- och målrektanglarna avgör skalningen av den ritade bilden och storleken på källrektangeln avgör vilken del av den ursprungliga bilden som ritas till skärmen.

void DrawImageRect4IntAtrrib( PaintEventArgs^ e )
{
   // Create image.
   Image^ newImage = Image::FromFile( "SampImag.jpg" );

   // Create rectangle for displaying original image.
   Rectangle destRect1 = Rectangle(100,25,450,150);

   // Create coordinates of rectangle for source image.
   int x = 50;
   int y = 50;
   int width = 150;
   int height = 150;
   GraphicsUnit units = GraphicsUnit::Pixel;

   // Draw original image to screen.
   e->Graphics->DrawImage( newImage, destRect1, x, y, width, height, units );

   // Create rectangle for adjusted image.
   Rectangle destRect2 = Rectangle(100,175,450,150);

   // Create image attributes and set large gamma.
   ImageAttributes^ imageAttr = gcnew ImageAttributes;
   imageAttr->SetGamma( 4.0F );

   // Draw adjusted image to screen.
   e->Graphics->DrawImage( newImage, destRect2, x, y, width, height, units, imageAttr );
}
private void DrawImageRect4IntAtrrib(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying original image.
    Rectangle destRect1 = new Rectangle(100, 25, 450, 150);
             
    // Create coordinates of rectangle for source image.
    int x = 50;
    int y = 50;
    int width = 150;
    int height = 150;
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, height, units);
             
    // Create rectangle for adjusted image.
    Rectangle destRect2 = new Rectangle(100, 175, 450, 150);
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
             
    // Draw adjusted image to screen.
    e.Graphics.DrawImage(newImage, destRect2, x, y, width, height, units, imageAttr);
}
Private Sub DrawImageRect4IntAtrrib(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying original image.
    Dim destRect1 As New Rectangle(100, 25, 450, 150)

    ' Create coordinates of rectangle for source image.
    Dim x As Integer = 50
    Dim y As Integer = 50
    Dim width As Integer = 150
    Dim height As Integer = 150
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destRect1, x, y, width, height, _
    units)

    ' Create rectangle for adjusted image.
    Dim destRect2 As New Rectangle(100, 175, 450, 150)

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)

    ' Draw adjusted image to screen.
    e.Graphics.DrawImage(newImage, destRect2, x, y, width, height, _
    units, imageAttr)
End Sub

Kommentarer

Parametrarna srcX, srcY, srcWidthoch srcHeight anger en rektangulär del av objektet som image ska ritas. Rektangeln är relativ till källbildens övre vänstra hörn. Den här delen skalas för att passa in i den rektangel som anges av parametern destRect .

Se även

Gäller för

DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System::Drawing::GraphicsUnit srcUnit);
public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, float srcX, float srcY, float srcWidth, float srcHeight, System.Drawing.GraphicsUnit srcUnit);
member this.DrawImage : System.Drawing.Image * System.Drawing.Rectangle * single * single * single * single * System.Drawing.GraphicsUnit -> unit
Public Sub DrawImage (image As Image, destRect As Rectangle, srcX As Single, srcY As Single, srcWidth As Single, srcHeight As Single, srcUnit As GraphicsUnit)

Parametrar

image
Image

Image att rita.

destRect
Rectangle

Rectangle struktur som anger platsen och storleken på den ritade bilden. Bilden skalas för att passa rektangeln.

srcX
Single

X-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcY
Single

y-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcWidth
Single

Bredd på den del av källbilden som ska ritas.

srcHeight
Single

Höjden på den del av källbilden som ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används för att fastställa källrektangeln.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar koordinaterna för en målrektangel där bilden ska ritas.

  • Skapar en källrektangel som en del av avbildningen ska extraheras från.

  • Anger måttenheten för källrektangeln till pixlar.

  • Ritar bilden till skärmen.

Målrektangelns position lokaliserar bilden på skärmen, storleken på käll- och målrektanglarna avgör skalningen av den ritade bilden och storleken på källrektangeln avgör vilken del av den ursprungliga bilden som ritas till skärmen.

private:
   void DrawImageRect4Float( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create rectangle for displaying image.
      Rectangle destRect = Rectangle(100,100,450,150);

      // Create coordinates of rectangle for source image.
      float x = 50.0F;
      float y = 50.0F;
      float width = 150.0F;
      float height = 150.0F;
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, destRect, x, y, width, height, units );
   }
private void DrawImageRect4Float(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying image.
    Rectangle destRect = new Rectangle(100, 100, 450, 150);
             
    // Create coordinates of rectangle for source image.
    float x = 50.0F;
    float y = 50.0F;
    float width = 150.0F;
    float height = 150.0F;
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect, x, y, width, height, units);
}
Private Sub DrawImageRect4Float(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying image.
    Dim destRect As New Rectangle(100, 100, 450, 150)

    ' Create coordinates of rectangle for source image.
    Dim x As Single = 50.0F
    Dim y As Single = 50.0F
    Dim width As Single = 150.0F
    Dim height As Single = 150.0F
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect, x, y, width, height, _
    units)
End Sub

Kommentarer

Parametrarna srcX, srcY, srcWidthoch srcHeight anger en rektangulär del av objektet som image ska ritas. Rektangeln är relativ till källbildens övre vänstra hörn. Den här delen skalas för att passa in i den rektangel som anges av parametern destRect .

Se även

Gäller för

DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System::Drawing::GraphicsUnit srcUnit);
public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, System.Drawing.GraphicsUnit srcUnit);
member this.DrawImage : System.Drawing.Image * System.Drawing.Rectangle * int * int * int * int * System.Drawing.GraphicsUnit -> unit
Public Sub DrawImage (image As Image, destRect As Rectangle, srcX As Integer, srcY As Integer, srcWidth As Integer, srcHeight As Integer, srcUnit As GraphicsUnit)

Parametrar

image
Image

Image att rita.

destRect
Rectangle

Rectangle struktur som anger platsen och storleken på den ritade bilden. Bilden skalas för att passa rektangeln.

srcX
Int32

X-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcY
Int32

y-koordinaten för det övre vänstra hörnet i den del av källbilden som ska ritas.

srcWidth
Int32

Bredd på den del av källbilden som ska ritas.

srcHeight
Int32

Höjden på den del av källbilden som ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används för att fastställa källrektangeln.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar en målrektangel där bilden ska ritas.

  • Skapar koordinaterna för en källrektangel som en del av bilden ska extraheras från.

  • Anger måttenheten för källrektangeln till pixlar.

  • Ritar bilden till skärmen.

Målrektangelns position lokaliserar bilden på skärmen, och storleken på käll- och målrektanglarna avgör skalningen av den ritade bilden, och storleken på källrektangeln avgör vilken del av den ursprungliga bilden som ritas till skärmen.

void DrawImageRect4Int( PaintEventArgs^ e )
{
   // Create image.
   Image^ newImage = Image::FromFile( "SampImag.jpg" );

   // Create rectangle for displaying image.
   Rectangle destRect = Rectangle(100,100,450,150);

   // Create coordinates of rectangle for source image.
   int x = 50;
   int y = 50;
   int width = 150;
   int height = 150;
   GraphicsUnit units = GraphicsUnit::Pixel;

   // Draw image to screen.
   e->Graphics->DrawImage( newImage, destRect, x, y, width, height, units );
}
private void DrawImageRect4Int(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying image.
    Rectangle destRect = new Rectangle(100, 100, 450, 150);
             
    // Create coordinates of rectangle for source image.
    int x = 50;
    int y = 50;
    int width = 150;
    int height = 150;
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect, x, y, width, height, units);
}
Private Sub DrawImageRect4Int(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying image.
    Dim destRect As New Rectangle(100, 100, 450, 150)

    ' Create coordinates of rectangle for source image.
    Dim x As Integer = 50
    Dim y As Integer = 50
    Dim width As Integer = 150
    Dim height As Integer = 150
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect, x, y, width, height, _
    units)
End Sub

Kommentarer

Parametrarna srcX, srcY, srcWidthoch srcHeight anger en rektangulär del av objektet som image ska ritas. Rektangeln är relativ till källbildens övre vänstra hörn. Den här delen skalas för att passa in i den rektangel som anges av parametern destRect .

Se även

Gäller för

DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, cli::array <System::Drawing::PointF> ^ destPoints, System::Drawing::RectangleF srcRect, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttr, System::Drawing::Graphics::DrawImageAbort ^ callback, int callbackData);
public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback, int callbackData);
member this.DrawImage : System.Drawing.Image * System.Drawing.PointF[] * System.Drawing.RectangleF * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes * System.Drawing.Graphics.DrawImageAbort * int -> unit
Public Sub DrawImage (image As Image, destPoints As PointF(), srcRect As RectangleF, srcUnit As GraphicsUnit, imageAttr As ImageAttributes, callback As Graphics.DrawImageAbort, callbackData As Integer)

Parametrar

image
Image

Image att rita.

destPoints
PointF[]

Matris med tre PointF strukturer som definierar ett parallellogram.

srcRect
RectangleF

RectangleF struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

imageAttr
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

callback
Graphics.DrawImageAbort

Graphics.DrawImageAbort ombud som anger en metod som ska anropas under ritningen av bilden. Den här metoden anropas ofta för att kontrollera om metoden ska stoppas DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32) enligt programdefinierade kriterier.

callbackData
Int32

Värde som anger ytterligare data som ombudet Graphics.DrawImageAbort ska använda när du kontrollerar om metoden ska stoppas DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32) .

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren PaPaint. Koden definierar först en motringningsmetod för ombudet Graphics.DrawImageAbort . Definitionen är förenklad och testar bara om metoden anropar den DrawImage med en null-parameter callBackData . Huvudtexten i exemplet utför följande åtgärder:

  • Skapar en instans av Graphics.DrawImageAbort återanropsmetoden.

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar ett parallellogram där bilden ska ritas.

  • Skapar en rektangel för att välja den del av bilden som ska ritas.

  • Anger grafikritningsenheten till pixel.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare ett parallellogram där en justerad bild ska ritas.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För det ursprungliga, ojusterade parallellogrammet letar positionen upp bilden på skärmen, och rektangelns storlek och storlek och form avgör skalning och klippning av den ritade bilden.

Eftersom det här exemplet använder en överlagring som skickar en callBackData parameter returnerar falsemotringningen Graphics.DrawImageAbortDrawImage , vilket gör att metoden fortsätter och exemplet drar den justerade bilden till skärmen.

   // Define DrawImageAbort callback method.
private:
   bool DrawImageCallback4( IntPtr callBackData )
   {
      // Test for call that passes callBackData parameter.
      if ( callBackData == IntPtr::Zero )
      {
         // If no callBackData passed, abort DrawImage method.
         return true;
      }
      else
      {
         // If callBackData passed, continue DrawImage method.
         return false;
      }
   }

private:
   void DrawImageParaFRectAttribAbortData( PaintEventArgs^ e )
   {
      // Create callback method.
      Graphics::DrawImageAbort^ imageCallback = gcnew Graphics::DrawImageAbort( this, &Form1::DrawImageCallback4 );
      int imageCallbackData = 1;

      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create parallelogram for drawing original image.
      PointF ulCorner1 = PointF(100.0F,100.0F);
      PointF urCorner1 = PointF(325.0F,100.0F);
      PointF llCorner1 = PointF(150.0F,250.0F);
      array<PointF>^ destPara1 = {ulCorner1,urCorner1,llCorner1};

      // Create rectangle for source image.
      RectangleF srcRect = RectangleF(50.0F,50.0F,150.0F,150.0F);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Create parallelogram for drawing adjusted image.
      PointF ulCorner2 = PointF(325.0F,100.0F);
      PointF urCorner2 = PointF(550.0F,100.0F);
      PointF llCorner2 = PointF(375.0F,250.0F);
      array<PointF>^ destPara2 = {ulCorner2,urCorner2,llCorner2};

      // Draw original image to screen.
      e->Graphics->DrawImage( newImage, destPara1, srcRect, units );

      // Create image attributes and set large gamma.
      ImageAttributes^ imageAttr = gcnew ImageAttributes;
      imageAttr->SetGamma( 4.0F );
      try
      {
         // Draw adjusted image to screen.
         e->Graphics->DrawImage( newImage, destPara2, srcRect, units, imageAttr, imageCallback, imageCallbackData );
      }
      catch ( Exception^ ex ) 
      {
         e->Graphics->DrawString( ex->ToString(), gcnew System::Drawing::Font( "Arial",8 ), Brushes::Black, PointF(0,0) );
      }
   }

// Define DrawImageAbort callback method.
private bool DrawImageCallback4(IntPtr callBackData)
{
             
    // Test for call that passes callBackData parameter.
    if(callBackData==IntPtr.Zero)
    {
             
        // If no callBackData passed, abort DrawImage method.
        return true;
    }
    else
    {
             
        // If callBackData passed, continue DrawImage method.
        return false;
    }
}
private void DrawImageParaFRectAttribAbortData(PaintEventArgs e)
{
             
    // Create callback method.
    Graphics.DrawImageAbort imageCallback
        = new Graphics.DrawImageAbort(DrawImageCallback4);
    int imageCallbackData = 1;
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create parallelogram for drawing original image.
    PointF ulCorner1 = new PointF(100.0F, 100.0F);
    PointF urCorner1 = new PointF(325.0F, 100.0F);
    PointF llCorner1 = new PointF(150.0F, 250.0F);
    PointF[] destPara1 = {ulCorner1, urCorner1, llCorner1};
             
    // Create rectangle for source image.
    RectangleF srcRect = new RectangleF(50.0F, 50.0F, 150.0F, 150.0F);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Create parallelogram for drawing adjusted image.
    PointF ulCorner2 = new PointF(325.0F, 100.0F);
    PointF urCorner2 = new PointF(550.0F, 100.0F);
    PointF llCorner2 = new PointF(375.0F, 250.0F);
    PointF[] destPara2 = {ulCorner2, urCorner2, llCorner2};
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units);
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
    try
    {
        checked
        {
             
            // Draw adjusted image to screen.
            e.Graphics.DrawImage(
                newImage,
                destPara2,
                srcRect,
                units,
                imageAttr,
                imageCallback,
                imageCallbackData);
        }
    }
    catch (Exception ex)
    {
        e.Graphics.DrawString(
            ex.ToString(),
            new Font("Arial", 8),
            Brushes.Black,
            new PointF(0, 0));
    }
}
Private Function DrawImageCallback4(ByVal callBackData As IntPtr) As Boolean

    ' Test for call that passes callBackData parameter.
    If callBackData.Equals(IntPtr.Zero) Then

        ' If no callBackData passed, abort DrawImage method.
        Return True
    Else

        ' If callBackData passed, continue DrawImage method.
        Return False
    End If
End Function
Private Sub DrawImageParaFRectAttribAbortData(ByVal e As PaintEventArgs)

    ' Create callback method.
    Dim imageCallback As New _
    Graphics.DrawImageAbort(AddressOf DrawImageCallback4)
    Dim imageCallbackData As Integer = 1

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create parallelogram for drawing original image.
    Dim ulCorner1 As New PointF(100.0F, 100.0F)
    Dim urCorner1 As New PointF(325.0F, 100.0F)
    Dim llCorner1 As New PointF(150.0F, 250.0F)
    Dim destPara1 As PointF() = {ulCorner1, urCorner1, llCorner1}

    ' Create rectangle for source image.
    Dim srcRect As New RectangleF(50.0F, 50.0F, 150.0F, 150.0F)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Create parallelogram for drawing adjusted image.
    Dim ulCorner2 As New PointF(325.0F, 100.0F)
    Dim urCorner2 As New PointF(550.0F, 100.0F)
    Dim llCorner2 As New PointF(375.0F, 250.0F)
    Dim destPara2 As PointF() = {ulCorner2, urCorner2, llCorner2}

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units)

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)
    Try

        ' Draw adjusted image to screen.
        e.Graphics.DrawImage(newImage, destPara2, srcRect, units, _
        imageAttr, imageCallback, imageCallbackData)
    Catch ex As Exception
        e.Graphics.DrawString(ex.ToString(), New Font("Arial", 8), _
        Brushes.Black, New PointF(0, 0))
    End Try
End Sub

Kommentarer

Parametern destPoints anger tre punkter i ett parallellogram. De tre PointF strukturerna representerar parallellogrammets övre vänstra, övre högra och nedre vänstra hörn. Den fjärde punkten extrapoleras från de tre första för att bilda ett parallellogram.

Parametern srcRect anger en rektangulär del av objektet som image ska ritas. Den här delen skalas och klipps för att passa in i det parallellogram som anges av parametern destPoints .

Den här överlagringen med parametrarna callback och callbackData ger möjlighet att stoppa ritningen av en bild när den startar enligt kriterier och data som bestäms av programmet. Ett program kan till exempel börja rita en stor bild och användaren kan rulla bort bilden från skärmen, i så fall kan programmet stoppa ritningen.

Se även

Gäller för

DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, cli::array <System::Drawing::Point> ^ destPoints, System::Drawing::Rectangle srcRect, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttr, System::Drawing::Graphics::DrawImageAbort ^ callback, int callbackData);
public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback, int callbackData);
member this.DrawImage : System.Drawing.Image * System.Drawing.Point[] * System.Drawing.Rectangle * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes * System.Drawing.Graphics.DrawImageAbort * int -> unit
Public Sub DrawImage (image As Image, destPoints As Point(), srcRect As Rectangle, srcUnit As GraphicsUnit, imageAttr As ImageAttributes, callback As Graphics.DrawImageAbort, callbackData As Integer)

Parametrar

image
Image

Image att rita.

destPoints
Point[]

Matris med tre PointF strukturer som definierar ett parallellogram.

srcRect
Rectangle

Rectangle struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

imageAttr
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

callback
Graphics.DrawImageAbort

Graphics.DrawImageAbort ombud som anger en metod som ska anropas under ritningen av bilden. Den här metoden anropas ofta för att kontrollera om metoden ska stoppas DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32) enligt programdefinierade kriterier.

callbackData
Int32

Värde som anger ytterligare data som ombudet Graphics.DrawImageAbort ska använda när du kontrollerar om metoden ska stoppas DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32) .

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden definierar först en motringningsmetod för ombudet Graphics.DrawImageAbort . Definitionen är förenklad och testar bara om metoden anropar den DrawImage med en null-parameter callBackData . Huvudtexten i exemplet utför följande åtgärder:

  • Skapar en instans av Graphics.DrawImageAbort återanropsmetoden.

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar ett parallellogram där bilden ska ritas.

  • Skapar en rektangel för att välja den del av bilden som ska ritas.

  • Anger grafikritningsenheten till pixel.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare ett parallellogram där en justerad bild ska ritas.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För det ursprungliga, ojusterade parallellogrammet letar positionen upp bilden på skärmen, och rektangelns storlek och storlek och form avgör skalning och klippning av den ritade bilden.

Eftersom det här exemplet använder en överlagring som skickar en callBackData parameter returnerar falsemotringningen Graphics.DrawImageAbortDrawImage , vilket gör att metoden fortsätter och exemplet drar den justerade bilden till skärmen.

   // Define DrawImageAbort callback method.
private:
   bool DrawImageCallback2( IntPtr callBackData )
   {
      // Test for call that passes callBackData parameter.
      if ( callBackData == IntPtr::Zero )
      {
         // If no callBackData passed, abort DrawImage method.
         return true;
      }
      else
      {
         // If callBackData passed, continue DrawImage method.
         return false;
      }
   }

private:
   void DrawImageParaRectAttribAbortData( PaintEventArgs^ e )
   {
      // Create callback method.
      Graphics::DrawImageAbort^ imageCallback = gcnew Graphics::DrawImageAbort( this, &Form1::DrawImageCallback2 );
      int imageCallbackData = 1;

      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create parallelogram for drawing original image.
      Point ulCorner = Point(100,100);
      Point urCorner = Point(550,100);
      Point llCorner = Point(150,250);
      array<Point>^ destPara1 = {ulCorner,urCorner,llCorner};

      // Create rectangle for source image.
      Rectangle srcRect = Rectangle(50,50,150,150);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw original image to screen.
      e->Graphics->DrawImage( newImage, destPara1, srcRect, units );

      // Create parallelogram for drawing adjusted image.
      Point ulCorner2 = Point(325,100);
      Point urCorner2 = Point(550,100);
      Point llCorner2 = Point(375,250);
      array<Point>^ destPara2 = {ulCorner2,urCorner2,llCorner2};

      // Create image attributes and set large gamma.
      ImageAttributes^ imageAttr = gcnew ImageAttributes;
      imageAttr->SetGamma( 4.0F );
      try
      {
         // Draw image to screen.
         e->Graphics->DrawImage( newImage, destPara2, srcRect, units, imageAttr, imageCallback, imageCallbackData );
      }
      catch ( Exception^ ex ) 
      {
         e->Graphics->DrawString( ex->ToString(), gcnew System::Drawing::Font( "Arial",8 ), Brushes::Black, PointF(0,0) );
      }
   }

// Define DrawImageAbort callback method.
private bool DrawImageCallback2(IntPtr callBackData)
{
             
    // Test for call that passes callBackData parameter.
    if(callBackData==IntPtr.Zero)
    {
             
        // If no callBackData passed, abort DrawImage method.
        return true;
    }
    else
    {
             
        // If callBackData passed, continue DrawImage method.
        return false;
    }
}
private void DrawImageParaRectAttribAbortData(PaintEventArgs e)
{
             
    // Create callback method.
    Graphics.DrawImageAbort imageCallback
        = new Graphics.DrawImageAbort(DrawImageCallback2);
    int imageCallbackData = 1;
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create parallelogram for drawing original image.
    Point ulCorner = new Point(100, 100);
    Point urCorner = new Point(550, 100);
    Point llCorner = new Point(150, 250);
    Point[] destPara1 = {ulCorner, urCorner, llCorner};
             
    // Create rectangle for source image.
    Rectangle srcRect = new Rectangle(50, 50, 150, 150);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units);
             
    // Create parallelogram for drawing adjusted image.
    Point ulCorner2 = new Point(325, 100);
    Point urCorner2 = new Point(550, 100);
    Point llCorner2 = new Point(375, 250);
    Point[] destPara2 = {ulCorner2, urCorner2, llCorner2};
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
    try
    {
        checked
        {
             
            // Draw image to screen.
            e.Graphics.DrawImage(
                newImage,
                destPara2,
                srcRect,
                units,
                imageAttr,
                imageCallback,
                imageCallbackData);
        }
    }
    catch (Exception ex)
    {
        e.Graphics.DrawString(
            ex.ToString(),
            new Font("Arial", 8),
            Brushes.Black,
            new PointF(0, 0));
    }
}
Private Function DrawImageCallback2(ByVal callBackData As IntPtr) As Boolean

    ' Test for call that passes callBackData parameter.
    If callBackData.Equals(IntPtr.Zero) Then

        ' If no callBackData passed, abort DrawImage method.
        Return True
    Else

        ' If callBackData passed, continue DrawImage method.
        Return False
    End If
End Function
Private Sub DrawImageParaRectAttribAbortData(ByVal e As PaintEventArgs)

    ' Create callback method.
    Dim imageCallback As New _
    Graphics.DrawImageAbort(AddressOf DrawImageCallback2)
    Dim imageCallbackData As Integer = 1

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create parallelogram for drawing original image.
    Dim ulCorner As New Point(100, 100)
    Dim urCorner As New Point(550, 100)
    Dim llCorner As New Point(150, 250)
    Dim destPara1 As Point() = {ulCorner, urCorner, llCorner}

    ' Create rectangle for source image.
    Dim srcRect As New Rectangle(50, 50, 150, 150)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units)

    ' Create parallelogram for drawing adjusted image.
    Dim ulCorner2 As New Point(325, 100)
    Dim urCorner2 As New Point(550, 100)
    Dim llCorner2 As New Point(375, 250)
    Dim destPara2 As Point() = {ulCorner2, urCorner2, llCorner2}

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)
    Try

        ' Draw image to screen.
        e.Graphics.DrawImage(newImage, destPara2, srcRect, units, _
        imageAttr, imageCallback, imageCallbackData)
    Catch ex As Exception
        e.Graphics.DrawString(ex.ToString(), New Font("Arial", 8), _
        Brushes.Black, New PointF(0, 0))
    End Try
End Sub

Kommentarer

Parametern destPoints anger tre punkter i ett parallellogram. De tre PointF strukturerna representerar parallellogrammets övre vänstra, övre högra och nedre vänstra hörn. Den fjärde punkten extrapoleras från de tre första för att bilda ett parallellogram.

Parametern srcRect anger en rektangulär del av objektet som image ska ritas. Den här delen skalas och klipps för att passa in i det parallellogram som anges av parametern destPoints .

Den här överlagringen med parametrarna callback och callbackData ger möjlighet att stoppa ritningen av en bild när den startar enligt kriterier och data som bestäms av programmet. Ett program kan till exempel börja rita en stor bild och användaren kan rulla bort bilden från skärmen, i så fall kan programmet stoppa ritningen.

Se även

Gäller för

DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, cli::array <System::Drawing::PointF> ^ destPoints, System::Drawing::RectangleF srcRect, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttr, System::Drawing::Graphics::DrawImageAbort ^ callback);
public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback);
member this.DrawImage : System.Drawing.Image * System.Drawing.PointF[] * System.Drawing.RectangleF * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes * System.Drawing.Graphics.DrawImageAbort -> unit
Public Sub DrawImage (image As Image, destPoints As PointF(), srcRect As RectangleF, srcUnit As GraphicsUnit, imageAttr As ImageAttributes, callback As Graphics.DrawImageAbort)

Parametrar

image
Image

Image att rita.

destPoints
PointF[]

Matris med tre PointF strukturer som definierar ett parallellogram.

srcRect
RectangleF

RectangleF struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

imageAttr
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

callback
Graphics.DrawImageAbort

Graphics.DrawImageAbort ombud som anger en metod som ska anropas under ritningen av bilden. Den här metoden anropas ofta för att kontrollera om metoden ska stoppas DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) enligt programdefinierade kriterier.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden definierar först en motringningsmetod för ombudet Graphics.DrawImageAbort . Definitionen är förenklad och testar bara om metoden anropar den DrawImage med en null-parameter callBackData . Huvudtexten i exemplet utför följande åtgärder:

  • Skapar en instans av Graphics.DrawImageAbort återanropsmetoden.

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar ett parallellogram där bilden ska ritas.

  • Skapar en rektangel för att välja den del av bilden som ska ritas.

  • Anger grafikritningsenheten till pixel.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare ett parallellogram där en justerad bild ska ritas.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För det ursprungliga, ojusterade parallellogrammet letar positionen upp bilden på skärmen, och rektangelns storlek och storlek och form avgör skalning och klippning av den ritade bilden.

Eftersom det här exemplet använder en överlagring som inte skickar en callBackData parameter returnerar truemotringningen Graphics.DrawImageAbortDrawImage , vilket gör att metoden slutar, och undantagshanteringskoden som ingår i exemplet skriver ut undantagstexten i stället för att rita bilden.

   // Define DrawImageAbort callback method.
private:
   bool DrawImageCallback3( IntPtr callBackData )
   {
      // Test for call that passes callBackData parameter.
      if ( callBackData == IntPtr::Zero )
      {
         // If no callBackData passed, abort DrawImage method.
         return true;
      }
      else
      {
         // If callBackData passed, continue DrawImage method.
         return false;
      }
   }

private:
   void DrawImageParaFRectAttribAbort( PaintEventArgs^ e )
   {
      // Create callback method.
      Graphics::DrawImageAbort^ imageCallback = gcnew Graphics::DrawImageAbort( this, &Form1::DrawImageCallback3 );

      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create parallelogram for drawing original image.
      PointF ulCorner1 = PointF(100.0F,100.0F);
      PointF urCorner1 = PointF(325.0F,100.0F);
      PointF llCorner1 = PointF(150.0F,250.0F);
      array<PointF>^ destPara1 = {ulCorner1,urCorner1,llCorner1};

      // Create rectangle for source image.
      RectangleF srcRect = RectangleF(50.0F,50.0F,150.0F,150.0F);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Create parallelogram for drawing adjusted image.
      PointF ulCorner2 = PointF(325.0F,100.0F);
      PointF urCorner2 = PointF(550.0F,100.0F);
      PointF llCorner2 = PointF(375.0F,250.0F);
      array<PointF>^ destPara2 = {ulCorner2,urCorner2,llCorner2};

      // Draw original image to screen.
      e->Graphics->DrawImage( newImage, destPara1, srcRect, units );

      // Create image attributes and set large gamma.
      ImageAttributes^ imageAttr = gcnew ImageAttributes;
      imageAttr->SetGamma( 4.0F );
      try
      {
         // Draw adjusted image to screen.
         e->Graphics->DrawImage( newImage, destPara2, srcRect, units, imageAttr, imageCallback );
      }
      catch ( Exception^ ex ) 
      {
         e->Graphics->DrawString( ex->ToString(), gcnew System::Drawing::Font( "Arial",8 ), Brushes::Black, PointF(0,0) );
      }
   }

// Define DrawImageAbort callback method.
private bool DrawImageCallback3(IntPtr callBackData)
{
             
    // Test for call that passes callBackData parameter.
    if(callBackData==IntPtr.Zero)
    {
             
        // If no callBackData passed, abort DrawImage method.
        return true;
    }
    else
    {
             
        // If callBackData passed, continue DrawImage method.
        return false;
    }
}
private void DrawImageParaFRectAttribAbort(PaintEventArgs e)
{
             
    // Create callback method.
    Graphics.DrawImageAbort imageCallback
        = new Graphics.DrawImageAbort(DrawImageCallback3);
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create parallelogram for drawing original image.
    PointF ulCorner1 = new PointF(100.0F, 100.0F);
    PointF urCorner1 = new PointF(325.0F, 100.0F);
    PointF llCorner1 = new PointF(150.0F, 250.0F);
    PointF[] destPara1 = {ulCorner1, urCorner1, llCorner1};
             
    // Create rectangle for source image.
    RectangleF srcRect = new RectangleF(50.0F, 50.0F, 150.0F, 150.0F);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Create parallelogram for drawing adjusted image.
    PointF ulCorner2 = new PointF(325.0F, 100.0F);
    PointF urCorner2 = new PointF(550.0F, 100.0F);
    PointF llCorner2 = new PointF(375.0F, 250.0F);
    PointF[] destPara2 = {ulCorner2, urCorner2, llCorner2};
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units);
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
    try
    {
        checked
        {
             
            // Draw adjusted image to screen.
            e.Graphics.DrawImage(
                newImage,
                destPara2,
                srcRect,
                units,
                imageAttr,
                imageCallback);
        }
    }
    catch (Exception ex)
    {
        e.Graphics.DrawString(
            ex.ToString(),
            new Font("Arial", 8),
            Brushes.Black,
            new PointF(0, 0));
    }
}
Private Function DrawImageCallback3(ByVal callBackData As IntPtr) As Boolean

    ' Test for call that passes callBackData parameter.
    If callBackData.Equals(IntPtr.Zero) Then

        ' If no callBackData passed, abort DrawImage method.
        Return True
    Else

        ' If callBackData passed, continue DrawImage method.
        Return False
    End If
End Function
Private Sub DrawImageParaFRectAttribAbort(ByVal e As PaintEventArgs)

    ' Create callback method.
    Dim imageCallback As New _
    Graphics.DrawImageAbort(AddressOf DrawImageCallback3)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create parallelogram for drawing original image.
    Dim ulCorner1 As New PointF(100.0F, 100.0F)
    Dim urCorner1 As New PointF(325.0F, 100.0F)
    Dim llCorner1 As New PointF(150.0F, 250.0F)
    Dim destPara1 As PointF() = {ulCorner1, urCorner1, llCorner1}

    ' Create rectangle for source image.
    Dim srcRect As New RectangleF(50.0F, 50.0F, 150.0F, 150.0F)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Create parallelogram for drawing adjusted image.
    Dim ulCorner2 As New PointF(325.0F, 100.0F)
    Dim urCorner2 As New PointF(550.0F, 100.0F)
    Dim llCorner2 As New PointF(375.0F, 250.0F)
    Dim destPara2 As PointF() = {ulCorner2, urCorner2, llCorner2}

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units)

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)
    Try

        ' Draw adjusted image to screen.
        e.Graphics.DrawImage(newImage, destPara2, srcRect, units, _
        imageAttr, imageCallback)
    Catch ex As Exception
        e.Graphics.DrawString(ex.ToString(), New Font("Arial", 8), _
        Brushes.Black, New PointF(0, 0))
    End Try
End Sub

Kommentarer

Parametern destPoints anger tre punkter i ett parallellogram. De tre PointF strukturerna representerar parallellogrammets övre vänstra, övre högra och nedre vänstra hörn. Den fjärde punkten extrapoleras från de tre första för att bilda ett parallellogram.

Parametern srcRect anger en rektangulär del av objektet som image ska ritas. Den här delen skalas och klipps för att passa in i det parallellogram som anges av parametern destPoints .

Den här överlagringen med parametern callback ger möjlighet att stoppa ritningen av en bild när den startar enligt kriterier som bestäms av programmet. Ett program kan till exempel börja rita en stor bild och användaren kan rulla bort bilden från skärmen, i så fall kan programmet stoppa ritningen.

Se även

Gäller för

DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, cli::array <System::Drawing::Point> ^ destPoints, System::Drawing::Rectangle srcRect, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttr, System::Drawing::Graphics::DrawImageAbort ^ callback);
public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr, System.Drawing.Graphics.DrawImageAbort callback);
member this.DrawImage : System.Drawing.Image * System.Drawing.Point[] * System.Drawing.Rectangle * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes * System.Drawing.Graphics.DrawImageAbort -> unit
Public Sub DrawImage (image As Image, destPoints As Point(), srcRect As Rectangle, srcUnit As GraphicsUnit, imageAttr As ImageAttributes, callback As Graphics.DrawImageAbort)

Parametrar

image
Image

Image att rita.

destPoints
Point[]

Matris med tre PointF strukturer som definierar ett parallellogram.

srcRect
Rectangle

Rectangle struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

imageAttr
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

callback
Graphics.DrawImageAbort

Graphics.DrawImageAbort ombud som anger en metod som ska anropas under ritningen av bilden. Den här metoden anropas ofta för att kontrollera om metoden ska stoppas DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) enligt programdefinierade kriterier.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden definierar först en motringningsmetod för ombudet Graphics.DrawImageAbort . Definitionen är förenklad och testar bara om metoden anropar den DrawImage med en null-parameter callBackData . Huvudtexten i exemplet utför följande åtgärder:

  • Skapar en instans av Graphics.DrawImageAbort motringningsmetoden:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar ett parallellogram där bilden ska ritas.

  • Skapar en rektangel för att välja den del av bilden som ska ritas.

  • Anger grafikritningsenheten till pixel.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare ett parallellogram där en justerad bild ska ritas.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För det ursprungliga, ojusterade parallellogrammet letar positionen upp bilden på skärmen, och rektangelns storlek och storlek och form avgör skalning och klippning av den ritade bilden.

Eftersom det här exemplet använder en överlagring som inte skickar en callBackData parameter returnerar truemotringningen Graphics.DrawImageAbortDrawImage , vilket gör att metoden slutar, och undantagshanteringskoden som ingår i exemplet skriver ut undantagstexten i stället för att rita bilden.

   // Define DrawImageAbort callback method.
private:
   bool DrawImageCallback1( IntPtr callBackData )
   {
      // Test for call that passes callBackData parameter.
      if ( callBackData == IntPtr::Zero )
      {
         // If no callBackData passed, abort DrawImage method.
         return true;
      }
      else
      {
         // If callBackData passed, continue DrawImage method.
         return false;
      }
   }

private:
   void DrawImageParaRectAttribAbort( PaintEventArgs^ e )
   {
      // Create callback method.
      Graphics::DrawImageAbort^ imageCallback = gcnew Graphics::DrawImageAbort( this, &Form1::DrawImageCallback1 );

      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create parallelogram for drawing original image.
      Point ulCorner = Point(100,100);
      Point urCorner = Point(550,100);
      Point llCorner = Point(150,250);
      array<Point>^ destPara1 = {ulCorner,urCorner,llCorner};

      // Create rectangle for source image.
      Rectangle srcRect = Rectangle(50,50,150,150);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw original image to screen.
      e->Graphics->DrawImage( newImage, destPara1, srcRect, units );

      // Create parallelogram for drawing adjusted image.
      Point ulCorner2 = Point(325,100);
      Point urCorner2 = Point(550,100);
      Point llCorner2 = Point(375,250);
      array<Point>^ destPara2 = {ulCorner2,urCorner2,llCorner2};

      // Create image attributes and set large gamma.
      ImageAttributes^ imageAttr = gcnew ImageAttributes;
      imageAttr->SetGamma( 4.0F );
      try
      {
         // Draw image to screen.
         e->Graphics->DrawImage( newImage, destPara2, srcRect, units, imageAttr, imageCallback );
      }
      catch ( Exception^ ex ) 
      {
         e->Graphics->DrawString( ex->ToString(), gcnew System::Drawing::Font( "Arial",8 ), Brushes::Black, PointF(0,0) );
      }
   }

// Define DrawImageAbort callback method.
private bool DrawImageCallback1(IntPtr callBackData)
{
             
    // Test for call that passes callBackData parameter.
    if(callBackData==IntPtr.Zero)
    {
             
        // If no callBackData passed, abort DrawImage method.
        return true;
    }
    else
    {
             
        // If callBackData passed, continue DrawImage method.
        return false;
    }
}
private void DrawImageParaRectAttribAbort(PaintEventArgs e)
{
             
    // Create callback method.
    Graphics.DrawImageAbort imageCallback
        = new Graphics.DrawImageAbort(DrawImageCallback1);
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create parallelogram for drawing original image.
    Point ulCorner = new Point(100, 100);
    Point urCorner = new Point(550, 100);
    Point llCorner = new Point(150, 250);
    Point[] destPara1 = {ulCorner, urCorner, llCorner};
             
    // Create rectangle for source image.
    Rectangle srcRect = new Rectangle(50, 50, 150, 150);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units);
             
    // Create parallelogram for drawing adjusted image.
    Point ulCorner2 = new Point(325, 100);
    Point urCorner2 = new Point(550, 100);
    Point llCorner2 = new Point(375, 250);
    Point[] destPara2 = {ulCorner2, urCorner2, llCorner2};
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
    try
    {
        checked
        {
             
            // Draw image to screen.
            e.Graphics.DrawImage(
                newImage,
                destPara2,
                srcRect,
                units,
                imageAttr,
                imageCallback);
        }
    }
    catch (Exception ex)
    {
        e.Graphics.DrawString(
            ex.ToString(),
            new Font("Arial", 8),
            Brushes.Black,
            new PointF(0, 0));
    }
}
Private Function DrawImageCallback1(ByVal callBackData As IntPtr) As Boolean

    ' Test for call that passes callBackData parameter.
    If callBackData.Equals(IntPtr.Zero) Then

        ' If no callBackData passed, abort DrawImage method.
        Return True
    Else

        ' If callBackData passed, continue DrawImage method.
        Return False
    End If
End Function
Private Sub DrawImageParaRectAttribAbort(ByVal e As PaintEventArgs)

    ' Create callback method.
    Dim imageCallback As New _
    Graphics.DrawImageAbort(AddressOf DrawImageCallback1)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create parallelogram for drawing original image.
    Dim ulCorner As New Point(100, 100)
    Dim urCorner As New Point(550, 100)
    Dim llCorner As New Point(150, 250)
    Dim destPara1 As Point() = {ulCorner, urCorner, llCorner}

    ' Create rectangle for source image.
    Dim srcRect As New Rectangle(50, 50, 150, 150)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units)

    ' Create parallelogram for drawing adjusted image.
    Dim ulCorner2 As New Point(325, 100)
    Dim urCorner2 As New Point(550, 100)
    Dim llCorner2 As New Point(375, 250)
    Dim destPara2 As Point() = {ulCorner2, urCorner2, llCorner2}

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)
    Try

        ' Draw image to screen.
        e.Graphics.DrawImage(newImage, destPara2, srcRect, units, _
        imageAttr, imageCallback)
    Catch ex As Exception
        e.Graphics.DrawString(ex.ToString(), New Font("Arial", 8), _
        Brushes.Black, New PointF(0, 0))
    End Try
End Sub

Kommentarer

Parametern destPoints anger tre punkter i ett parallellogram. De tre PointF strukturerna representerar parallellogrammets övre vänstra, övre högra och nedre vänstra hörn. Den fjärde punkten extrapoleras från de tre första för att bilda ett parallellogram.

Parametern srcRect anger en rektangulär del av objektet som image ska ritas. Den här delen skalas och klipps för att passa in i det parallellogram som anges av parametern destPoints .

Den här överlagringen med parametern callback ger möjlighet att stoppa ritningen av en bild när den startar enligt kriterier som bestäms av programmet. Ett program kan till exempel börja rita en stor bild och användaren kan rulla bort bilden från skärmen, i så fall kan programmet stoppa ritningen.

Se även

Gäller för

DrawImage(Image, Int32, Int32, Int32, Int32)

Ritar angivna Image på den angivna platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, int x, int y, int width, int height);
public void DrawImage(System.Drawing.Image image, int x, int y, int width, int height);
member this.DrawImage : System.Drawing.Image * int * int * int * int -> unit
Public Sub DrawImage (image As Image, x As Integer, y As Integer, width As Integer, height As Integer)

Parametrar

image
Image

Image att rita.

x
Int32

X-koordinaten för det övre vänstra hörnet av den ritade bilden.

y
Int32

y-koordinaten i det övre vänstra hörnet av den ritade bilden.

width
Int32

Bredd på den ritade bilden.

height
Int32

Höjden på den ritade bilden.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar positionen och storleken på en rektangel där bilden ska ritas.

  • Ritar bilden till skärmen.

Rektangelns position lokaliserar bilden på skärmen, och storleken på den ursprungliga bilden och rektangelns storlek avgör skalningen av den ritade bilden.

public:
   void DrawImage4Int( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create coordinates for upper-left corner.
      // of image and for size of image.
      int x = 100;
      int y = 100;
      int width = 450;
      int height = 150;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, x, y, width, height );
   }
public void DrawImage4Int(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create coordinates for upper-left corner.
             
    // of image and for size of image.
    int x = 100;
    int y = 100;
    int width = 450;
    int height = 150;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y, width, height);
}
Public Sub DrawImage4Int(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create coordinates for upper-left corner

    ' of image and for size of image.
    Dim x As Integer = 100
    Dim y As Integer = 100
    Dim width As Integer = 450
    Dim height As Integer = 150

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y, width, height)
End Sub

Kommentarer

Rektangeln som definieras av parametrarna x, y, widthoch height avgör positionen och storleken på den ritade bilden.

Se även

Gäller för

DrawImage(Image, Single, Single, Single, Single)

Ritar angivna Image på den angivna platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, float x, float y, float width, float height);
public void DrawImage(System.Drawing.Image image, float x, float y, float width, float height);
member this.DrawImage : System.Drawing.Image * single * single * single * single -> unit
Public Sub DrawImage (image As Image, x As Single, y As Single, width As Single, height As Single)

Parametrar

image
Image

Image att rita.

x
Single

X-koordinaten för det övre vänstra hörnet av den ritade bilden.

y
Single

y-koordinaten i det övre vänstra hörnet av den ritade bilden.

width
Single

Bredd på den ritade bilden.

height
Single

Höjden på den ritade bilden.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar positionen och storleken på en rektangel där bilden ska ritas.

  • Ritar bilden till skärmen.

Rektangelns position lokaliserar bilden på skärmen, och storleken på den ursprungliga bilden och rektangelns storlek avgör skalningen av den ritade bilden.

public:
   void DrawImage4Float( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create coordinates for upper-left corner.
      // of image and for size of image.
      float x = 100.0F;
      float y = 100.0F;
      float width = 450.0F;
      float height = 150.0F;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, x, y, width, height );
   }
public void DrawImage4Float(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create coordinates for upper-left corner.
             
    // of image and for size of image.
    float x = 100.0F;
    float y = 100.0F;
    float width = 450.0F;
    float height = 150.0F;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y, width, height);
}
Public Sub DrawImage4Float(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create coordinates for upper-left corner

    ' of image and for size of image.
    Dim x As Single = 100.0F
    Dim y As Single = 100.0F
    Dim width As Single = 450.0F
    Dim height As Single = 150.0F

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y, width, height)
End Sub

Kommentarer

Rektangeln som definieras av parametrarna x, y, widthoch height avgör positionen och storleken på den ritade bilden.

Se även

Gäller för

DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, cli::array <System::Drawing::PointF> ^ destPoints, System::Drawing::RectangleF srcRect, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttr);
public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr);
member this.DrawImage : System.Drawing.Image * System.Drawing.PointF[] * System.Drawing.RectangleF * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes -> unit
Public Sub DrawImage (image As Image, destPoints As PointF(), srcRect As RectangleF, srcUnit As GraphicsUnit, imageAttr As ImageAttributes)

Parametrar

image
Image

Image att rita.

destPoints
PointF[]

Matris med tre PointF strukturer som definierar ett parallellogram.

srcRect
RectangleF

RectangleF struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

imageAttr
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar ett målparallellogram där bilden ska ritas.

  • Skapar en källrektangel som en del av avbildningen ska extraheras från.

  • Anger måttenheten för källrektangeln till pixlar.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare ett parallellogram där en justerad bild ska ritas.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För det ursprungliga, ojusterade målparallellogrammet letar positionen upp bilden på skärmen, storleken på källrektangeln och målparallellogrammets storlek och form avgör skalning och klippning av den ritade bilden och rektangelns storlek avgör vilken del av den ursprungliga bilden som ritas till skärmen.

void DrawImageParaFRectFAttrib( PaintEventArgs^ e )
{
   // Create image.
   Image^ newImage = Image::FromFile( "SampImag.jpg" );

   // Create parallelogram for drawing original image.
   PointF ulCorner1 = PointF(100.0F,100.0F);
   PointF urCorner1 = PointF(325.0F,100.0F);
   PointF llCorner1 = PointF(150.0F,250.0F);
   array<PointF>^ destPara1 = {ulCorner1,urCorner1,llCorner1};

   // Create rectangle for source image.
   RectangleF srcRect = RectangleF(50.0F,50.0F,150.0F,150.0F);
   GraphicsUnit units = GraphicsUnit::Pixel;

   // Create parallelogram for drawing adjusted image.
   PointF ulCorner2 = PointF(325.0F,100.0F);
   PointF urCorner2 = PointF(550.0F,100.0F);
   PointF llCorner2 = PointF(375.0F,250.0F);
   array<PointF>^ destPara2 = {ulCorner2,urCorner2,llCorner2};

   // Draw original image to screen.
   e->Graphics->DrawImage( newImage, destPara1, srcRect, units );

   // Create image attributes and set large gamma.
   ImageAttributes^ imageAttr = gcnew ImageAttributes;
   imageAttr->SetGamma( 4.0F );

   // Draw adjusted image to screen.
   e->Graphics->DrawImage( newImage, destPara2, srcRect, units, imageAttr );
}
private void DrawImageParaFRectFAttrib(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create parallelogram for drawing original image.
    PointF ulCorner1 = new PointF(100.0F, 100.0F);
    PointF urCorner1 = new PointF(325.0F, 100.0F);
    PointF llCorner1 = new PointF(150.0F, 250.0F);
    PointF[] destPara1 = {ulCorner1, urCorner1, llCorner1};
             
    // Create rectangle for source image.
    RectangleF srcRect = new RectangleF(50.0F, 50.0F, 150.0F, 150.0F);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Create parallelogram for drawing adjusted image.
    PointF ulCorner2 = new PointF(325.0F, 100.0F);
    PointF urCorner2 = new PointF(550.0F, 100.0F);
    PointF llCorner2 = new PointF(375.0F, 250.0F);
    PointF[] destPara2 = {ulCorner2, urCorner2, llCorner2};
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units);
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
             
    // Draw adjusted image to screen.
    e.Graphics.DrawImage(newImage, destPara2, srcRect, units, imageAttr);
}
Private Sub DrawImageParaFRectFAttrib(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create parallelogram for drawing original image.
    Dim ulCorner1 As New PointF(100.0F, 100.0F)
    Dim urCorner1 As New PointF(325.0F, 100.0F)
    Dim llCorner1 As New PointF(150.0F, 250.0F)
    Dim destPara1 As PointF() = {ulCorner1, urCorner1, llCorner1}

    ' Create rectangle for source image.
    Dim srcRect As New RectangleF(50.0F, 50.0F, 150.0F, 150.0F)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Create parallelogram for drawing adjusted image.
    Dim ulCorner2 As New PointF(325.0F, 100.0F)
    Dim urCorner2 As New PointF(550.0F, 100.0F)
    Dim llCorner2 As New PointF(375.0F, 250.0F)
    Dim destPara2 As PointF() = {ulCorner2, urCorner2, llCorner2}

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units)

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)

    ' Draw adjusted image to screen.
    e.Graphics.DrawImage(newImage, destPara2, srcRect, units, _
    imageAttr)
End Sub

Kommentarer

Parametern destPoints anger tre punkter i ett parallellogram. De tre PointF strukturerna representerar parallellogrammets övre vänstra, övre högra och nedre vänstra hörn. Den fjärde punkten extrapoleras från de tre första för att bilda ett parallellogram.

Parametern srcRect anger en rektangulär del av objektet som image ska ritas. Den här delen skalas och klipps för att passa in i det parallellogram som anges av parametern destPoints .

Se även

Gäller för

DrawImage(Image, Point)

Ritar den angivna Image, med dess ursprungliga fysiska storlek, på den angivna platsen.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Point point);
public void DrawImage(System.Drawing.Image image, System.Drawing.Point point);
member this.DrawImage : System.Drawing.Image * System.Drawing.Point -> unit
Public Sub DrawImage (image As Image, point As Point)

Parametrar

image
Image

Image att rita.

point
Point

Point struktur som representerar platsen för det övre vänstra hörnet av den ritade bilden.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar en punkt där bildens övre vänstra hörn ska ritas.

  • Ritar den oskalade bilden till skärmen.

private:
   void DrawImagePoint( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create Point for upper-left corner of image.
      Point ulCorner = Point(100,100);

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, ulCorner );
   }
private void DrawImagePoint(PaintEventArgs e)
{         
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create Point for upper-left corner of image.
    Point ulCorner = new Point(100, 100);
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, ulCorner);
}
Private Sub DrawImagePoint(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create Point for upper-left corner of image.
    Dim ulCorner As New Point(100, 100)

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, ulCorner)
End Sub

Kommentarer

En Image lagrar ett värde för pixelbredd och ett värde för vågrät upplösning (punkter per tum). Den fysiska bredden, mätt i tum, för en bild är bildpunktsbredden dividerad med den vågräta upplösningen. Till exempel har en bild med en pixelbredd på 216 och en vågrät upplösning på 72 punkter per tum en fysisk bredd på 3 tum. Liknande kommentarer gäller pixelhöjd och fysisk höjd.

Den här metoden ritar en bild med hjälp av dess fysiska storlek, så att bilden har rätt storlek i tum oavsett upplösning (punkter per tum) på visningsenheten. Anta till exempel att en bild har en pixelbredd på 216 och en vågrät upplösning på 72 punkter per tum. Om du anropar den här metoden för att rita bilden på en enhet som har en upplösning på 96 punkter per tum blir pixelbredden för den renderade bilden (216/72)*96 = 288.

Se även

Gäller för

DrawImage(Image, Point[])

Ritar angivet Image på den angivna platsen och med den angivna formen och storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, cli::array <System::Drawing::Point> ^ destPoints);
public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints);
member this.DrawImage : System.Drawing.Image * System.Drawing.Point[] -> unit
Public Sub DrawImage (image As Image, destPoints As Point())

Parametrar

image
Image

Image att rita.

destPoints
Point[]

Matris med tre Point strukturer som definierar ett parallellogram.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar ett parallellogram där bilden ska ritas.

  • Ritar bilden till skärmen.

Positionen för parallellogrammet lokaliserar bilden på skärmen, och storleken på den ursprungliga bilden och storleken och formen på parallellogrammet avgör skalning och klippning av den ritade bilden.

private:
   void DrawImagePara( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create parallelogram for drawing image.
      Point ulCorner = Point(100,100);
      Point urCorner = Point(550,100);
      Point llCorner = Point(150,250);
      array<Point>^ destPara = {ulCorner,urCorner,llCorner};

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, destPara );
   }
private void DrawImagePara(PaintEventArgs e)
{
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create parallelogram for drawing image.
    Point ulCorner = new Point(100, 100);
    Point urCorner = new Point(550, 100);
    Point llCorner = new Point(150, 250);
    Point[] destPara = {ulCorner, urCorner, llCorner};
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, destPara);
}
Private Sub DrawImagePara(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create parallelogram for drawing image.
    Dim ulCorner As New Point(100, 100)
    Dim urCorner As New Point(550, 100)
    Dim llCorner As New Point(150, 250)
    Dim destPara As Point() = {ulCorner, urCorner, llCorner}

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, destPara)
End Sub

Kommentarer

Parametern destPoints anger tre punkter i ett parallellogram. De tre Point strukturerna representerar parallellogrammets övre vänstra, övre högra och nedre vänstra hörn. Den fjärde punkten extrapoleras från de tre första för att bilda ett parallellogram.

Bilden som representeras av parametern image skalas och klipps för att passa formen på det parallellogram som anges av parametrarna destPoints .

Se även

Gäller för

DrawImage(Image, PointF)

Ritar den angivna Image, med dess ursprungliga fysiska storlek, på den angivna platsen.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::PointF point);
public void DrawImage(System.Drawing.Image image, System.Drawing.PointF point);
member this.DrawImage : System.Drawing.Image * System.Drawing.PointF -> unit
Public Sub DrawImage (image As Image, point As PointF)

Parametrar

image
Image

Image att rita.

point
PointF

PointF struktur som representerar det övre vänstra hörnet av den ritade bilden.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar en punkt där bildens övre vänstra hörn ska ritas.

  • Ritar den oskalade bilden till skärmen.

private:
   void DrawImagePointF( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create point for upper-left corner of image.
      PointF ulCorner = PointF(100.0F,100.0F);

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, ulCorner );
   }
private void DrawImagePointF(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create point for upper-left corner of image.
    PointF ulCorner = new PointF(100.0F, 100.0F);
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, ulCorner);
}
Private Sub DrawImagePointF(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create point for upper-left corner of image.
    Dim ulCorner As New PointF(100.0F, 100.0F)

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, ulCorner)
End Sub

Kommentarer

En Image lagrar ett värde för pixelbredd och ett värde för vågrät upplösning (punkter per tum). Den fysiska bredden, mätt i tum, för en bild är bildpunktsbredden dividerad med den vågräta upplösningen. Till exempel har en bild med en pixelbredd på 216 och en vågrät upplösning på 72 punkter per tum en fysisk bredd på 3 tum. Liknande kommentarer gäller pixelhöjd och fysisk höjd.

Den här metoden ritar en bild med hjälp av dess fysiska storlek, så att bilden har rätt storlek i tum oavsett upplösning (punkter per tum) på visningsenheten. Anta till exempel att en bild har en pixelbredd på 216 och en vågrät upplösning på 72 punkter per tum. Om du anropar den här metoden för att rita bilden på en enhet som har en upplösning på 96 punkter per tum blir pixelbredden för den renderade bilden (216/72)*96 = 288.

Se även

Gäller för

DrawImage(Image, PointF[])

Ritar angivet Image på den angivna platsen och med den angivna formen och storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, cli::array <System::Drawing::PointF> ^ destPoints);
public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints);
member this.DrawImage : System.Drawing.Image * System.Drawing.PointF[] -> unit
Public Sub DrawImage (image As Image, destPoints As PointF())

Parametrar

image
Image

Image att rita.

destPoints
PointF[]

Matris med tre PointF strukturer som definierar ett parallellogram.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar ett parallellogram där bilden ska ritas.

  • Ritar bilden till skärmen.

Positionen för parallellogrammet lokaliserar bilden på skärmen, och storleken på den ursprungliga bilden och storleken och formen på parallellogrammet avgör skalning och klippning av den ritade bilden.

private:
   void DrawImageParaF( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create parallelogram for drawing image.
      PointF ulCorner = PointF(100.0F,100.0F);
      PointF urCorner = PointF(550.0F,100.0F);
      PointF llCorner = PointF(150.0F,250.0F);
      array<PointF>^ destPara = {ulCorner,urCorner,llCorner};

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, destPara );
   }
private void DrawImageParaF(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create parallelogram for drawing image.
    PointF ulCorner = new PointF(100.0F, 100.0F);
    PointF urCorner = new PointF(550.0F, 100.0F);
    PointF llCorner = new PointF(150.0F, 250.0F);
    PointF[] destPara = {ulCorner, urCorner, llCorner};
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, destPara);
}
Private Sub DrawImageParaF(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create parallelogram for drawing image.
    Dim ulCorner As New PointF(100.0F, 100.0F)
    Dim urCorner As New PointF(550.0F, 100.0F)
    Dim llCorner As New PointF(150.0F, 250.0F)
    Dim destPara As PointF() = {ulCorner, urCorner, llCorner}

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, destPara)
End Sub

Kommentarer

Parametern destPoints anger tre punkter i ett parallellogram. De tre PointF strukturerna representerar parallellogrammets övre vänstra, övre högra och nedre vänstra hörn. Den fjärde punkten extrapoleras från de tre första för att bilda ett parallellogram.

Bilden som representeras av image objektet skalas och klipps för att passa formen på det parallellogram som anges av parametern destPoints .

Se även

Gäller för

DrawImage(Image, Rectangle)

Ritar angivna Image på den angivna platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Rectangle rect);
public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle rect);
member this.DrawImage : System.Drawing.Image * System.Drawing.Rectangle -> unit
Public Sub DrawImage (image As Image, rect As Rectangle)

Parametrar

image
Image

Image att rita.

rect
Rectangle

Rectangle struktur som anger platsen och storleken på den ritade bilden.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar en rektangel där bilden ska ritas.

  • Ritar bilden till skärmen.

Rektangelns position lokaliserar bilden på skärmen, och storleken på den ursprungliga bilden och rektangelns storlek avgör skalningen av den ritade bilden.

private:
   void DrawImageRect( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create rectangle for displaying image.
      Rectangle destRect = Rectangle(100,100,450,150);

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, destRect );
   }
private void DrawImageRect(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying image.
    Rectangle destRect = new Rectangle(100, 100, 450, 150);
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect);
}
Private Sub DrawImageRect(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying image.
    Dim destRect As New Rectangle(100, 100, 450, 150)

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect)
End Sub

Kommentarer

Bilden som representeras av image objektet skalas till rektangelns rect dimensioner.

Se även

Gäller för

DrawImage(Image, RectangleF)

Ritar angivna Image på den angivna platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::RectangleF rect);
public void DrawImage(System.Drawing.Image image, System.Drawing.RectangleF rect);
member this.DrawImage : System.Drawing.Image * System.Drawing.RectangleF -> unit
Public Sub DrawImage (image As Image, rect As RectangleF)

Parametrar

image
Image

Image att rita.

rect
RectangleF

RectangleF struktur som anger platsen och storleken på den ritade bilden.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar en rektangel där bilden ska ritas.

  • Ritar bilden till skärmen.

Rektangelns position lokaliserar bilden på skärmen, och den ursprungliga storleken på bilden och rektangelns storlek avgör skalningen av den ritade bilden.

public:
   void DrawImageRectF( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create rectangle for displaying image.
      RectangleF rect = RectangleF(100.0F,100.0F,450.0F,150.0F);

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, rect );
   }
public void DrawImageRectF(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying image.
    RectangleF rect = new RectangleF(100.0F, 100.0F, 450.0F, 150.0F);
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, rect);
}
Public Sub DrawImageRectF(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying image.
    Dim rect As New RectangleF(100.0F, 100.0F, 450.0F, 150.0F)

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, rect)
End Sub

Kommentarer

Bilden som representeras av image objektet skalas till rektangelns rect dimensioner.

Se även

Gäller för

DrawImage(Image, Int32, Int32)

Ritar den angivna bilden med den ursprungliga fysiska storleken på den plats som anges av ett koordinatpar.

public:
 void DrawImage(System::Drawing::Image ^ image, int x, int y);
public void DrawImage(System.Drawing.Image image, int x, int y);
member this.DrawImage : System.Drawing.Image * int * int -> unit
Public Sub DrawImage (image As Image, x As Integer, y As Integer)

Parametrar

image
Image

Image att rita.

x
Int32

X-koordinaten för det övre vänstra hörnet av den ritade bilden.

y
Int32

y-koordinaten i det övre vänstra hörnet av den ritade bilden.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet SampImag.jpg i mappen i exemplet.

  • Skapar koordinaterna för en punkt där bildens övre vänstra hörn ska ritas.

  • Ritar den oskalade bilden.

public:
   void DrawImage2Int( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create coordinates for upper-left corner of image.
      int x = 100;
      int y = 100;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, x, y );
   }
public void DrawImage2Int(PaintEventArgs e)
{
                
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
                
    // Create coordinates for upper-left corner of image.
    int x = 100;
    int y = 100;
                
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y);
}
Public Sub DrawImage2Int(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create coordinates for upper-left corner of image.
    Dim x As Integer = 100
    Dim y As Integer = 100

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y)
End Sub

Kommentarer

En Image lagrar ett värde för pixelbredd och ett värde för vågrät upplösning (punkter per tum). Den fysiska bredden, mätt i tum, för en bild är bildpunktsbredden dividerad med den vågräta upplösningen. Till exempel har en bild med en pixelbredd på 216 och en vågrät upplösning på 72 punkter per tum en fysisk bredd på 3 tum. Liknande kommentarer gäller pixelhöjd och fysisk höjd.

Metoden DrawImage ritar en bild med sin fysiska storlek, så att bilden får rätt storlek i tum oavsett upplösning (punkter per tum) på visningsenheten. Anta till exempel att en bild har en pixelbredd på 216 och en vågrät upplösning på 72 punkter per tum. Om du anropar DrawImage för att rita bilden på en enhet som har en upplösning på 96 punkter per tum blir bildpunktsbredden för den renderade bilden (216/72)*96 = 288.

Se även

Gäller för

DrawImage(Image, Int32, Int32, Rectangle, GraphicsUnit)

Ritar en del av en bild på en angiven plats.

public:
 void DrawImage(System::Drawing::Image ^ image, int x, int y, System::Drawing::Rectangle srcRect, System::Drawing::GraphicsUnit srcUnit);
public void DrawImage(System.Drawing.Image image, int x, int y, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit);
member this.DrawImage : System.Drawing.Image * int * int * System.Drawing.Rectangle * System.Drawing.GraphicsUnit -> unit
Public Sub DrawImage (image As Image, x As Integer, y As Integer, srcRect As Rectangle, srcUnit As GraphicsUnit)

Parametrar

image
Image

Image att rita.

x
Int32

X-koordinaten för det övre vänstra hörnet av den ritade bilden.

y
Int32

y-koordinaten i det övre vänstra hörnet av den ritade bilden.

srcRect
Rectangle

Rectangle struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar koordinaterna där bildens övre vänstra hörn ska ritas.

  • Skapar en källrektangel som en del av avbildningen ska extraheras från.

  • Anger måttenheten för källrektangeln till pixlar.

  • Ritar bilden till skärmen.

Storleken på källrektangeln avgör vilken del av den oskalade originalbilden som ritas till skärmen.

public:
   void DrawImage2IntRect( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create coordinates for upper-left corner of image.
      int x = 100;
      int y = 100;

      // Create rectangle for source image.
      Rectangle srcRect = Rectangle(50,50,150,150);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, x, y, srcRect, units );
   }
public void DrawImage2IntRect(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create coordinates for upper-left corner of image.
    int x = 100;
    int y = 100;
             
    // Create rectangle for source image.
    Rectangle srcRect = new Rectangle(50, 50, 150, 150);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y, srcRect, units);
}
Public Sub DrawImage2IntRect(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create coordinates for upper-left corner of image.
    Dim x As Integer = 100
    Dim y As Integer = 100

    ' Create rectangle for source image.
    Dim srcRect As New Rectangle(50, 50, 150, 150)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y, srcRect, units)
End Sub

Kommentarer

En Image lagrar ett värde för pixelbredd och ett värde för vågrät upplösning (punkter per tum). Den fysiska bredden, mätt i tum, för en bild är bildpunktsbredden dividerad med den vågräta upplösningen. Till exempel har en bild med en pixelbredd på 360 och en vågrät upplösning på 72 punkter per tum en fysisk bredd på 5 tum. Liknande kommentarer gäller pixelhöjd och fysisk höjd.

Den här metoden ritar en del av en bild med hjälp av dess fysiska storlek, så att bilddelen har rätt storlek i tum oavsett upplösning (punkter per tum) på visningsenheten. Anta till exempel att en bilddel har en pixelbredd på 216 och en vågrät upplösning på 72 punkter per tum. Om du anropar den här metoden för att rita den bilddelen på en enhet som har en upplösning på 96 punkter per tum blir bildpunktsbredden för den renderade bilddelen (216/72)*96 = 288.

Se även

Gäller för

DrawImage(Image, Point[], Rectangle, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, cli::array <System::Drawing::Point> ^ destPoints, System::Drawing::Rectangle srcRect, System::Drawing::GraphicsUnit srcUnit);
public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit);
member this.DrawImage : System.Drawing.Image * System.Drawing.Point[] * System.Drawing.Rectangle * System.Drawing.GraphicsUnit -> unit
Public Sub DrawImage (image As Image, destPoints As Point(), srcRect As Rectangle, srcUnit As GraphicsUnit)

Parametrar

image
Image

Image att rita.

destPoints
Point[]

Matris med tre Point strukturer som definierar ett parallellogram.

srcRect
Rectangle

Rectangle struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar ett parallellogram där bilden ska ritas.

  • Skapar en rektangel för att välja den del av bilden som ska ritas.

  • Anger grafikritningsenheten till pixel.

  • Ritar bilden till skärmen.

Positionen för parallellogrammet lokaliserar bilden på skärmen, och storleken på rektangeln och storleken och formen på parallellogrammet avgör skalning och klippning av den ritade bilden.

private:
   void DrawImageParaRect( PaintEventArgs^ e )
   {

      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create parallelogram for drawing image.
      Point ulCorner = Point(100,100);
      Point urCorner = Point(325,100);
      Point llCorner = Point(150,250);
      array<Point>^ destPara = {ulCorner,urCorner,llCorner};

      // Create rectangle for source image.
      Rectangle srcRect = Rectangle(50,50,150,150);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, destPara, srcRect, units );
   }
private void DrawImageParaRect(PaintEventArgs e)
{
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create parallelogram for drawing image.
    Point ulCorner = new Point(100, 100);
    Point urCorner = new Point(325, 100);
    Point llCorner = new Point(150, 250);
    Point[] destPara = {ulCorner, urCorner, llCorner};
             
    // Create rectangle for source image.
    Rectangle srcRect = new Rectangle(50, 50, 150, 150);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, destPara, srcRect, units);
}
Private Sub DrawImageParaRect(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create parallelogram for drawing image.
    Dim ulCorner As New Point(100, 100)
    Dim urCorner As New Point(325, 100)
    Dim llCorner As New Point(150, 250)
    Dim destPara As Point() = {ulCorner, urCorner, llCorner}

    ' Create rectangle for source image.
    Dim srcRect As New Rectangle(50, 50, 150, 150)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, destPara, srcRect, units)
End Sub

Kommentarer

Parametern destPoints anger tre punkter i ett parallellogram. De tre Point strukturerna representerar parallellogrammets övre vänstra, övre högra och nedre vänstra hörn. Den fjärde punkten extrapoleras från de tre första för att bilda ett parallellogram.

Parametern srcRect anger en rektangulär del av objektet som image ska ritas. Den här delen skalas och klipps för att passa in i det parallellogram som anges av parametern destPoints .

Se även

Gäller för

DrawImage(Image, PointF[], RectangleF, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, cli::array <System::Drawing::PointF> ^ destPoints, System::Drawing::RectangleF srcRect, System::Drawing::GraphicsUnit srcUnit);
public void DrawImage(System.Drawing.Image image, System.Drawing.PointF[] destPoints, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit);
member this.DrawImage : System.Drawing.Image * System.Drawing.PointF[] * System.Drawing.RectangleF * System.Drawing.GraphicsUnit -> unit
Public Sub DrawImage (image As Image, destPoints As PointF(), srcRect As RectangleF, srcUnit As GraphicsUnit)

Parametrar

image
Image

Image att rita.

destPoints
PointF[]

Matris med tre PointF strukturer som definierar ett parallellogram.

srcRect
RectangleF

RectangleF struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar ett målparallellogram där bilden ska ritas.

  • Skapar en källrektangel som en del av avbildningen ska extraheras från.

  • Anger måttenheten för källrektangeln till pixlar.

  • Ritar bilden till skärmen.

Positionen för målparallellogrammet lokaliserar bilden på skärmen, storleken på källrektangeln och målparallellogrammets storlek och form avgör skalning och klippning av den ritade bilden och rektangelns storlek avgör vilken del av den ursprungliga bilden som ritas till skärmen.

private:
   void DrawImageParaFRectF( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create parallelogram for drawing image.
      PointF ulCorner = PointF(100.0F,100.0F);
      PointF urCorner = PointF(550.0F,100.0F);
      PointF llCorner = PointF(150.0F,250.0F);
      array<PointF>^ destPara = {ulCorner,urCorner,llCorner};

      // Create rectangle for source image.
      RectangleF srcRect = RectangleF(50.0F,50.0F,150.0F,150.0F);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, destPara, srcRect, units );
   }
private void DrawImageParaFRectF(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create parallelogram for drawing image.
    PointF ulCorner = new PointF(100.0F, 100.0F);
    PointF urCorner = new PointF(550.0F, 100.0F);
    PointF llCorner = new PointF(150.0F, 250.0F);
    PointF[] destPara = {ulCorner, urCorner, llCorner};
             
    // Create rectangle for source image.
    RectangleF srcRect = new RectangleF(50.0F, 50.0F, 150.0F, 150.0F);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, destPara, srcRect, units);
}
Private Sub DrawImageParaFRectF(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create parallelogram for drawing image.
    Dim ulCorner As New PointF(100.0F, 100.0F)
    Dim urCorner As New PointF(550.0F, 100.0F)
    Dim llCorner As New PointF(150.0F, 250.0F)
    Dim destPara As PointF() = {ulCorner, urCorner, llCorner}

    ' Create rectangle for source image.
    Dim srcRect As New RectangleF(50.0F, 50.0F, 150.0F, 150.0F)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, destPara, srcRect, units)
End Sub

Kommentarer

Parametern destPoints anger tre punkter i ett parallellogram. De tre PointF strukturerna representerar parallellogrammets övre vänstra, övre högra och nedre vänstra hörn. Den fjärde punkten extrapoleras från de tre första för att bilda ett parallellogram.

Parametern srcRect anger en rektangulär del av objektet som image ska ritas. Den här delen skalas och klipps för att passa in i det parallellogram som anges av parametern destPoints .

Se även

Gäller för

DrawImage(Image, Rectangle, Rectangle, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Rectangle destRect, System::Drawing::Rectangle srcRect, System::Drawing::GraphicsUnit srcUnit);
public void DrawImage(System.Drawing.Image image, System.Drawing.Rectangle destRect, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit);
member this.DrawImage : System.Drawing.Image * System.Drawing.Rectangle * System.Drawing.Rectangle * System.Drawing.GraphicsUnit -> unit
Public Sub DrawImage (image As Image, destRect As Rectangle, srcRect As Rectangle, srcUnit As GraphicsUnit)

Parametrar

image
Image

Image att rita.

destRect
Rectangle

Rectangle struktur som anger platsen och storleken på den ritade bilden. Bilden skalas för att passa rektangeln.

srcRect
Rectangle

Rectangle struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar en målrektangel där bilden ska ritas.

  • Skapar en källrektangel som en del av avbildningen ska extraheras från.

  • Anger måttenheten för källrektangeln till pixlar.

  • Ritar bilden till skärmen.

Målrektangelns position lokaliserar bilden på skärmen, storleken på käll- och målrektanglarna avgör skalningen av den ritade bilden och storleken på källrektangeln avgör vilken del av den ursprungliga bilden som ritas till skärmen.

private:
   void DrawImageRectRect( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create rectangle for displaying image.
      Rectangle destRect = Rectangle(100,100,450,150);

      // Create rectangle for source image.
      Rectangle srcRect = Rectangle(50,50,150,150);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, destRect, srcRect, units );
   }
private void DrawImageRectRect(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying image.
    Rectangle destRect = new Rectangle(100, 100, 450, 150);
             
    // Create rectangle for source image.
    Rectangle srcRect = new Rectangle(50, 50, 150, 150);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect, srcRect, units);
}
Private Sub DrawImageRectRect(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying image.
    Dim destRect As New Rectangle(100, 100, 450, 150)

    ' Create rectangle for source image.
    Dim srcRect As New Rectangle(50, 50, 150, 150)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect, srcRect, units)
End Sub

Kommentarer

Parametern srcRect anger en rektangulär del av objektet som image ska ritas. Den här delen skalas för att passa in i den rektangel som anges av parametern destRect .

Se även

Gäller för

DrawImage(Image, RectangleF, RectangleF, GraphicsUnit)

Ritar den angivna delen av den angivna Image platsen och med den angivna storleken.

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::RectangleF destRect, System::Drawing::RectangleF srcRect, System::Drawing::GraphicsUnit srcUnit);
public void DrawImage(System.Drawing.Image image, System.Drawing.RectangleF destRect, System.Drawing.RectangleF srcRect, System.Drawing.GraphicsUnit srcUnit);
member this.DrawImage : System.Drawing.Image * System.Drawing.RectangleF * System.Drawing.RectangleF * System.Drawing.GraphicsUnit -> unit
Public Sub DrawImage (image As Image, destRect As RectangleF, srcRect As RectangleF, srcUnit As GraphicsUnit)

Parametrar

image
Image

Image att rita.

destRect
RectangleF

RectangleF struktur som anger platsen och storleken på den ritade bilden. Bilden skalas för att passa rektangeln.

srcRect
RectangleF

RectangleF struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar en målrektangel där bilden ska ritas.

  • Skapar en källrektangel som en del av avbildningen ska extraheras från.

  • Anger måttenheten för källrektangeln till pixlar.

  • Ritar bilden till skärmen.

Målrektangelns position lokaliserar bilden på skärmen, storleken på käll- och målrektanglarna avgör skalningen av den ritade bilden och storleken på källrektangeln avgör vilken del av den ursprungliga bilden som ritas till skärmen.

public:
   void DrawImageRectFRectF( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create rectangle for displaying image.
      RectangleF destRect = RectangleF(100.0F,100.0F,450.0F,150.0F);

      // Create rectangle for source image.
      RectangleF srcRect = RectangleF(50.0F,50.0F,150.0F,150.0F);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, destRect, srcRect, units );
   }
public void DrawImageRectFRectF(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create rectangle for displaying image.
    RectangleF destRect = new RectangleF(100.0F, 100.0F, 450.0F, 150.0F);
             
    // Create rectangle for source image.
    RectangleF srcRect = new RectangleF(50.0F, 50.0F, 150.0F, 150.0F);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect, srcRect, units);
}
Public Sub DrawImageRectFRectF(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create rectangle for displaying image.
    Dim destRect As New RectangleF(100.0F, 100.0F, 450.0F, 150.0F)

    ' Create rectangle for source image.
    Dim srcRect As New RectangleF(50.0F, 50.0F, 150.0F, 150.0F)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, destRect, srcRect, units)
End Sub

Kommentarer

Parametern srcRect anger en rektangulär del av objektet som image ska ritas. Den här delen skalas för att passa in i den rektangel som anges av parametern destRect .

Se även

Gäller för

DrawImage(Image, Single, Single)

Ritar den angivna Image, med dess ursprungliga fysiska storlek, på den angivna platsen.

public:
 void DrawImage(System::Drawing::Image ^ image, float x, float y);
public void DrawImage(System.Drawing.Image image, float x, float y);
member this.DrawImage : System.Drawing.Image * single * single -> unit
Public Sub DrawImage (image As Image, x As Single, y As Single)

Parametrar

image
Image

Image att rita.

x
Single

X-koordinaten för det övre vänstra hörnet av den ritade bilden.

y
Single

y-koordinaten i det övre vänstra hörnet av den ritade bilden.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar koordinaterna för en punkt där bildens övre vänstra hörn ska ritas.

  • Ritar den oskalade bilden till skärmen.

public:
   void DrawImage2Float( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create coordinates for upper-left corner of image.
      float x = 100.0F;
      float y = 100.0F;

      // Draw image to screen.
      e->Graphics->DrawImage( newImage, x, y );
   }
public void DrawImage2Float(PaintEventArgs e)
{
             
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create coordinates for upper-left corner of image.
    float x = 100.0F;
    float y = 100.0F;
             
    // Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y);
}
Public Sub DrawImage2Float(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create coordinates for upper-left corner of image.
    Dim x As Single = 100.0F
    Dim y As Single = 100.0F

    ' Draw image to screen.
    e.Graphics.DrawImage(newImage, x, y)
End Sub

Kommentarer

En Image lagrar ett värde för pixelbredd och ett värde för vågrät upplösning (punkter per tum). Den fysiska bredden, mätt i tum, för en bild är bildpunktsbredden dividerad med den vågräta upplösningen. Till exempel har en bild med en pixelbredd på 216 och en vågrät upplösning på 72 punkter per tum en fysisk bredd på 3 tum. Liknande kommentarer gäller pixelhöjd och fysisk höjd.

Den här metoden ritar en bild med hjälp av dess fysiska storlek, så att bilden har rätt storlek i tum oavsett upplösning (punkter per tum) på visningsenheten. Anta till exempel att en bild har en pixelbredd på 216 och en vågrät upplösning på 72 punkter per tum. Om du anropar den här metoden för att rita bilden på en enhet som har en upplösning på 96 punkter per tum blir pixelbredden för den renderade bilden (216/72)*96 = 288.

Se även

Gäller för

DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes)

Ritar den angivna delen av den angivna Image på den angivna platsen.

public:
 void DrawImage(System::Drawing::Image ^ image, cli::array <System::Drawing::Point> ^ destPoints, System::Drawing::Rectangle srcRect, System::Drawing::GraphicsUnit srcUnit, System::Drawing::Imaging::ImageAttributes ^ imageAttr);
public void DrawImage(System.Drawing.Image image, System.Drawing.Point[] destPoints, System.Drawing.Rectangle srcRect, System.Drawing.GraphicsUnit srcUnit, System.Drawing.Imaging.ImageAttributes imageAttr);
member this.DrawImage : System.Drawing.Image * System.Drawing.Point[] * System.Drawing.Rectangle * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes -> unit
Public Sub DrawImage (image As Image, destPoints As Point(), srcRect As Rectangle, srcUnit As GraphicsUnit, imageAttr As ImageAttributes)

Parametrar

image
Image

Image att rita.

destPoints
Point[]

Matris med tre Point strukturer som definierar ett parallellogram.

srcRect
Rectangle

Rectangle struktur som anger den del av objektet som image ska ritas.

srcUnit
GraphicsUnit

Medlem i uppräkningen GraphicsUnit som anger de måttenheter som används av parametern srcRect .

imageAttr
ImageAttributes

ImageAttributes som anger omfärgning och gammainformation för image objektet.

Undantag

image är null.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  • Skapar en bild från en JPEG-fil SampImag.jpg i mappen i exemplet.

  • Skapar punkter som definierar ett parallellogram där bilden ska ritas.

  • Skapar en rektangel för att välja den del av bilden som ska ritas.

  • Anger grafikritningsenheten till pixel.

  • Ritar den ursprungliga bilden till skärmen.

  • Skapar ytterligare ett parallellogram där en justerad bild ska ritas.

  • Skapar och anger attributen för den justerade bilden så att de har ett gammavärde som är större än vanligt.

  • Ritar den justerade bilden till skärmen.

För det ursprungliga, ojusterade parallellogrammet letar positionen upp bilden på skärmen, och rektangelns storlek och storlek och form avgör skalning och klippning av den ritade bilden.

private:
   void DrawImageParaRectAttrib( PaintEventArgs^ e )
   {
      // Create image.
      Image^ newImage = Image::FromFile( "SampImag.jpg" );

      // Create parallelogram for drawing image.
      Point ulCorner1 = Point(100,100);
      Point urCorner1 = Point(325,100);
      Point llCorner1 = Point(150,250);
      array<Point>^ destPara1 = {ulCorner1,urCorner1,llCorner1};

      // Create rectangle for source image.
      Rectangle srcRect = Rectangle(50,50,150,150);
      GraphicsUnit units = GraphicsUnit::Pixel;

      // Draw original image to screen.
      e->Graphics->DrawImage( newImage, destPara1, srcRect, units );

      // Create parallelogram for drawing adjusted image.
      Point ulCorner2 = Point(325,100);
      Point urCorner2 = Point(550,100);
      Point llCorner2 = Point(375,250);
      array<Point>^ destPara2 = {ulCorner2,urCorner2,llCorner2};

      // Create image attributes and set large gamma.
      ImageAttributes^ imageAttr = gcnew ImageAttributes;
      imageAttr->SetGamma( 4.0F );

      // Draw adjusted image to screen.
      e->Graphics->DrawImage( newImage, destPara2, srcRect, units, imageAttr );
   }
private void DrawImageParaRectAttrib(PaintEventArgs e)
{
    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");
             
    // Create parallelogram for drawing image.
    Point ulCorner1 = new Point(100, 100);
    Point urCorner1 = new Point(325, 100);
    Point llCorner1 = new Point(150, 250);
    Point[] destPara1 = {ulCorner1, urCorner1, llCorner1};
             
    // Create rectangle for source image.
    Rectangle srcRect = new Rectangle(50, 50, 150, 150);
    GraphicsUnit units = GraphicsUnit.Pixel;
             
    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units);
             
    // Create parallelogram for drawing adjusted image.
    Point ulCorner2 = new Point(325, 100);
    Point urCorner2 = new Point(550, 100);
    Point llCorner2 = new Point(375, 250);
    Point[] destPara2 = {ulCorner2, urCorner2, llCorner2};
             
    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
             
    // Draw adjusted image to screen.
    e.Graphics.DrawImage(newImage, destPara2, srcRect, units, imageAttr);
}
Private Sub DrawImageParaRectAttrib(ByVal e As PaintEventArgs)

    ' Create image.
    Dim newImage As Image = Image.FromFile("SampImag.jpg")

    ' Create parallelogram for drawing image.
    Dim ulCorner1 As New Point(100, 100)
    Dim urCorner1 As New Point(325, 100)
    Dim llCorner1 As New Point(150, 250)
    Dim destPara1 As Point() = {ulCorner1, urCorner1, llCorner1}

    ' Create rectangle for source image.
    Dim srcRect As New Rectangle(50, 50, 150, 150)
    Dim units As GraphicsUnit = GraphicsUnit.Pixel

    ' Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units)

    ' Create parallelogram for drawing adjusted image.
    Dim ulCorner2 As New Point(325, 100)
    Dim urCorner2 As New Point(550, 100)
    Dim llCorner2 As New Point(375, 250)
    Dim destPara2 As Point() = {ulCorner2, urCorner2, llCorner2}

    ' Create image attributes and set large gamma.
    Dim imageAttr As New ImageAttributes
    imageAttr.SetGamma(4.0F)

    ' Draw adjusted image to screen.
    e.Graphics.DrawImage(newImage, destPara2, srcRect, units, _
    imageAttr)
End Sub

Kommentarer

Parametern destPoints anger tre punkter i ett parallellogram. De tre Point strukturerna representerar parallellogrammets övre vänstra, övre högra och nedre vänstra hörn. Den fjärde punkten extrapoleras från de tre första för att bilda ett parallellogram.

Parametern srcRect anger en rektangulär del av objektet somimage ska ritas. Den här delen skalas och klipps för att passa in i det parallellogram som anges av parametern destPoints .

Se även

Gäller för