Graphics.DrawImage Метод

Определение

Рисует указанный объект Image в заданном месте, используя исходный размер.

Перегрузки

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

Рисует часть изображения в заданном месте.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданный объект Image в заданном месте, используя указанный размер.

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

Рисует заданный объект Image в заданном месте, используя указанный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

DrawImage(Image, Effect)
DrawImage(Image, Point)

Рисует заданный объект Image в указанном месте, используя его исходный фактический размер.

DrawImage(Image, Point[])

Рисует указанный объект Image в заданном месте, используя указанную форму и размер.

DrawImage(Image, PointF)

Рисует заданный объект Image в указанном месте, используя его исходный фактический размер.

DrawImage(Image, PointF[])

Рисует указанный объект Image в заданном месте, используя указанную форму и размер.

DrawImage(Image, Rectangle)

Рисует заданный объект Image в заданном месте, используя указанный размер.

DrawImage(Image, RectangleF)

Рисует заданный объект Image в заданном месте, используя указанный размер.

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

Рисует часть изображения в заданном месте.

DrawImage(Image, Single, Single)

Рисует заданный объект Image в указанном месте, используя его исходный фактический размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

DrawImage(Image, Rectangle, Rectangle, GraphicsUnit)

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

DrawImage(Image, RectangleF, RectangleF, GraphicsUnit)

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

DrawImage(Image, Int32, Int32)

Рисует указанное изображение, используя его исходный фактический размер, в месте, заданном парой координат.

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

Рисует заданную часть указанного объекта Image в заданном месте.

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

Рисует часть изображения в заданном месте.

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)

Параметры

image
Image

Объект Image для рисования.

x
Single

Координата X верхнего левого угла формируемого изображения.

y
Single

Координата Y верхнего левого угла формируемого изображения.

srcRect
RectangleF

Структура RectangleF, которая задает часть объекта Image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает координаты, по которым рисуется левый верхний угол изображения.

  • Создает исходный прямоугольник, из которого извлекается часть изображения.

  • Задает единицу измерения исходного прямоугольника в пикселях.

  • Рисует изображение на экране.

Размер исходного прямоугольника определяет, какая часть немасштабированного исходного изображения будет отрисована на экране.

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

Комментарии

Сохраняет Image значение ширины пикселей и значение для горизонтального разрешения (точек на дюйм). Физическая ширина изображения, измеряемая в дюймах, представляет собой ширину пикселей, деленную на горизонтальное разрешение. Например, изображение с шириной в пикселях 360 и горизонтальным разрешением 72 точек на дюйм имеет физическую ширину 5 дюймов. Аналогичные замечания относятся к высоте пикселей и физической высоте.

Этот метод рисует часть изображения, используя его физический размер, поэтому часть изображения будет иметь правильный размер в дюймах независимо от разрешения (точек на дюйм) устройства отображения. Например, предположим, что часть изображения имеет ширину в пикселях 216 и горизонтальное разрешение 72 точки на дюйм. Если вызвать этот метод для рисования этой части изображения на устройстве с разрешением 96 точек на дюйм, ширина отображаемой части изображения будет составлять (216/72)*96 = 288.

См. также раздел

Применяется к

DrawImage(Image, Effect, RectangleF, Matrix, GraphicsUnit, ImageAttributes)

public void DrawImage (System.Drawing.Image image, System.Drawing.Imaging.Effects.Effect effect, System.Drawing.RectangleF srcRect = default, System.Drawing.Drawing2D.Matrix? transform = default, System.Drawing.GraphicsUnit srcUnit = System.Drawing.GraphicsUnit.Pixel, System.Drawing.Imaging.ImageAttributes? imageAttr = default);
member this.DrawImage : System.Drawing.Image * System.Drawing.Imaging.Effects.Effect * System.Drawing.RectangleF * System.Drawing.Drawing2D.Matrix * System.Drawing.GraphicsUnit * System.Drawing.Imaging.ImageAttributes -> unit
Public Sub DrawImage (image As Image, effect As Effect, Optional srcRect As RectangleF = Nothing, Optional transform As Matrix = Nothing, Optional srcUnit As GraphicsUnit = System.Drawing.GraphicsUnit.Pixel, Optional imageAttr As ImageAttributes = Nothing)

Параметры

image
Image
effect
Effect
srcRect
RectangleF
transform
Matrix
srcUnit
GraphicsUnit
imageAttr
ImageAttributes

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destPoints
Point[]

Массив из трех структур PointF, определяющих параллелограмм.

srcRect
Rectangle

Структура Rectangle, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

imageAttr
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

callback
Graphics.DrawImageAbort

Делегат Graphics.DrawImageAbort, который задает метод, вызываемый в процессе создания изображения. Этот метод часто вызывается, чтобы проверить, следует ли остановить выполнение метода DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) в соответствии с условиями, определяемыми приложением.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код сначала определяет метод обратного вызова для делегата Graphics.DrawImageAbort . Определение упрощено и просто проверяет, вызывает ли DrawImage метод его с параметром NULL callBackData . В main тексте примера выполняются следующие действия:

  • Создает экземпляр метода обратного Graphics.DrawImageAbort вызова:

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие параллелограмм для рисования изображения.

  • Создает прямоугольник для выбора части рисуемого изображения.

  • Задает для графического блока рисования пиксель.

  • Рисует исходное изображение на экране.

  • Создает дополнительный параллелограмм для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного неизменяемого параллелограмма положение располагает изображение на экране, а размер прямоугольника и размер и форма параллелограмма определяют масштабирование и сдвига нарисованного изображения.

Так как в этом примере используется перегрузка, которая не передает callBackData параметр, Graphics.DrawImageAbort обратный вызов возвращает true, что приводит к завершению DrawImage метода, а код обработки исключений, включенный в пример, выводит текст исключения, а не рисует изображение.

   // 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

Комментарии

Параметр destPoints задает три точки параллелограмма. Три PointF структуры представляют верхний левый, верхний правый и нижний левый углы параллелограмма. Четвертый пункт экстраполируется из первых трех для формирования параллелограмма.

