Bitmap::SetPixel 方法 (gdiplusheaders.h)
Bitmap::SetPixel 方法设置此位图中指定像素的颜色。
语法
Status SetPixel(
[in] INT x,
[in] INT y,
[in, ref] const Color & color
);
参数
[in] x
类型: INT
int ,指定像素的 x 坐标 (列) 。
[in] y
类型: INT
int ,指定像素的 y 坐标 (行) 。
[in, ref] color
类型: const Color
对 Color 对象的引用,该对象指定要设置的颜色。
返回值
类型: 状态
如果方法成功,则返回 Ok,这是 Status 枚举的元素。
如果 方法失败,它将返回 Status 枚举的其他元素之一。
注解
根据位图的格式, Bitmap::GetPixel 可能不会返回与 Bitmap::SetPixel 设置的值相同。 例如,如果在像素格式为 32bppPARGB 的 Bitmap 对象上调用 Bitmap::SetPixel,则 RGB 组件将被预乘。 后续调用 Bitmap::GetPixel 可能会由于舍入而返回不同的值。 此外,如果对颜色深度为每像素 16 位的位图调用 Bitmap::SetPixel,则信息可能会在从 32 位到 16 位的转换中丢失,后续调用 Bitmap::GetPixel 可能会返回不同的值。
示例
以下示例基于 JPEG 文件创建 Bitmap 对象。 代码在未更改后绘制位图。 然后,代码调用 Bitmap::SetPixel 方法,以在位图中创建黑色像素的检查模式,并绘制更改的位图。
VOID Example_SetPixel(HDC hdc)
{
Graphics graphics(hdc);
// Create a Bitmap object from a JPEG file.
Bitmap myBitmap(L"Climber.jpg");
// Draw the bitmap.
graphics.DrawImage(&myBitmap, 0, 0);
// Create a checkered pattern with black pixels.
for (UINT row = 0; row < myBitmap.GetWidth(); row += 2)
{
for (UINT col = 0; col < myBitmap.GetHeight(); col += 2)
{
myBitmap.SetPixel(row, col, Color(255, 0, 0, 0));
}
}
// Draw the altered bitmap.
graphics.DrawImage(&myBitmap, 200, 0);
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP、Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | gdiplusheaders.h (包括 Gdiplus.h) |
Library | Gdiplus.lib |
DLL | Gdiplus.dll |