Share via


Graphics::D rawImage(Image*,constPointF*,INT,REAL,REAL,Unit,constImageAttributes*,DrawImageAbort,VOID*) (gdiplusgraphics.h)

Il metodo Graphics::D rawImage disegna un'immagine.

Sintassi

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

Parametri

[in] image

Tipo: Immagine*

Puntatore a un oggetto Image che specifica l'immagine di origine.

[in] destPoints

Tipo: const PointF*

Puntatore a una matrice di oggetti PointF che specificano l'area, in un parallelogramma, in cui disegnare l'immagine.

[in] count

Tipo: INT

Intero che specifica il numero di elementi nella matrice destPoints .

[in] srcx

Tipo: REAL

Numero reale che specifica la coordinata x dell'angolo superiore sinistro della parte dell'immagine di origine da disegnare.

[in] srcy

Tipo: REAL

Numero reale che specifica la coordinata y dell'angolo superiore sinistro della parte dell'immagine di origine da disegnare.

[in] srcwidth

Tipo: REAL

Numero reale che specifica la larghezza della parte dell'immagine di origine da disegnare.

[in] srcheight

Tipo: REAL

Numero reale che specifica l'altezza della parte dell'immagine di origine da disegnare.

[in] srcUnit

Tipo: Unità

Elemento dell'enumerazione Unit che specifica l'unità di misura per l'immagine. Il valore predefinito è UnitPixel.

[in] imageAttributes

Tipo: ImageAttributes*

Puntatore a un oggetto ImageAttributes che specifica gli attributi di colore e dimensione dell'immagine da disegnare. Il valore predefinito è NULL.

[in] callback

Tipo: DrawImageAbort

Metodo callback usato per annullare il disegno in corso. Il valore predefinito è NULL.

[in] callbackData

Tipo: VOID*

Puntatore a dati aggiuntivi usati dal metodo specificato dal parametro callback . Il valore predefinito è NULL.

Valore restituito

Tipo: Stato

Se il metodo ha esito positivo, restituisce Ok, ovvero un elemento dell'enumerazione Status .

Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .

Commenti

Il valore del parametro count deve essere uguale a 3 per specificare le coordinate dell'angolo superiore sinistro, dell'angolo superiore destro e dell'angolo inferiore sinistro del parallelogramma. La coordinata dell'angolo inferiore destro viene calcolata usando le tre coordinate specificate, la larghezza e l'altezza dell'immagine. La parte dell'immagine di origine da disegnare viene ridimensionata per adattarsi al parallelogramma.

Esempio

L'esempio seguente disegna l'immagine di origine originale e quindi disegna una parte dell'immagine in un parallelogramma specificato.

VOID Example_DrawImage4(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.
   REAL srcX = 70.0f;
   REAL srcY = 20.0f;
   REAL srcWidth = 100.0f;
   REAL srcHeight = 100.0f;

   // Create an array of Point objects that specify the destination of the cropped image.
   PointF destPoints[3] = {
   PointF(230.0f, 30.0f),
   PointF(350.0f, 50.0f),
   PointF(275.0f, 120.0f)};

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

La figura seguente mostra l'output del codice precedente.

Illustrazione che mostra un modello di checkerboard multicolore, quindi un sottoinsieme ingrandito a due di tale modello, sheared a un parallelogramma

Requisiti

Requisito Valore
Client minimo supportato Windows XP, Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdiplusgraphics.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

Disegno, posizionamento e clonazione delle immagini

Grafica

Immagine

Imageattributes

Caricamento e visualizzazione di bitmap

Point

SetRemapTable

Unità