主页 / 库函数目录 / 图像处理 / putimage

功能:

这个函数的几个重载用于在窗口或另一个图像上绘制指定图像。

声明:
// 绘制图像到窗口
void putimage(
    int xDest,              // 绘制位置的 x 坐标
    int yDest,              // 绘制位置的 y 坐标
    PCIMAGE imgSrc,         // 要绘制的 IMAGE 对象指针
    DWORD dwRop = SRCCOPY   // 三元光栅操作码(详见备注)
);

// 绘制图像到(指定宽高)
void putimage(
    int xDest,              // 绘制位置的 x 坐标
    int yDest,              // 绘制位置的 y 坐标
    int widthDest,          // 绘制的宽度
    int heightDest,         // 绘制的高度
    PCIMAGE imgSrc,         // 要绘制的 IMAGE 对象指针
    int xSrc,               // 绘制内容在 IMAGE 对象中的左上角 x 坐标
    int ySrc,               // 绘制内容在 IMAGE 对象中的左上角 y 坐标
    DWORD dwRop = SRCCOPY   // 三元光栅操作码(详见备注)
);

// 绘制图像到窗口(拉伸)
void putimage(
    int xDest,              // 绘制位置的 x 坐标
    int yDest,              // 绘制位置的 y 坐标
    int widthDest,          // 绘制的宽度
    int heightDest,         // 绘制的高度
    PCIMAGE imgSrc,         // 要绘制的 IMAGE 对象指针
    int xSrc,               // 绘制内容在 IMAGE 对象中的左上角 x 坐标
    int ySrc,               // 绘制内容在 IMAGE 对象中的左上角 y 坐标
    int widthSrc,           // 绘制内容在源 IMAGE 对象中的宽度
    int heightSrc,          // 绘制内容在源 IMAGE 对象中的高度
    DWORD dwRop = SRCCOPY   // 三元光栅操作码(详见备注)
);

// 绘制图像到另一图像
void putimage(
    PIMAGE imgDest,         // 目标 IMAGE 对象指针
    int xDest,              // 绘制位置的 x 坐标
    int yDest,              // 绘制位置的 y 坐标
    PCIMAGE imgSrc,         // 源 IMAGE 对象指针
    DWORD dwRop = SRCCOPY   // 三元光栅操作码(详见备注)
);

// 绘制图像到另一图像(指定宽高)
void putimage(
    PIMAGE imgDest,         // 目标 IMAGE 对象指针
    int xDest,              // 绘制位置的 x 坐标
    int yDest,              // 绘制位置的 y 坐标
    int widthDest,          // 绘制的宽度
    int heightDest,         // 绘制的高度
    PCIMAGE imgSrc,         // 源 IMAGE 对象指针
    int xSrc,               // 绘制内容在源 IMAGE 对象中的左上角 x 坐标
    int ySrc,               // 绘制内容在源 IMAGE 对象中的左上角 y 坐标
    DWORD dwRop = SRCCOPY   // 三元光栅操作码(详见备注)
);

// 绘制图像到另一图像(拉伸)
void putimage(
    PIMAGE imgDest,         // 目标 IMAGE 对象指针
    int xDest,              // 绘制位置的 x 坐标
    int yDest,              // 绘制位置的 y 坐标
    int widthDest,          // 绘制的宽度
    int heightDest,         // 绘制的高度
    PCIMAGE imgSrc,         // 源 IMAGE 对象指针
    int xSrc,               // 绘制内容在源 IMAGE 对象中的左上角 x 坐标
    int ySrc,               // 绘制内容在源 IMAGE 对象中的左上角 y 坐标
    int widthSrc,           // 绘制内容在源 IMAGE 对象中的宽度
    int heightSrc,          // 绘制内容在源 IMAGE 对象中的高度
    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. "当前填充颜色"是指通过 setfillstyle 设置的用于当前填充的颜色。5. 查看全部的三元光栅操作码请详见:三元光栅操作码。 返回值: (无) 示例: 以下局部代码读取 c:\test.jpg 绘制在窗口左上角:
PIMAGE img = newimage();
if (getimage(img, "c:\\test.jpg")!= grOk) {
    //读取图片文件失败
    exit(-1);
}
putimage(0, 0, img);
delimage(img);

以下局部代码将窗口 (0,0) 起始的长宽各 100 像素的图像拷贝至 (200,200) 位置:
PIMAGE img = newimage();
getimage(img, 0, 0, 100, 100);
putimage(200, 200, img);
delimage(img);