Параметр srcRect задает прямоугольную часть объекта для image рисования. Эта часть масштабируется и сдвигается в соответствии с параллелограммом, заданным параметром destPoints .

Эта перегрузка с параметром callback предоставляет средства для остановки рисования изображения после его запуска в соответствии с критериями, определенными приложением. Например, приложение может начать рисование большого изображения, а пользователь может прокрутить изображение с экрана, в этом случае приложение может остановить рисование.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destPoints
PointF[]

Массив из трех структур PointF, определяющих параллелограмм.

srcRect
RectangleF

Структура RectangleF, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

imageAttr
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

callback
Graphics.DrawImageAbort

Делегат Graphics.DrawImageAbort, который задает метод, вызываемый в процессе создания изображения. Этот метод часто вызывается, чтобы проверить, следует ли остановить выполнение метода DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) в соответствии с условиями, определяемыми приложением.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код сначала определяет метод обратного вызова для делегата Graphics.DrawImageAbort . Определение упрощено и просто проверяет, вызывает ли DrawImage метод его с параметром NULL callBackData . В main тексте примера выполняются следующие действия:

  • Создает экземпляр метода обратного Graphics.DrawImageAbort вызова.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие параллелограмм для рисования изображения.

  • Создает прямоугольник для выбора части рисуемого изображения.

  • Задает для графического блока рисования пиксель.

  • Рисует исходное изображение на экране.

  • Создает дополнительный параллелограмм для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного неизменяемого параллелограмма положение располагает изображение на экране, а размер прямоугольника и размер и форма параллелограмма определяют масштабирование и сдвига нарисованного изображения.

Так как в этом примере используется перегрузка, которая не передает callBackData параметр, Graphics.DrawImageAbort обратный вызов возвращает true, что приводит к завершению DrawImage метода, а код обработки исключений, включенный в пример, выводит текст исключения, а не рисует изображение.

   // 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

Комментарии

Параметр destPoints задает три точки параллелограмма. Три PointF структуры представляют верхний левый, верхний правый и нижний левый углы параллелограмма. Четвертый пункт экстраполируется из первых трех для формирования параллелограмма.

Параметр srcRect задает прямоугольную часть объекта для image рисования. Эта часть масштабируется и сдвигается в соответствии с параллелограммом, заданным параметром destPoints .

Эта перегрузка с параметром callback предоставляет средства для остановки рисования изображения после его запуска в соответствии с критериями, определенными приложением. Например, приложение может начать рисование большого изображения, а пользователь может прокрутить изображение с экрана, в этом случае приложение может остановить рисование.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destPoints
Point[]

Массив из трех структур PointF, определяющих параллелограмм.

srcRect
Rectangle

Структура Rectangle, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

imageAttr
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

callback
Graphics.DrawImageAbort

Делегат Graphics.DrawImageAbort, который задает метод, вызываемый в процессе создания изображения. Этот метод часто вызывается, чтобы проверить, следует ли остановить выполнение метода DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32) в соответствии с условиями, определяемыми приложением.

callbackData
Int32

Значение, содержащее дополнительные данные для делегата Graphics.DrawImageAbort, которые используются при проверке необходимости остановки выполнения метода DrawImage(Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32).

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код сначала определяет метод обратного вызова для делегата Graphics.DrawImageAbort . Определение упрощено и просто проверяет, вызывает ли DrawImage метод его с параметром NULL callBackData . В main тексте примера выполняются следующие действия:

  • Создает экземпляр метода обратного Graphics.DrawImageAbort вызова.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие параллелограмм для рисования изображения.

  • Создает прямоугольник для выбора части рисуемого изображения.

  • Задает для графического блока рисования пиксель.

  • Рисует исходное изображение на экране.

  • Создает дополнительный параллелограмм для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного неизменяемого параллелограмма положение располагает изображение на экране, а размер прямоугольника и размер и форма параллелограмма определяют масштабирование и сдвига нарисованного изображения.

Так как в этом примере используется перегрузка callBackData , которая передает параметр, Graphics.DrawImageAbort обратный вызов возвращает false, что приводит DrawImage к продолжению метода, и в примере на экране рисуется скорректированное изображение.

   // 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

Комментарии

Параметр destPoints задает три точки параллелограмма. Три PointF структуры представляют верхний левый, верхний правый и нижний левый углы параллелограмма. Четвертый пункт экстраполируется из первых трех для формирования параллелограмма.

Параметр srcRect задает прямоугольную часть объекта для image рисования. Эта часть масштабируется и сдвигается в соответствии с параллелограммом, заданным параметром destPoints .

Эта перегрузка параметрами callback и callbackData предоставляет средства для остановки рисования изображения после его запуска в соответствии с критериями и данными, определенными приложением. Например, приложение может начать рисование большого изображения, а пользователь может прокрутить изображение с экрана, в этом случае приложение может остановить рисование.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destPoints
PointF[]

Массив из трех структур PointF, определяющих параллелограмм.

srcRect
RectangleF

Структура RectangleF, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

imageAttr
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

callback
Graphics.DrawImageAbort

Делегат Graphics.DrawImageAbort, который задает метод, вызываемый в процессе создания изображения. Этот метод часто вызывается, чтобы проверить, следует ли остановить выполнение метода DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32) в соответствии с условиями, определяемыми приложением.

callbackData
Int32

Значение, содержащее дополнительные данные для делегата Graphics.DrawImageAbort, которые используются при проверке необходимости остановки выполнения метода DrawImage(Image, PointF[], RectangleF, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, Int32).

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика PaPaint событий. Код сначала определяет метод обратного вызова для делегата Graphics.DrawImageAbort . Определение упрощено и просто проверяет, вызывает ли DrawImage метод его с параметром NULL callBackData . В main тексте примера выполняются следующие действия:

  • Создает экземпляр метода обратного Graphics.DrawImageAbort вызова.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие параллелограмм для рисования изображения.

  • Создает прямоугольник для выбора части рисуемого изображения.

  • Задает для графического блока рисования пиксель.

  • Рисует исходное изображение на экране.

  • Создает дополнительный параллелограмм для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного неизменяемого параллелограмма положение располагает изображение на экране, а размер прямоугольника и размер и форма параллелограмма определяют масштабирование и сдвига нарисованного изображения.

