Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

BITMAP and blitting operations
[GDI functions]

Functions


Detailed Description

Example:

{
    int tox = 800, toy = 800;
    int count;
    BITMAP bitmap;
    unsigned int start_tick, end_tick;

    /* Load the bitmap from the file. */
    if (LoadBitmap (hdc, &bitmap, "res/icon.bmp"))
        return;

    bitmap.bmType = BMP_TYPE_ALPHACHANNEL;

    /* Fill a box with the bitmap with alpha channel. */
    start_tick = GetTickCount ();
    count = 1000;
    while (count--) {
        tox = rand() % 800;
        toy = rand() % 800;

        /* Set a random alpha channel. */
        bitmap.bmAlpha = rand() % 256;
        /* Fill the box. */
        FillBoxWithBitmap (hdc, tox, toy, 0, 0, &bitmap);
    }
    end_tick = GetTickCount ();
    TellSpeed (hwnd, start_tick, end_tick, "Alpha Blended Bitmap", 1000);

    bitmap.bmType = BMP_TYPE_ALPHACHANNEL | BMP_TYPE_COLORKEY;
    /* Set the color key (the transparent pixel) of the bitmap. */
    bitmap.bmColorKey = GetPixelInBitmap (&bitmap, 0, 0);

    /* Fill a box with the bitmap with alpha channel and color key. */
    start_tick = GetTickCount ();
    count = 1000;
    while (count--) {
        tox = rand() % 800;
        toy = rand() % 800;

        /* Set a random alpha channel. */
        bitmap.bmAlpha = rand() % 256;
        /* Fill the box. */
        FillBoxWithBitmap (hdc, tox, toy, 0, 0, &bitmap);
    }
    end_tick = GetTickCount ();
    TellSpeed (hwnd, start_tick, end_tick, "Alpha Blended Transparent Bitmap", 1000);

    UnloadBitmap (&bitmap);
}

{
    /* Create a memory DC which hanve alpha per-pixel. */
    mem_dc = CreateMemDC (400, 100, 16, MEMDC_FLAG_HWSURFACE | MEMDC_FLAG_SRCALPHA,
                    0x0000F000, 0x00000F00, 0x000000F0, 0x0000000F);

    /* Set brush color and fill a box. */
    SetBrushColor (mem_dc, RGBA2Pixel (mem_dc, 0xFF, 0xFF, 0x00, 0xFF));
    FillBox (mem_dc, 0, 0, 200, 50);

    /* Set another brush color and fill a box */
    SetBrushColor (mem_dc, RGBA2Pixel (mem_dc, 0xFF, 0xFF, 0x00, 0x40));
    FillBox (mem_dc, 200, 0, 200, 50);

    /* Set another brush color and fill a box */
    SetBrushColor (mem_dc, RGBA2Pixel (mem_dc, 0xFF, 0xFF, 0x00, 0x80));
    FillBox (mem_dc, 0, 50, 200, 50);

    /* Set another brush color and fill a box */
    SetBrushColor (mem_dc, RGBA2Pixel (mem_dc, 0xFF, 0xFF, 0x00, 0xC0));
    FillBox (mem_dc, 200, 50, 200, 50);
    SetBkMode (mem_dc, BM_TRANSPARENT);

    /* Set a text color and output the text */
    SetTextColor (mem_dc, RGBA2Pixel (mem_dc, 0x00, 0x00, 0x00, 0x80));
    TabbedTextOut (mem_dc, 0, 0, "Memory DC with alpha.\n"
                                 "The source DC have alpha per-pixel.");

    /* Blitting to a client DC. */
    start_tick = GetTickCount ();
    count = 100;
    while (count--) {
        BitBlt (mem_dc, 0, 0, 400, 100, hdc, rand () % 800, rand () % 800);
    }
    end_tick = GetTickCount ();
    TellSpeed (hwnd, start_tick, end_tick, "Alpha Blit", 100);

    /* delete the momory DC. */
    DeleteMemDC (mem_dc);
}

Function Documentation

void GUIAPI BitBlt HDC  hsdc,
int  sx,
int  sy,
int  sw,
int  sh,
HDC  hddc,
int  dx,
int  dy,
DWORD  dwRop
 

Performs a bit-block transfer from a device context into another device context.

This function performs a bit-block transfer of the color data cooresponding to a rectangle of pixels from the specified source device context hsdc into a destination device context hddc. (sx,sy,sw,sh) specifies the rectangle in the source DC, and (dx,dy) specifies the position of the rectangle in the destination DC. Note that the size of the two rectangles are identical.

Note that all coordinates should be in the device space.

