Bitmap.DrawOn Method (IntPtr, Int32, Int32, Int32, Int32, CombineMode, Single, ResizeInterpolationMode)

Draws the current bitmap on a given Windows GDI device context (represented as handle to device context, i.e. HDC).

Namespace: Aurigma.GraphicsMill
Assembly: Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)


public void DrawOn(
	IntPtr hdc,
	int destinationX,
	int destinationY,
	int destinationWidth,
	int destinationHeight,
	CombineMode combine,
	float opacity,
	ResizeInterpolationMode interpolationMode



Type: System..IntPtr

A handle to device context on which the current bitmap should be drawn.

Type: System..Int32

The x-coordinate of the upper-left corner of the drawn image.

Type: System..Int32

The y-coordinate of the upper-left corner of the drawn image.

Type: System..Int32

Width of the drawn image.

Type: System..Int32

Height of the drawn image.

Type: Aurigma.GraphicsMill.Transforms..CombineMode

The images blending algorithm (plain pixels copying, alpha blending, bitwise operations, etc).

Type: System..Single

The opacity of the image in range [0, 1]. If 0, image is completely transparent, if 1, image is completely opaque.

Type: Aurigma.GraphicsMill.Transforms..ResizeInterpolationMode

The resize algorithm. Using this parameter you can select between speed and quality of resizing.


The bitmap is drawn to the destination rectangle on the given System.Drawing.Graphics object with dimensions equal to the dimensions of the bitmap.


If the bitmap has pixel format which is not GDI-compatible (e.g. extended pixel formats, CMYK, etc) method will automatically create a copy converted to the Format32bppArgb. That's why you always get it drawn, but if you are going to call this method multiple times, it is recommended to convert the bitmap to some GDI-compatible format (like Format32bppArgb) to increase the performance.

If you want this method to calculate width and height automatically, you can pass 0 to the corresponding arguments. The dimensions will be calculated with the following way:

  1. If both width and heigth are 0, it will take source image dimensions (Width and Height properties). This way the image will not be resized during drawing.
  2. If only one of arguments is 0, it will calculate this argument to save proportion. For example, the source image is 800x600, and you pass 400 as width and 0 as height. Height will be calculated to preserve aspect ratio of the image, i.e. it will be 300.

See Also