Так как в этом примере используется перегрузка callBackData , которая передает параметр, Graphics.DrawImageAbort обратный вызов возвращает false, что приводит DrawImage к продолжению метода, и в примере на экране рисуется скорректированное изображение.

   // 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

Комментарии

Параметр destPoints задает три точки параллелограмма. Три PointF структуры представляют верхний левый, верхний правый и нижний левый углы параллелограмма. Четвертый пункт экстраполируется из первых трех для формирования параллелограмма.

Параметр srcRect задает прямоугольную часть объекта для image рисования. Эта часть масштабируется и сдвигается в соответствии с параллелограммом, заданным параметром destPoints .

Эта перегрузка параметрами callback и callbackData предоставляет средства для остановки рисования изображения после его запуска в соответствии с критериями и данными, определенными приложением. Например, приложение может начать рисование большого изображения, а пользователь может прокрутить изображение с экрана, в этом случае приложение может остановить рисование.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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)

Параметры

image
Image

Объект Image для рисования.

destRect
Rectangle

Структура Rectangle, которая задает расположение и размер формируемого изображения. Изображение масштабируется по размерам прямоугольника.

srcX
Int32

Координата X верхнего левого угла отображаемой части исходного изображения.

srcY
Int32

Координата Y верхнего левого угла отображаемой части исходного изображения.

srcWidth
Int32

Ширина отображаемой части исходного изображения.

srcHeight
Int32

Высота отображаемой части исходного изображения.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые для определения исходного прямоугольника.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает целевой прямоугольник для рисования изображения.

  • Создает координаты исходного прямоугольника, из которого извлекается часть изображения.

  • Задает единицу измерения исходного прямоугольника в пикселях.

  • Рисует изображение на экране.

Расположение целевого прямоугольника определяет расположение изображения на экране, а размеры исходного и целевого прямоугольников определяют масштабирование нарисованного изображения, а размер исходного прямоугольника определяет, какая часть исходного изображения будет отрисована на экране.

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

Комментарии

Параметры srcX, srcY, srcWidthи srcHeight указывают прямоугольную часть отрисовываемого image объекта. Прямоугольник находится относительно левого верхнего угла исходного изображения. Эта часть масштабируется в соответствии с прямоугольником, заданным параметром destRect .

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destRect
Rectangle

Структура Rectangle, которая задает расположение и размер формируемого изображения. Изображение масштабируется по размерам прямоугольника.

srcX
Int32

Координата X верхнего левого угла отображаемой части исходного изображения.

srcY
Int32

Координата Y верхнего левого угла отображаемой части исходного изображения.

srcWidth
Int32

Ширина отображаемой части исходного изображения.

srcHeight
Int32

Высота отображаемой части исходного изображения.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые для определения исходного прямоугольника.

imageAttr
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает целевой прямоугольник для рисования изображения.

  • Создает координаты исходного прямоугольника, из которого извлекается часть изображения.

  • Задает единицу измерения исходного прямоугольника в пикселях.

  • Рисует исходное изображение на экране.

  • Создает дополнительный прямоугольник для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного, неотправляемого прямоугольника назначения положение располагает изображение на экране, а размеры исходного и целевого прямоугольников определяют масштабирование нарисованного изображения, а размер исходного прямоугольника определяет, какая часть исходного изображения будет отрисована на экране.

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

Комментарии

Параметры srcX, srcY, srcWidthи srcHeight указывают прямоугольную часть отрисовываемого image объекта. Прямоугольник находится относительно левого верхнего угла исходного изображения. Эта часть масштабируется в соответствии с прямоугольником, заданным параметром destRect .

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destRect
Rectangle

Структура Rectangle, которая задает расположение и размер формируемого изображения. Изображение масштабируется по размерам прямоугольника.

srcX
Single

Координата X верхнего левого угла отображаемой части исходного изображения.

srcY
Single

Координата Y верхнего левого угла отображаемой части исходного изображения.

srcWidth
Single

Ширина отображаемой части исходного изображения.

srcHeight
Single

Высота отображаемой части исходного изображения.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые для определения исходного прямоугольника.

imageAttrs
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает целевой прямоугольник для рисования изображения.

  • Создает координаты исходного прямоугольника, из которого извлекается часть изображения.

  • Задает единицу измерения исходного прямоугольника в пикселях.

  • Рисует исходное изображение на экране.

  • Создает дополнительный прямоугольник для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного, неотправляемого прямоугольника назначения положение располагает изображение на экране, а размеры исходного и целевого прямоугольников определяют масштабирование нарисованного изображения, а размер исходного прямоугольника определяет, какая часть исходного изображения будет отрисована на экране.

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

Комментарии

Параметры srcX, srcY, srcWidthи srcHeight указывают прямоугольную часть отрисовываемого image объекта. Прямоугольник находится относительно левого верхнего угла исходного изображения. Эта часть масштабируется в соответствии с прямоугольником, заданным параметром destRect .

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destRect
Rectangle

Структура Rectangle, которая задает расположение и размер формируемого изображения. Изображение масштабируется по размерам прямоугольника.

srcX
Int32

Координата X верхнего левого угла отображаемой части исходного изображения.

srcY
Int32

Координата Y верхнего левого угла отображаемой части исходного изображения.

srcWidth
Int32

Ширина отображаемой части исходного изображения.

srcHeight
Int32

Высота отображаемой части исходного изображения.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые для определения исходного прямоугольника.

imageAttr
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании объекта image.

callback
Graphics.DrawImageAbort

