Graphics.DrawImage(Image*, const Point*, INT, INT, INT, INT, INT, Unit, ImageAttributes*, DrawImageAbort, VOID*) method

Applies to: desktop apps only

The Graphics::DrawImage method draws an image.

Syntax

Status DrawImage(
  [in]  Image *image,
  [in]  const Point *destPoints,
  [in]  INT count,
  [in]  INT srcx,
  [in]  INT srcy,
  [in]  INT srcwidth,
  [in]  INT srcheight,
  [in]  Unit srcUnit,
  [in]  ImageAttributes *imageAttributes,
  [in]  DrawImageAbort callback,
  [in]  VOID *callbackData
);

Parameters

  • image [in]
    Type: Image*

    Pointer to an Image object that specifies the source image.

  • destPoints [in]
    Type: const Point*

    Pointer to an array of Point objects that specify the area, in a parallelogram, in which to draw the image.

  • count [in]
    Type: INT

    Integer that specifies the number of elements in the destPoints array.

  • srcx [in]
    Type: INT

    Real number that specifies the x-coordinate of the upper-left corner of the portion of the source image to be drawn.

  • srcy [in]
    Type: INT

    Real number that specifies the y-coordinate of the upper-left corner of the portion of the source image to be drawn.

  • srcwidth [in]
    Type: INT

    Real number that specifies the width of the portion of the source image to be drawn.

  • srcheight [in]
    Type: INT

    Real number that specifies the height of the portion of the source image to be drawn.

  • srcUnit [in]
    Type: Unit

    Element of the Unit enumeration that specifies the unit of measure for the image. The default value is UnitPixel.

  • imageAttributes [in]
    Type: ImageAttributes*

    Pointer to an ImageAttributes object that specifies the color and size attributes of the image to be drawn. The default value is NULL.

  • callback [in]
    Type: DrawImageAbort

    Callback method used to cancel the drawing in progress. The default value is NULL.

  • callbackData [in]
    Type: VOID*

    Pointer to additional data used by the method specified by the callback parameter. The default value is NULL.

Return value

Type:

Type: Status****

If the method succeeds, it returns Ok, which is an element of the Status enumeration.

If the method fails, it returns one of the other elements of the Status enumeration.

Remarks

The value of the count parameter must equal 3 to specify the three corners of the parallelogram. The fourth corner of the parallelogram is calculated using the vectors of the first and second coordinates and the first and third coordinates. The portion of the source image to be drawn is scaled to fit the parallelogram.

Examples

The following example draws the original source image and then draws a portion of the image in a specified parallelogram.

VOID Example_DrawImage2(HDC hdc)

{
   Graphics graphics(hdc);

   // Create an Image object.
   Image image(L"pattern.png");

   // Draw the original source image.
   graphics.DrawImage(&image, 10, 10);

   // Define the portion of the image to draw.
   int srcX = 70;
   int srcY = 20;
   int srcWidth = 100;
   int srcHeight = 100;

   // Create an array of Point objects that specify the destination of the cropped image.
   Point destPoints[3] = {
   Point(230, 30),
   Point(350, 50),
   Point(275, 120)};

   Point* pdestPoints = destPoints;

   // Create an ImageAttributes object that specifies a recoloring from red to blue.
   ImageAttributes remapAttributes;
   ColorMap redToBlue;
   redToBlue.oldColor = Color(255, 255, 0, 0);
   redToBlue.newColor = Color(255, 0, 0, 255);
   remapAttributes.SetRemapTable(1, &redToBlue);

   // Draw the cropped image.
   graphics.DrawImage(
   &image,
   pdestPoints,
   3,
   srcX,
   srcY,
   srcWidth,
   srcHeight,
   UnitPixel,
   &remapAttributes,
   NULL,
   NULL);
}

The following illustration shows the output of the preceding code.

Illustration showing a multicolored checkerboard pattern, then an enlarged, two-toned subset of that pattern, sheared to a parallelogram

Requirements

Minimum supported client

Windows XP, Windows 2000 Professional

Minimum supported server

Windows 2000 Server

Product

GDI+ 1.0

Header

Gdiplusgraphics.h (include Gdiplus.h)

Library

Gdiplus.lib

DLL

Gdiplus.dll

See also

Graphics

Image

ImageAttributes

Point

SetRemapTable

Loading and Displaying Bitmaps

Drawing, Positioning, and Cloning Images

 

 

Send comments about this topic to Microsoft

Build date: 3/6/2012