Parameters:
hsdc The source device context.
sx The x coordinate of the upper-left corner of the rectangle in the source DC.
sy The y coordinate of the upper-left corner of the rectangle in the source DC.
sw The width of the source rectangle.
sh The height of the source rectangle.
hddc The destination device context hddc.
dx The x coordinate of the upper-left corner of the rectangle in the destination DC.
dy The y coordinate of the upper-left corner of the rectangle in the destination DC.
dwRop The raster operation, currently ignored.
Note:
If _USE_NEWGAL defined, the alpha and color key settings of the source DC will come into play.
See also:
StretchBlt, SetMemDCAlpha, SetMemDCColorKey

BOOL GUIAPI FillBoxWithBitmap HDC  hdc,
int  x,
int  y,
int  w,
int  h,
const BITMAP bmp
 

Fills a box with a BITMAP object.

This function fills a box with a BITMAP object pointed to by bmp. (x,y) is the upper-left corner of the box, and w, h are the width and the height of the box respectively.

This function will scale the bitmap when necessary; that is, when the width or the height of the box is not equal to the with or the height of the BITMAP object.

Parameters:
hdc The device context.
x The x coordinate of the upper-left corner of the box.
y The y coordinate of the upper-left corner of the box.
w The width of the box. Can be zero, means the width or the height will be equal to the width or the height of the BITMAP object.
h The height of the box. Can be zero, means the width or the height will be equal to the width or the height of the BITMAP object.
bmp The pointer to the BITMAP object.
Returns:
TRUE on success, otherwise FALSE.
Note:
You can specify the alpha value or the color key of the BITMAP object if _USE_NEWGAL defined, and the current raster operation was set by SetRasterOperation for the DC will override the alpha value of color key if ROP is not ROP_SET. If _USE_NEWGAL is not defined, this function will not return anything, and you can not specify the alpha value and the color key of the BITMAP object.

If the bitmap has BMP_TYPE_RLE, the target w and h will be ignored. That is, the scale of the bitmap is not supported for RLE encoded bitmap.

See also:
FillBoxWithBitmapPart, GetBitmapFromDC, Bitmap file load/save operations

BOOL GUIAPI FillBoxWithBitmapPart HDC  hdc,
int  x,
int  y,
int  w,
int  h,
int  bw,
int  bh,
const BITMAP bmp,
int  xo,
int  yo
 

Fills a box with a part of a bitmap oject.

This function fills a box with a part of a bitmap object pointed to by bmp. (x,y) is the upper-left corner of the box, and w, h are the width and the height of the box respectively. (xo, yo) is the start position of the part box in the bitmap relative to upper-left corner of the bitmap, and bw, bh are the width and the height of the full bitmap expected.

If bw or bh is less than or equal to zero, this function will use the original width and height of the bitmap, else it will scale the BITMAP object when necessary; that is, when the width or the height of the box is not equal to the with or the height of the BITMAP object.

Parameters:
hdc The device context.
x The x coordinate of the upper-left corner of the box.
y The y coordinate of the upper-left corner of the box.
w The width of the box.
h The height of the box.
bw The width of the full bitmap expected. Can be zero, means the width or the height will be equal to the width or the height of the BITMAP object.
bh The height of the full bitmap expected. Can be zero, means the width or the height will be equal to the width or the height of the BITMAP object.
xo xo,yo: The start position of the part box in the bitmap relative to upper-left corner of the BITMAP object.
yo xo,yo: The start position of the part box in the bitmap relative to upper-left corner of the BITMAP object.
bmp The pointer to the BITMAP object.
Returns:
TRUE on success, otherwise FALSE.
Note:
You can specify the alpha value or the color key of the BITMAP object if _USE_NEWGAL defined, and the current raster operation was set by SetRasterOperation for the DC will override the alpha value or the color key if ROP is not ROP_SET. If _USE_NEWGAL not defined, this function will not return anything, and you can not specify the alpha value and the color key of the BITMAP object.

The RLE encoded bitmap is not supported by this function so far.

See also:
FillBoxWithBitmap, GetBitmapFromDC, Bitmap structure

BOOL GUIAPI GetBitmapFromDC HDC  hdc,
int  x,
int  y,
int  w,
int  h,
BITMAP bmp
 

Gets image box on a DC and saves it into a BITMAP object.

This function gets image box on the specified device context hdc, and saves the image bits into the BITMAP object pointed to by bmp. The image box begins at (x,y), and is w wide and h high. You must make sure that bmp->bits is big enough to store the image.

Parameters:
hdc The device context.
x The x coordinate in pixels of upper-left corner of the image box.
y The y coordinate in pixels of upper-left corner of the image box.
w The width of the image box.
h The height of the image box.
bmp The pointer to the BITMAP object.
Note:
Only defined for _USE_NEWGAL. If _USE_NEWGAL not defined, there is will be an analogous function called SaveScreenBox:
 void GUIAPI SaveScreenBox (int x, int y, int w, int h, void* vbuf)