Делегат Graphics.DrawImageAbort, который задает метод, вызываемый в процессе создания изображения. Этот метод часто вызывается, чтобы проверить, следует ли остановить выполнение метода DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) в соответствии с условиями, определяемыми приложением.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код сначала определяет метод обратного вызова для делегата Graphics.DrawImageAbort . Определение упрощено и просто проверяет, вызывает ли DrawImage метод его с параметром NULL callBackData . В main тексте примера выполняются следующие действия:

  • Создает экземпляр метода обратного Graphics.DrawImageAbort вызова.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие целевой прямоугольник для рисования изображения.

  • Создает исходный прямоугольник для выбора части рисуемого изображения.

  • Задает для графического блока рисования пиксель.

  • Рисует исходное изображение на экране.

  • Создает дополнительный прямоугольник назначения для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного прямоугольника назначения без корректировок расположение изображения на экране, а размер исходного прямоугольника, а также размер и форма прямоугольника назначения определяют масштабирование нарисованного изображения.

Так как в этом примере используется перегрузка, которая не передает callBackData параметр, Graphics.DrawImageAbort обратный вызов возвращает true, что приводит к завершению DrawImage метода, а код обработки исключений, включенный в пример, выводит текст исключения, а не рисует изображение.

   // 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

Комментарии

Параметры srcX, srcY, srcWidthи srcHeight указывают прямоугольную часть отрисовываемого image объекта. Прямоугольник находится относительно левого верхнего угла исходного изображения. Эта часть масштабируется в соответствии с прямоугольником, заданным destRect объектом .

Эта перегрузка с параметром callback предоставляет средства для остановки рисования изображения после его запуска в соответствии с критериями, определенными приложением. Например, приложение может начать рисование большого изображения, а пользователь может прокрутить изображение с экрана, в этом случае приложение может остановить рисование.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destRect
Rectangle

Структура Rectangle, которая задает расположение и размер формируемого изображения. Изображение масштабируется по размерам прямоугольника.

srcX
Single

Координата X верхнего левого угла отображаемой части исходного изображения.

srcY
Single

Координата Y верхнего левого угла отображаемой части исходного изображения.

srcWidth
Single

Ширина отображаемой части исходного изображения.

srcHeight
Single

Высота отображаемой части исходного изображения.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые для определения исходного прямоугольника.

imageAttrs
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

callback
Graphics.DrawImageAbort

Делегат Graphics.DrawImageAbort, который задает метод, вызываемый в процессе создания изображения. Этот метод часто вызывается, чтобы проверить, следует ли остановить выполнение метода DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort) в соответствии с условиями, определяемыми приложением.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код сначала определяет метод обратного вызова для делегата Graphics.DrawImageAbort . Определение упрощено и просто проверяет, вызывает ли DrawImage метод его с параметром NULL callBackData . В main тексте примера выполняются следующие действия:

  • Создает экземпляр метода обратного Graphics.DrawImageAbort вызова.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие целевой прямоугольник для рисования изображения.

  • Создает исходный прямоугольник для выбора части рисуемого изображения.

  • Задает для графического блока рисования пиксель.

  • Рисует исходное изображение на экране.

  • Создает дополнительный прямоугольник назначения для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного прямоугольника назначения без корректировок расположение изображения на экране, а размер исходного прямоугольника, а также размер и форма прямоугольника назначения определяют масштабирование нарисованного изображения.

Так как в этом примере используется перегрузка, которая не передает callBackData параметр, Graphics.DrawImageAbort обратный вызов возвращает true, что приводит к завершению DrawImage метода, а код обработки исключений, включенный в пример, выводит текст исключения, а не рисует изображение.

   // 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

Комментарии

Параметры srcX, srcY, srcWidthи srcHeight указывают прямоугольную часть отрисовываемого image объекта. Прямоугольник находится относительно левого верхнего угла исходного изображения. Эта часть масштабируется в соответствии с прямоугольником, заданным параметром destRect .

Эта перегрузка с параметром callback предоставляет средства для остановки рисования изображения после его запуска в соответствии с критериями, определенными приложением. Например, приложение может начать рисование большого изображения, а пользователь может прокрутить изображение с экрана, в этом случае приложение может остановить рисование.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destRect
Rectangle

Структура Rectangle, которая задает расположение и размер формируемого изображения. Изображение масштабируется по размерам прямоугольника.

srcX
Int32

Координата X верхнего левого угла отображаемой части исходного изображения.

srcY
Int32

Координата Y верхнего левого угла отображаемой части исходного изображения.

srcWidth
Int32

Ширина отображаемой части исходного изображения.

srcHeight
Int32

Высота отображаемой части исходного изображения.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые для определения исходного прямоугольника.

imageAttrs
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

callback
Graphics.DrawImageAbort

Делегат Graphics.DrawImageAbort, который задает метод, вызываемый в процессе создания изображения. Этот метод часто вызывается, чтобы проверить, следует ли остановить выполнение метода DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, IntPtr) в соответствии с условиями, определяемыми приложением.

callbackData
IntPtr

nativeint

Значение, содержащее дополнительные данные для делегата Graphics.DrawImageAbort, которые используются при проверке необходимости остановки выполнения метода DrawImage.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код сначала определяет метод обратного вызова для делегата Graphics.DrawImageAbort . Определение упрощено и просто проверяет, вызывает ли DrawImage метод его с параметром NULL callBackData . В main тексте примера выполняются следующие действия:

  • Создает экземпляр метода обратного Graphics.DrawImageAbort вызова.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие целевой прямоугольник для рисования изображения.

  • Создает исходный прямоугольник для выбора части рисуемого изображения.

  • Задает для графического блока рисования пиксель.

  • Рисует исходное изображение на экране.

  • Создает дополнительный прямоугольник назначения для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного прямоугольника назначения без корректировок расположение изображения на экране, а размер исходного прямоугольника, а также размер и форма прямоугольника назначения определяют масштабирование нарисованного изображения.

