目录

putimage

这个函数的几个重载用于在当前设备上绘制指定图像。

// 绘制图像
void putimage(
    int dstX,              // 绘制位置的 x 坐标
    int dstY,              // 绘制位置的 y 坐标
    IMAGE *pSrcImg,        // 要绘制的 IMAGE 对象指针
    DWORD dwRop = SRCCOPY  // 三元光栅操作码(详见备注)
);
// 绘制图像(指定宽高和起始位置)
void putimage(
    int dstX,              // 绘制位置的 x 坐标
    int dstY,              // 绘制位置的 y 坐标
    int dstWidth,          // 绘制的宽度
    int dstHeight,         // 绘制的高度
    IMAGE *pSrcImg,        // 要绘制的 IMAGE 对象指针
    int srcX,              // 绘制内容在 IMAGE 对象中的左上角 x 坐标
    int srcY,              // 绘制内容在 IMAGE 对象中的左上角 y 坐标
    DWORD dwRop = SRCCOPY  // 三元光栅操作码(详见备注)
);

参数:

(详见各重载函数原型内的注释)

备注:

三元光栅操作码(即位操作模式),支持全部的 256 种三元光栅操作码,常用的几种如下:

含义
DSTINVERT 绘制出的像素颜色 = NOT 屏幕颜色
MERGECOPY 绘制出的像素颜色 = 图像颜色 AND 当前填充颜色
MERGEPAINT 绘制出的像素颜色 = 屏幕颜色 OR (NOT 图像颜色)
NOTSRCCOPY 绘制出的像素颜色 = NOT 图像颜色
NOTSRCERASE 绘制出的像素颜色 = NOT (屏幕颜色 OR 图像颜色)
PATCOPY 绘制出的像素颜色 = 当前填充颜色
PATINVERT 绘制出的像素颜色 = 屏幕颜色 XOR 当前填充颜色
PATPAINT 绘制出的像素颜色 = 屏幕颜色 OR ((NOT 图像颜色) OR 当前填充颜色)
SRCAND 绘制出的像素颜色 = 屏幕颜色 AND 图像颜色
SRCCOPY 绘制出的像素颜色 = 图像颜色
SRCERASE 绘制出的像素颜色 = (NOT 屏幕颜色) AND 图像颜色
SRCINVERT 绘制出的像素颜色 = 屏幕颜色 XOR 图像颜色
SRCPAINT 绘制出的像素颜色 = 屏幕颜色 OR 图像颜色

注:
1. AND / OR / NOT / XOR 为布尔运算。
2. "屏幕颜色"指绘制所经过的屏幕像素点的颜色。
3. "图像颜色"是指通过 IMAGE 对象中的图像的颜色。
4. "当前填充颜色"是指通过 setfillcolor 设置的用于当前填充的颜色。
5. 查看全部的三元光栅操作码请点这里:三元光栅操作码

返回值:

(无)

示例:

以下局部代码将屏幕 (0,0) 起始的 100x100 的图像拷贝至 (200,200) 位置:

IMAGE img;
getimage(&img, 0, 0, 100, 100);
putimage(200, 200, &img);