Bitmap::GetPixel 方法 (gdiplusheaders.h)
Bitmap::GetPixel 方法获取此位图中指定像素的颜色。
语法
Status GetPixel(
[in] INT x,
[in] INT y,
[out] Color *color
);
参数
[in] x
类型: INT
指定像素的 x 坐标 (列) 的整数。
[in] y
类型: INT
指定像素的 y 坐标 (行) 的整数。
[out] color
类型: 颜色*
指向接收指定像素颜色的 Color 对象的指针。
返回值
类型: 状态
如果该方法成功,则返回 Ok,这是 Status 枚举的元素。
如果方法失败,它将返回 Status 枚举的其他元素之一。
注解
根据位图的格式, Bitmap::GetPixel 可能不会返回与 Bitmap::SetPixel 设置的值相同。 例如,如果在像素格式为 32bppPARGB 的 Bitmap 对象上调用 Bitmap::SetPixel,则像素的 RGB 分量将被预乘。 由于舍入,随后调用 Bitmap::GetPixel 可能会返回不同的值。 此外,如果对颜色深度为每像素 16 位的 Bitmap 对象调用 Bitmap::SetPixel,则信息可能会在从 32 位转换为 16 位期间丢失,后续调用 Bitmap::GetPixel 可能会返回不同的值。
示例
以下示例基于 JPEG 文件创建 Bitmap 对象。 代码调用 Bitmap::GetPixel 方法以获取位图中像素的颜色,然后使用检索到的颜色填充矩形。
VOID Example_GetPixel(HDC hdc)
{
Graphics graphics(hdc);
// Create a Bitmap object from a JPEG file.
Bitmap myBitmap(L"Climber.jpg");
// Get the value of a pixel from myBitmap.
Color pixelColor;
myBitmap.GetPixel(25, 25, &pixelColor);
// Fill a rectangle with the pixel color.
SolidBrush brush(pixelColor);
graphics.FillRectangle(&brush, Rect(0, 0, 100, 100));
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP、Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | gdiplusheaders.h (包括 Gdiplus.h) |
Library | Gdiplus.lib |
DLL | Gdiplus.dll |