Так как в этом примере используется перегрузка callBackData , которая передает параметр, Graphics.DrawImageAbort обратный вызов возвращает false, что приводит DrawImage к продолжению метода, и в примере на экране рисуется скорректированное изображение.

   // 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

Комментарии

Параметры srcX, srcY, srcWidthи srcHeight указывают прямоугольную часть отрисовываемого image объекта. Прямоугольник находится относительно левого верхнего угла исходного изображения. Эта часть масштабируется в соответствии с прямоугольником, заданным параметром destRect .

Эта перегрузка параметрами callback и callbackData предоставляет средства для остановки рисования изображения после его запуска в соответствии с критериями и данными, определенными приложением. Например, приложение может начать рисование большого изображения, а пользователь может прокрутить изображение с экрана, в этом случае приложение может остановить рисование.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destRect
Rectangle

Структура Rectangle, которая задает расположение и размер формируемого изображения. Изображение масштабируется по размерам прямоугольника.

srcX
Single

Координата X верхнего левого угла отображаемой части исходного изображения.

srcY
Single

Координата Y верхнего левого угла отображаемой части исходного изображения.

srcWidth
Single

Ширина отображаемой части исходного изображения.

srcHeight
Single

Высота отображаемой части исходного изображения.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые для определения исходного прямоугольника.

imageAttrs
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

callback
Graphics.DrawImageAbort

Делегат Graphics.DrawImageAbort, который задает метод, вызываемый в процессе создания изображения. Этот метод часто вызывается, чтобы проверить, следует ли остановить выполнение метода DrawImage(Image, Rectangle, Single, Single, Single, Single, GraphicsUnit, ImageAttributes, Graphics+DrawImageAbort, IntPtr) в соответствии с условиями, определяемыми приложением.

callbackData
IntPtr

nativeint

Значение, содержащее дополнительные данные для делегата Graphics.DrawImageAbort, которые используются при проверке необходимости остановки выполнения метода DrawImage.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код сначала определяет метод обратного вызова для делегата Graphics.DrawImageAbort . Определение упрощено и просто проверяет, вызывает ли DrawImage метод его с параметром NULL callBackData . В main тексте примера выполняются следующие действия:

  • Создает экземпляр метода обратного Graphics.DrawImageAbort вызова.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие целевой прямоугольник для рисования изображения.

  • Создает исходный прямоугольник для выбора части рисуемого изображения.

  • Задает для графического блока рисования пиксель.

  • Рисует исходное изображение на экране.

  • Создает дополнительный прямоугольник назначения для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного прямоугольника назначения без корректировок расположение изображения на экране, а размер исходного прямоугольника, а также размер и форма прямоугольника назначения определяют масштабирование нарисованного изображения.

Так как в этом примере используется перегрузка callBackData , которая передает параметр, Graphics.DrawImageAbort обратный вызов возвращает false, что приводит DrawImage к продолжению метода, и в примере на экране рисуется скорректированное изображение.

   // 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

Комментарии

Параметры srcX, srcY, srcWidthи srcHeight указывают прямоугольную часть отрисовываемого image объекта. Прямоугольник находится относительно левого верхнего угла исходного изображения. Эта часть масштабируется в соответствии с прямоугольником, заданным параметром destRect .

Эта перегрузка параметрами callback и callbackData предоставляет средства для остановки рисования изображения после его запуска в соответствии с критериями и данными, определенными приложением. Например, приложение может начать рисование большого изображения, а пользователь может прокрутить изображение с экрана, в этом случае приложение может остановить рисование.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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)

Параметры

image
Image

Объект Image для рисования.

destRect
Rectangle

Структура Rectangle, которая задает расположение и размер формируемого изображения. Изображение масштабируется по размерам прямоугольника.

srcX
Single

Координата X верхнего левого угла отображаемой части исходного изображения.

srcY
Single

Координата Y верхнего левого угла отображаемой части исходного изображения.

srcWidth
Single

Ширина отображаемой части исходного изображения.

srcHeight
Single

Высота отображаемой части исходного изображения.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые для определения исходного прямоугольника.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает координаты прямоугольника назначения для рисования изображения.

  • Создает исходный прямоугольник, из которого извлекается часть изображения.

  • Задает единицу измерения исходного прямоугольника в пикселях.

  • Рисует изображение на экране.

Положение прямоугольника назначения определяет расположение изображения на экране, размеры исходного и целевого прямоугольников определяют масштабирование рисуемого изображения, а размер исходного прямоугольника определяет, какая часть исходного изображения будет отрисована на экране.

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

Комментарии

Параметры srcX, srcY, srcWidthи srcHeight указывают прямоугольную часть отрисовываемого image объекта. Прямоугольник находится относительно левого верхнего угла исходного изображения. Эта часть масштабируется в соответствии с прямоугольником, заданным параметром destRect .

См. также раздел

Применяется к

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

Рисует заданный объект Image в заданном месте, используя указанный размер.

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)

Параметры

image
Image

Объект Image для рисования.

x
Int32

Координата X верхнего левого угла формируемого изображения.

y
Int32

Координата Y верхнего левого угла формируемого изображения.

width
Int32

Ширина формируемого изображения.

height
Int32

Высота формируемого изображения.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает положение и размер прямоугольника для рисования изображения.

  • Рисует изображение на экране.

Положение прямоугольника определяет расположение изображения на экране, а размер исходного изображения и размер прямоугольника определяют масштабирование нарисованного изображения.

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

Комментарии

Прямоугольник, определенный параметрами x, y, widthи height , определяет положение и размер нарисованного изображения.

См. также раздел

Применяется к

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

Рисует заданный объект Image в заданном месте, используя указанный размер.

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)

Параметры

image
Image

Объект Image для рисования.

x
Single

Координата X верхнего левого угла формируемого изображения.

y
Single

Координата Y верхнего левого угла формируемого изображения.

width
Single

Ширина формируемого изображения.

height
Single

Высота формируемого изображения.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает положение и размер прямоугольника для рисования изображения.

  • Рисует изображение на экране.