See also:
FillBoxWithBitmap, Bitmap structure

gal_pixel GUIAPI GetPixelInBitmap const BITMAP bmp,
int  x,
int  y
 

Returns the pixel value in a BITMAP object.

This function returns the pixel value at the position (x,y) in the BITMAP object bmp.

Parameters:
bmp The BITMAP object.
x x,y: The position of the pixel in the bitmap relative to the upper-left corner of the bitmap.
y x,y: The position of the pixel in the bitmap relative to the upper-left corner of the bitmap.
Returns:
The pixel value, if the position is out of the bitmap, zero returned.
Note:
Only defined for _USE_NEWGAL.
See also:
SetPixelInBitmap, Bitmap structure

BOOL GUIAPI SaveMainWindowContent HWND  hWnd,
const char *  filename
 

Saves content of a main window to a file.

This function saves the content of the main window hWnd to the image file filename. MiniGUI uses the extension name of the file to determine the format of the image file.

Parameters:
hWnd Handle to the main window.
filename The name of the image file.
Returns:
TRUE on success, otherwise FALSE.
Note:
Only defined for _MISC_SAVESCREEN.
See also:
Bitmap file load/save operations

BOOL GUIAPI SaveScreenRectContent const RECT rc,
const char *  filename
 

Saves content of a rectangle in the screen to a file.

This function saves the content of the rect rc to the image file filename. MiniGUI uses the extension name of the file to determine the format of the image file.

Parameters:
rc The RECT object defined the rectangle in the screen.
filename The name of the image file.
Returns:
TRUE on success, otherwise FALSE.
Note:
Only defined for _MISC_SAVESCREEN.
See also:
Bitmap file load/save operations

BOOL GUIAPI ScaleBitmap BITMAP dst,
const BITMAP src
 

Scales a BITMAP object into another BITMAP object by using DDA algorithm.

This function scales a BITMAP object src into another BITMAO object dst by using DDA algorithm. The source rectangle and the destination rectangle both are defined in the BITMAP objects.

Parameters:
dst The destination BITMAP object.
src The srouce BITMAP object.
Returns:
TRUE on success, otherwise FALSE.
Note:
Only defined for _USE_NEWGAL.
See also:
FillBoxWithBitmap, StretchBlt, Bitmap structure

BOOL GUIAPI SetPixelInBitmap const BITMAP bmp,
int  x,
int  y,
gal_pixel  pixel
 

Sets pixel value in a BITMAP object.

This function sets the pixel value at the position (x,y) in the BITMAP object bmp.

Parameters:
bmp The BITMAP object.
x x,y: The position of the pixel in the bitmap relative to the upper-left corner of the bitmap.
y x,y: The position of the pixel in the bitmap relative to the upper-left corner of the bitmap.
pixel The pixel value.
Returns:
TRUE on success. If the position is out of the bitmap, FALSE returned.
Note:
Only defined for _USE_NEWGAL.
See also:
GetPixelInBitmap, Bitmap structure

void GUIAPI StretchBlt HDC  hsdc,
int  sx,
int  sy,
int  sw,
int  sh,
HDC  hddc,
int  dx,
int  dy,
int  dw,
int  dh,
DWORD  dwRop
 

Copies a bitmap from a source rectangle into a destination rectangle, streches the bitmap if necessary.

This function copies a bitmap from a source rectangle into a destination rectangle, streching or compressing the bitmap to fit the dimension of the destination rectangle, if necessary. This function is similar with

See also:
BitBlt function except the former scaling the bitmap. (dw,dh) specifies the size of the destination rectangle.
Parameters:
hsdc The source device context.
sx The x coordinate of the upper-left corner of the rectangle in the source DC.
sy The y coordinate of the upper-left corner of the rectangle in the source DC.
sw The width of the source rectangle.
sh The height of the source rectangle.
hddc The destination device context hddc.
dx The x coordinate of the upper-left corner of the rectangle in the destination DC.
dy The y coordinate of the upper-left corner of the rectangle in the destination DC.
dw The width of the destination rectangle.
dh The height of the destination rectangle.
dwRop The raster operation, currently ignored.
Note:
The source rect should be contained in the device space entirely, and all coordinates should be in the device space.

The alpha and color key settings of the source DC will not come into play.

See also:
BitBlt, SetMemDCAlpha, SetMemDCColorKey


Generated on Mon Jun 26 13:54:30 2006 for MiniGUI V1.6.9 API Reference by  doxygen 1.4.2