Положение прямоугольника определяет расположение изображения на экране, а размер исходного изображения и размер прямоугольника определяют масштабирование нарисованного изображения.

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

Комментарии

Прямоугольник, определенный параметрами x, y, widthи height , определяет положение и размер нарисованного изображения.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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

Параметры

image
Image

Объект Image для рисования.

destPoints
PointF[]

Массив из трех структур PointF, определяющих параллелограмм.

srcRect
RectangleF

Структура RectangleF, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

imageAttr
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие целевой параллелограмм для рисования изображения.

  • Создает исходный прямоугольник, из которого извлекается часть изображения.

  • Задает единицу измерения исходного прямоугольника в пикселях.

  • Рисует исходное изображение на экране.

  • Создает дополнительный параллелограмм для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного параллелограмма назначения, не отрежиссированного, положение размещает изображение на экране, размер исходного прямоугольника, а также размер и форму параллелограмма назначения определяет масштабирование и срез нарисованного изображения, а размер прямоугольника определяет, какая часть исходного изображения будет отрисована на экране.

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

Комментарии

Параметр destPoints задает три точки параллелограмма. Три PointF структуры представляют верхний левый, верхний правый и нижний левый углы параллелограмма. Четвертый пункт экстраполируется из первых трех для формирования параллелограмма.

Параметр srcRect задает прямоугольную часть объекта для image рисования. Эта часть масштабируется и сдвигается в соответствии с параллелограммом, заданным параметром destPoints .

См. также раздел

Применяется к

DrawImage(Image, Effect)

public:
 void DrawImage(System::Drawing::Image ^ image, System::Drawing::Imaging::Effects::Effect ^ effect);
public void DrawImage (System.Drawing.Image image, System.Drawing.Imaging.Effects.Effect effect);
member this.DrawImage : System.Drawing.Image * System.Drawing.Imaging.Effects.Effect -> unit
Public Sub DrawImage (image As Image, effect As Effect)

Параметры

image
Image
effect
Effect

Применяется к

DrawImage(Image, Point)

Рисует заданный объект Image в указанном месте, используя его исходный фактический размер.

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)

Параметры

image
Image

Объект Image для рисования.

point
Point

Структура Point, представляющая расположение верхнего левого угла изображения.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точку для рисования левого верхнего угла изображения.

  • Рисует немасштабированное изображение на экране.

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

Комментарии

Хранит Image значение ширины пикселей и значение горизонтального разрешения (точек на дюйм). Физическая ширина изображения, измеряемая в дюймах, — это ширина в пикселях, делимая на горизонтальное разрешение. Например, изображение с шириной в 216 пикселей и горизонтальным разрешением 72 точек на дюйм имеет физическую ширину 3 дюйма. Аналогичные замечания относятся к высоте пикселей и физической высоте.

Этот метод рисует изображение с использованием его физического размера, поэтому изображение будет иметь правильный размер в дюймах независимо от разрешения (точек на дюйм) устройства дисплея. Например, предположим, что ширина изображения составляет 216 пикселей, а разрешение по горизонтали составляет 72 точки на дюйм. Если вызвать этот метод для рисования этого изображения на устройстве с разрешением 96 точек на дюйм, ширина пикселя отображаемого изображения будет равна (216/72)*96 = 288.

См. также раздел

Применяется к

DrawImage(Image, Point[])

Рисует указанный объект Image в заданном месте, используя указанную форму и размер.

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

Параметры

image
Image

Объект Image для рисования.

destPoints
Point[]

Массив из трех структур Point, определяющих параллелограмм.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие параллелограмм для рисования изображения.

  • Рисует изображение на экране.

Положение параллелограмма определяет расположение изображения на экране, а размер исходного изображения, а также размер и форма параллелограммы определяют масштабирование и сдвига нарисованного изображения.

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

Комментарии

Параметр destPoints задает три точки параллелограмма. Point Три структуры представляют верхний левый, правый верхний и нижний левый углы параллелограмма. Четвертый пункт экстраполируется из первых трех для формирования параллелограмма.

Изображение, представленное параметром image , масштабируется и сдвигается в соответствии с формой параллелограмма, заданной параметрами destPoints .

См. также раздел

Применяется к

DrawImage(Image, PointF)

Рисует заданный объект Image в указанном месте, используя его исходный фактический размер.

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)

Параметры

image
Image

Объект Image для рисования.

point
PointF

Структура PointF, задающая расположение верхнего левого угла формируемого изображения.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точку для рисования левого верхнего угла изображения.

  • Рисует немасштабированное изображение на экране.

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

Комментарии

Хранит Image значение ширины пикселей и значение горизонтального разрешения (точек на дюйм). Физическая ширина изображения, измеряемая в дюймах, — это ширина в пикселях, делимая на горизонтальное разрешение. Например, изображение с шириной в 216 пикселей и горизонтальным разрешением 72 точек на дюйм имеет физическую ширину 3 дюйма. Аналогичные замечания относятся к высоте пикселей и физической высоте.

Этот метод рисует изображение с использованием его физического размера, поэтому изображение будет иметь правильный размер в дюймах независимо от разрешения (точек на дюйм) устройства дисплея. Например, предположим, что ширина изображения составляет 216 пикселей, а разрешение по горизонтали составляет 72 точки на дюйм. Если вызвать этот метод для рисования этого изображения на устройстве с разрешением 96 точек на дюйм, ширина пикселя отображаемого изображения будет равна (216/72)*96 = 288.

См. также раздел

Применяется к

DrawImage(Image, PointF[])

Рисует указанный объект Image в заданном месте, используя указанную форму и размер.

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

Параметры

image
Image

Объект Image для рисования.

destPoints
PointF[]

Массив из трех структур PointF, определяющих параллелограмм.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие параллелограмм для рисования изображения.

  • Рисует изображение на экране.

Положение параллелограмма определяет расположение изображения на экране, а размер исходного изображения, а также размер и форма параллелограммы определяют масштабирование и сдвига нарисованного изображения.

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

Комментарии

Параметр destPoints задает три точки параллелограмма. PointF Три структуры представляют верхний левый, правый верхний и нижний левый углы параллелограмма. Четвертый пункт экстраполируется из первых трех для формирования параллелограмма.

Изображение, представленное image объектом , масштабируется и сдвигается в соответствии с формой параллелограмма, указанной параметром destPoints .

См. также раздел

Применяется к

DrawImage(Image, Rectangle)

Рисует заданный объект Image в заданном месте, используя указанный размер.

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)

Параметры

image
Image

Объект Image для рисования.

rect
Rectangle

Структура Rectangle, которая задает расположение и размер формируемого изображения.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает прямоугольник для рисования изображения.

  • Рисует изображение на экране.

Положение прямоугольника определяет расположение изображения на экране, а размер исходного изображения и размер прямоугольника определяет масштаб нарисованного изображения.

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

Комментарии

Изображение, представленное image объектом , масштабируется до размеров прямоугольника rect .

См. также раздел

Применяется к

DrawImage(Image, RectangleF)

Рисует заданный объект Image в заданном месте, используя указанный размер.

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)

Параметры

image
Image

Объект Image для рисования.

rect
RectangleF

Структура RectangleF, которая задает расположение и размер формируемого изображения.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает прямоугольник для рисования изображения.

  • Рисует изображение на экране.

Расположение прямоугольника определяет расположение изображения на экране, а исходный размер изображения и размер прямоугольника определяет масштабирование нарисованного изображения.

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

Комментарии

Изображение, представленное image объектом , масштабируется до размеров прямоугольника rect .

См. также раздел

Применяется к

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

Рисует часть изображения в заданном месте.

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)

Параметры

image
Image

Объект Image для рисования.

x
Int32

Координата X верхнего левого угла формируемого изображения.

y
Int32

Координата Y верхнего левого угла формируемого изображения.

srcRect
Rectangle

Структура Rectangle, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает координаты для рисования левого верхнего угла изображения.

  • Создает исходный прямоугольник, из которого извлекается часть изображения.

  • Задает единицу измерения исходного прямоугольника в пикселях.

  • Рисует изображение на экране.

Размер исходного прямоугольника определяет, какая часть немасштабированного исходного изображения отображается на экране.

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

Комментарии

Хранит Image значение ширины пикселей и значение горизонтального разрешения (точек на дюйм). Физическая ширина изображения, измеряемая в дюймах, — это ширина в пикселях, делимая на горизонтальное разрешение. Например, изображение с шириной в 360 пикселей и горизонтальным разрешением 72 точек на дюйм имеет физическую ширину 5 дюймов. Аналогичные замечания относятся к высоте пикселей и физической высоте.

Этот метод рисует часть изображения, используя его физический размер, поэтому его размер будет правильным в дюймах независимо от разрешения (точек на дюйм) устройства отображения. Например, предположим, что часть изображения имеет ширину в 216 пикселей и разрешение по горизонтали 72 точки на дюйм. При вызове этого метода для рисования этой части изображения на устройстве с разрешением 96 точек на дюйм ширина пикселя отрисоченной части изображения будет равна (216/72)*96 = 288.

См. также раздел

Применяется к

DrawImage(Image, Single, Single)

Рисует заданный объект Image в указанном месте, используя его исходный фактический размер.

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)

Параметры

image
Image

Объект Image для рисования.

x
Single

Координата X верхнего левого угла формируемого изображения.

y
Single

Координата Y верхнего левого угла формируемого изображения.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает координаты точки, в которой рисуется левый верхний угол изображения.

  • Рисует немасштабированное изображение на экране.

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

Комментарии

Хранит Image значение ширины пикселей и значение горизонтального разрешения (точек на дюйм). Физическая ширина изображения, измеряемая в дюймах, — это ширина в пикселях, делимая на горизонтальное разрешение. Например, изображение с шириной в 216 пикселей и горизонтальным разрешением 72 точек на дюйм имеет физическую ширину 3 дюйма. Аналогичные замечания относятся к высоте пикселей и физической высоте.

Этот метод рисует изображение с использованием его физического размера, поэтому изображение будет иметь правильный размер в дюймах независимо от разрешения (точек на дюйм) устройства дисплея. Например, предположим, что ширина изображения составляет 216 пикселей, а разрешение по горизонтали составляет 72 точки на дюйм. Если вызвать этот метод для рисования этого изображения на устройстве с разрешением 96 точек на дюйм, ширина пикселя отображаемого изображения будет равна (216/72)*96 = 288.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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)

Параметры

image
Image

Объект Image для рисования.

destPoints
Point[]

Массив из трех структур Point, определяющих параллелограмм.

srcRect
Rectangle

Структура Rectangle, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие параллелограмм для рисования изображения.

  • Создает прямоугольник для выбора части рисуемого изображения.

  • Задает для графической единицы рисования пиксель.

  • Рисует изображение на экране.

Положение параллелограмма определяет расположение изображения на экране, а размер прямоугольника, а также размер и форма параллелограммы определяют масштабирование и сдвига нарисованного изображения.

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

Комментарии

Параметр destPoints задает три точки параллелограмма. Point Три структуры представляют верхний левый, правый верхний и нижний левый углы параллелограмма. Четвертый пункт экстраполируется из первых трех для формирования параллелограмма.

Параметр srcRect задает прямоугольную часть объекта для image рисования. Эта часть масштабируется и сдвигается в соответствии с параллелограммой, заданной параметром destPoints .

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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)

Параметры

image
Image

Объект Image для рисования.

destPoints
PointF[]

Массив из трех структур PointF, определяющих параллелограмм.

srcRect
RectangleF

Структура RectangleF, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие параллелограмм назначения для рисования изображения.

  • Создает исходный прямоугольник, из которого извлекается часть изображения.

  • Задает единицу измерения исходного прямоугольника в пикселях.

  • Рисует изображение на экране.

Положение параллелограммы назначения определяет расположение изображения на экране, размер исходного прямоугольника, а также размер и форму параллелограммы назначения определяет масштабирование и сдвига нарисованного изображения, а размер прямоугольника определяет, какая часть исходного изображения нарисована на экране.

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

Комментарии

Параметр destPoints задает три точки параллелограмма. PointF Три структуры представляют верхний левый, правый верхний и нижний левый углы параллелограмма. Четвертый пункт экстраполируется из первых трех для формирования параллелограмма.

Параметр srcRect задает прямоугольную часть объекта для image рисования. Эта часть масштабируется и сдвигается в соответствии с параллелограммой, заданной параметром destPoints .

См. также раздел

Применяется к

DrawImage(Image, Rectangle, Rectangle, GraphicsUnit)

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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)

Параметры

image
Image

Объект Image для рисования.

destRect
Rectangle

Структура Rectangle, которая задает расположение и размер формируемого изображения. Изображение масштабируется по размерам прямоугольника.

srcRect
Rectangle

Структура Rectangle, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает прямоугольник назначения для рисования изображения.

  • Создает исходный прямоугольник, из которого извлекается часть изображения.

  • Задает единицу измерения исходного прямоугольника в пикселях.

  • Рисует изображение на экране.

Расположение прямоугольника назначения определяет расположение изображения на экране, размеры исходного и целевого прямоугольников определяют масштабирование нарисованного изображения, а размер исходного прямоугольника определяет, какая часть исходного изображения нарисована на экране.

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

Комментарии

Параметр srcRect задает прямоугольную часть объекта для image рисования. Эта часть масштабируется так, чтобы поместиться внутри прямоугольника, указанного параметром destRect .

См. также раздел

Применяется к

DrawImage(Image, RectangleF, RectangleF, GraphicsUnit)

Рисует заданную часть указанного объекта Image в заданном месте, используя заданный размер.

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)

Параметры

image
Image

Объект Image для рисования.

destRect
RectangleF

Структура RectangleF, которая задает расположение и размер формируемого изображения. Изображение масштабируется по размерам прямоугольника.

srcRect
RectangleF

Структура RectangleF, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает прямоугольник назначения для рисования изображения.

  • Создает исходный прямоугольник, из которого извлекается часть изображения.

  • Задает единицу измерения исходного прямоугольника в пикселях.

  • Рисует изображение на экране.

Расположение прямоугольника назначения определяет расположение изображения на экране, размеры исходного и целевого прямоугольников определяют масштабирование нарисованного изображения, а размер исходного прямоугольника определяет, какая часть исходного изображения нарисована на экране.

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

Комментарии

Параметр srcRect задает прямоугольную часть объекта для image рисования. Эта часть масштабируется так, чтобы поместиться внутри прямоугольника, указанного параметром destRect .

См. также раздел

Применяется к

DrawImage(Image, Int32, Int32)

Рисует указанное изображение, используя его исходный фактический размер, в месте, заданном парой координат.

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)

Параметры

image
Image

Объект Image для рисования.

x
Int32

Координата X верхнего левого угла формируемого изображения.

y
Int32

Координата Y верхнего левого угла формируемого изображения.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера SampImag.jpg в папке примера.

  • Создает координаты точки, в которой рисуется левый верхний угол изображения.

  • Рисует немасштабированное изображение.

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

Комментарии

Сохраняет Image значение ширины пикселей и значение для горизонтального разрешения (точек на дюйм). Физическая ширина изображения, измеряемая в дюймах, представляет собой ширину пикселей, деленную на горизонтальное разрешение. Например, изображение с шириной в пикселях 216 и горизонтальным разрешением 72 точек на дюйм имеет физическую ширину 3 дюйма. Аналогичные замечания относятся к высоте пикселей и физической высоте.

Метод DrawImage рисует изображение, используя его физический размер, поэтому изображение будет иметь правильный размер в дюймах независимо от разрешения (точек на дюйм) устройства отображения. Например, предположим, что изображение имеет ширину в пикселях 216 и горизонтальное разрешение 72 точки на дюйм. При вызове DrawImage для рисования этого изображения на устройстве с разрешением 96 точек на дюйм ширина отображаемого изображения будет составлять (216/72)*96 = 288.

См. также раздел

Применяется к

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

Рисует заданную часть указанного объекта Image в заданном месте.

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

Параметры

image
Image

Объект Image для рисования.

destPoints
Point[]

Массив из трех структур Point, определяющих параллелограмм.

srcRect
Rectangle

Структура Rectangle, которая задает часть объекта image для рисования.

srcUnit
GraphicsUnit

Элемент перечисления GraphicsUnit, задающий единицы измерения, используемые параметром srcRect.

imageAttr
ImageAttributes

Атрибуты ImageAttributes, содержащие сведения о гамме и перекрашивании для объекта image.

Исключения

image имеет значение null.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  • Создает изображение из JPEG-файла, SampImag.jpg в папке примера.

  • Создает точки, определяющие параллелограмм для рисования изображения.

  • Создает прямоугольник для выбора части рисуемого изображения.

  • Задает для графического блока рисования пиксель.

  • Рисует исходное изображение на экране.

  • Создает дополнительный параллелограмм для рисования скорректированного изображения.

  • Создает и задает атрибуты скорректированного изображения, чтобы иметь большее, чем обычно, гамма-значение.

  • Рисует скорректированное изображение на экране.

Для исходного неизменяемого параллелограмма положение располагает изображение на экране, а размер прямоугольника и размер и форма параллелограмма определяют масштабирование и сдвига нарисованного изображения.

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

Комментарии

Параметр destPoints задает три точки параллелограмма. Три Point структуры представляют верхний левый, верхний правый и нижний левый углы параллелограмма. Четвертый пункт экстраполируется из первых трех для формирования параллелограмма.

Параметр srcRect задает прямоугольную часть объекта дляimage рисования. Эта часть масштабируется и сдвигается в соответствии с параллелограммом, заданным параметром destPoints .

См. также раздел

Применяется к